اذهب الي المحتوي
أوفيسنا

تغير اسم صوره في مجلد بناء علي اسم حقل برمجيا


إذهب إلى أفضل إجابة Solved by jjafferr,

الردود الموصى بها

مرحبا للجميع

ارجو المساعدة من الأخوة

عندي قاعده بيانات بها جدوا به حقل اسم الموظف و حقل صوره للموظف

وكل الصور موجوده في مجلد علي الجهاز وعملت حقل الصورة ربط للصورة

مطلوب مني ان اغير كل صوره في المجلد باسم الموظف في الحقل الموجود في نفس الجدول

New Microsoft Access Database.accdb

رابط هذا التعليق
شارك

وعليكم السلام 🙂

 

اللي فهمته هو ، حقل pic يحتوي على اسم الصورة ومسارها ، ويكون هكذا مثلا: D:\abc\1.jpg

 

هذه الدالة ستعمل اذا مسار الصورة ليس فيه رقم:

Public Function change_Folder_Pics_ID_to_Name()

    Dim rst As DAO.Recordset
    Dim Old_Path As String, Nwe_Path As String
    
    Set rst = CurrentDb.OpenRecordset("Select * From Table1")
     
    Do Until rst.EOF
    
        Old_Path = rst!pic
        New_Path = Replace(rst!pic, rst!ID, rst!pic_name)
        
        'Rename the file in the Folder
        Name Old_Path As New_Path
        
        rst.Edit
            rst!pic = New_Path
        rst.Update
        
        rst.MoveNext
    Loop
    
    rst.Close: Set rst = Nothing
    
    MsgBox "Done"
    
End Function

 

جعفر

رابط هذا التعليق
شارك

اخي الفاضل

عفوا لو كنت أخطأت في التعبير عن سؤال

سؤالي هو

هل يمكن ان أقوم بعمل rename لصوره موجوده في مجلد بناء علي الاسم الموجود في حقل الاسم بالضغط عليها

بحيث ان صوره الشخص علي المجلد تكون بنفس اسم الشخص الموجود اسمه في حقل الاسم

يعني الاكسس يقوم بعمل كوبي لقيمه الحقل "A" و يقوم بفتح نافذه فتح للملف و يقوم بعمل rename ثم لصق الاسم الذي اخذه كوبي من الحقل "A"

وشكرا لتفاعلك اخي الكريم

رابط هذا التعليق
شارك

اللي فهمته هو :

حقل pic يحتوي على اسم الصورة ومسارها ، هكذا مثلا: D:\abc\1.jpg للسجل الذي ID=1 ،

وتريد ان تغير اسم الصورة التي في المجلد :

بدلا ان تكون بإسم
1.jpg

تريدها ان تصبح
موظف1.jpg

 

ويتم تغيير بيانات الحقل pic 

بدلا عن
D:\abc\1.jpg  

ليصبح
D:\abc\موظف1.jpg

 

هل هذ المفهوم صحيح؟

 

اذا كان نعم ، فالكود حاليا يقوم بتغيير جميع السجلات والملفات ، دفعة واحدة ، ويمكن تغييره ليقوم بتغيير السجل الذي تنقر عليه.

اما اذا مفهومي ما كان صحيح ، فرجاء تعطيني مثال متكامل على افهمه 🙂

 

جعفر

الآن اكتشفت ان مفهومي غلط ،

لأن الحقل pic ليس نص ، وانما حقل صورة !!

رابط هذا التعليق
شارك

اخي الكريم

حقل الصورة  به رابط الصورة ليفتح من خلاله بعد تغير الاسم وهو فارغ الي ان يتم تغير اسم الصوره برمجيا

للمره الثانيه اسف لاني اسئل بشكل خاطئ 🙄

رابط هذا التعليق
شارك

6 دقائق مضت, jjafferr said:

لأن الحقل pic ليس نص ، وانما حقل صورة !!

 

4 دقائق مضت, تامر خليفه said:

حقل الصورة  به رابط الصورة

همممم

اذن المرفق الذي ارفقته في مشاركتك غلط :

 

image.png.b411d74972e8714794fd3b955904fb47.png

رابط هذا التعليق
شارك

تفضل هذي الطريقة لإنشاء نسخة من الملف بإسم مختلف و حذف النسخة الاساسية 

    Dim x, NewFileName As String
    NewFileName = "الاسم الجديد للملف"
    Dim F As Variant, FSO As Object
    Set FSO = CreateObject("Scripting.FileSystemObject")
    DoCmd.SetWarnings False
    For Each F In FSO.getFolder("مسار الفولد الذي يتحوي على الملفات").Files
            x = x & vbNewLine & F
            Dim MyFile, DstFile As String
            Dim Syso As Object
            
            MyFile = F
            DstFile = CurrentProject.Path & "\" & NewFileName & ".jpg"
            
            DBEngine.Idle
            
            Set Syso = CreateObject("Scripting.FileSystemObject")
            Syso.copyfile MyFile, DstFile
            Set Syso = Nothing
            Kill F
    Next

 

رابط هذا التعليق
شارك

في ١٠‏/٦‏/٢٠٢١ at 22:38, jjafferr said:

اخي تامر 🙂

 

رجاء اعد صيغة السؤال ، بمرفق صحيح ، وبمثال من مرفقك 🙂

 

جعفر

السؤال بصيغه اوضح

المرفق بيه جدول به حقل اسم الموظف

وفي النموذج عند الضغط علي امر EMP_PIC يقوم الاكسس بفتح مستعرض ملفات و يسمي الصوره التي اختارها من المستعرض بالاسم المكتوب في حقل EMP_NAME

EMPL_NAME.accdb

رابط هذا التعليق
شارك

مفهوم رقم 1:

اين توجد الصورة السابقة ، ما مسارها ، وما اسمها ؟

يعني يجب ان يكون عندك حقل آخر (او اكثر من حقل) ، فيه هذه المعلومات ، يعني ممكن عندك حقل فيه المسار فقط ، وحقل آخر فيه اسم/رقم الصورة ،

وقد يكون مسار الصور يتبع مسار قاعدة البيانات ، فلهذا السبب لن يكون هناك حقل بالمسار.

 

13 دقائق مضت, تامر خليفه said:

بفتح مستعرض ملفات

يعني لا تريد ان يتم العمل بالخفاء/بالصمت برمجيا ، ولكنك تريد فتح مستعرض الملفات ايضا ، لماذا وما الفائدة من هذا ؟

 

 

مفهوم رقم 2:

تريد ان تنقر على زر الاكسس فيفتح متصفح الصور ، وانت تختار من الصور الموجودة هناك ، ولما تنقر/تختار الصورة ، تريد ان يتغير اسمها الى تلك التي في سجل الاكسس ؟

اذا كان هذا المفهوم صحيح ، فطريقة الحل التي اعرفها:

1. يجب ان يكون عندك مسار للمجلد الذي تريد ان تفتح المتصفح عليه ، وترى صوره ،

2. بدلا عن فتح المتصفح ، يمكننا ان نأتي باسماء جميع الملفات الى مربع قائمة في نموذج الاكسس ،

3. هناك يمكنك اختيار الملف من القائمة ، ونستطيع تغيير الاسم.

 

او نستطيع عمل التالي:

لما تنقر على زر الاكسس ، نجعل الاكسس يحفظ الاسم في الذاكرة (كانك عملت Ctrl+c للاسم) ،

ثم نفتح متصفح الملفات ، وانت تذهب الى المجلد الصحيح ، ولما توصل الى الملف الصحيح ، تنقر عليه لتغيير اسمه (سواء عن طريق النقر على الزر F2 ، او بالفأرة اليمين تعمل Rename ، او ..) ، وعندها تعمل Ctrl+V ليلصق الاسم الجديد 🙂

 

جعفر

 

 

رابط هذا التعليق
شارك

52 دقائق مضت, jjafferr said:

مفهوم رقم 1:

اين توجد الصورة السابقة ، ما مسارها ، وما اسمها ؟

يعني يجب ان يكون عندك حقل آخر (او اكثر من حقل) ، فيه هذه المعلومات ، يعني ممكن عندك حقل فيه المسار فقط ، وحقل آخر فيه اسم/رقم الصورة ،

وقد يكون مسار الصور يتبع مسار قاعدة البيانات ، فلهذا السبب لن يكون هناك حقل بالمسار.

 

يعني لا تريد ان يتم العمل بالخفاء/بالصمت برمجيا ، ولكنك تريد فتح مستعرض الملفات ايضا ، لماذا وما الفائدة من هذا ؟

 

 

مفهوم رقم 2:

تريد ان تنقر على زر الاكسس فيفتح متصفح الصور ، وانت تختار من الصور الموجودة هناك ، ولما تنقر/تختار الصورة ، تريد ان يتغير اسمها الى تلك التي في سجل الاكسس ؟

اذا كان هذا المفهوم صحيح ، فطريقة الحل التي اعرفها:

1. يجب ان يكون عندك مسار للمجلد الذي تريد ان تفتح المتصفح عليه ، وترى صوره ،

2. بدلا عن فتح المتصفح ، يمكننا ان نأتي باسماء جميع الملفات الى مربع قائمة في نموذج الاكسس ،

3. هناك يمكنك اختيار الملف من القائمة ، ونستطيع تغيير الاسم.

 

او نستطيع عمل التالي:

لما تنقر على زر الاكسس ، نجعل الاكسس يحفظ الاسم في الذاكرة (كانك عملت Ctrl+c للاسم) ،

ثم نفتح متصفح الملفات ، وانت تذهب الى المجلد الصحيح ، ولما توصل الى الملف الصحيح ، تنقر عليه لتغيير اسمه (سواء عن طريق النقر على الزر F2 ، او بالفأرة اليمين تعمل Rename ، او ..) ، وعندها تعمل Ctrl+V ليلصق الاسم الجديد 🙂

 

جعفر

 

 

 

او نستطيع عمل التالي:

لما تنقر على زر الاكسس ، نجعل الاكسس يحفظ الاسم في الذاكرة (كانك عملت Ctrl+c للاسم) ،

ثم نفتح متصفح الملفات ، وانت تذهب الى المجلد الصحيح ، ولما توصل الى الملف الصحيح ، تنقر عليه لتغيير اسمه (سواء عن طريق النقر على الزر F2 ، او بالفأرة اليمين تعمل Rename ، او ..) ، وعندها تعمل Ctrl+V ليلصق الاسم الجديد 🙂

 

 

بالظبط ده المطلوب اخي الفاضل

كيف افتح المتصفح من خلال الاكسس

ثم كيف اضغط F2 علي الملف المتختار

 

تقبل تحياتي و شكري

رابط هذا التعليق
شارك

  • أفضل إجابة

 

 

الكود يعمل نسخة من قيمة الحقل Emp_Name ويضعه في الذاكرة ،

ثم يفتح متصفح الملفات ، يفتح البارتيشن \:C (اذا الملفات على مجلد معين ، تقدر تغير المسار من الكود ، بحيث يفتح المتصفح هذا المجلد مباشرة) :

Private Sub cmd_Open_File_Explorer_Click()

    Me.EMP_NAME.SetFocus
    DoCmd.RunCommand acCmdCopy
    
    'Application.FollowHyperlink "C:\"
    'or
    'Dim Foldername As String
    'Foldername = "\\server\Instructions\"
    'Shell "C:\WINDOWS\explorer.exe """ & Foldername & "", vbNormalFocus
    'or
    Shell "C:\WINDOWS\explorer.exe c:\", vbNormalFocus	'Open Windows Explorer, C partition
    
End Sub

.

ومنها تتصفح الى المجلد المطلوب ،

ولما تريد ان تغير اسم ملف ، انقر على الملف بالفأرة اليسار مرة واحدة ، ثم انقر على F2 من لوحة المفاتيح يدويا ، وسيكون الملف جاهز لتغيير الاسم ، اضغط على لوحة المفاتيح Ctrl+V للصق الاسم الجديد.

 

جعفر

  • Thanks 1
رابط هذا التعليق
شارك

19 ساعات مضت, jjafferr said:

 

 

الكود يعمل نسخة من قيمة الحقل Emp_Name ويضعه في الذاكرة ،

ثم يفتح متصفح الملفات ، يفتح البارتيشن \:C (اذا الملفات على مجلد معين ، تقدر تغير المسار من الكود ، بحيث يفتح المتصفح هذا المجلد مباشرة) :


Private Sub cmd_Open_File_Explorer_Click()

    Me.EMP_NAME.SetFocus
    DoCmd.RunCommand acCmdCopy
    
    'Application.FollowHyperlink "C:\"
    'or
    'Dim Foldername As String
    'Foldername = "\\server\Instructions\"
    'Shell "C:\WINDOWS\explorer.exe """ & Foldername & "", vbNormalFocus
    'or
    Shell "C:\WINDOWS\explorer.exe c:\", vbNormalFocus	'Open Windows Explorer, C partition
    
End Sub

.

ومنها تتصفح الى المجلد المطلوب ،

ولما تريد ان تغير اسم ملف ، انقر على الملف بالفأرة اليسار مرة واحدة ، ثم انقر على F2 من لوحة المفاتيح يدويا ، وسيكون الملف جاهز لتغيير الاسم ، اضغط على لوحة المفاتيح Ctrl+V للصق الاسم الجديد.

 

جعفر

الف شكر اخي الفاضل 

تماااااام

رابط هذا التعليق
شارك

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information