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

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

قام بنشر

السلام عليكم ورحمة الله وبركاته ..

أسأل الله لكم مزيدا من فضله ...

لدي برنامج يقوم بسحب الصور من المجلد المرفق وهذا بفضل الله ثم بفضل اساتذتنا في هذا المنتدى العامر ...

الطلب : كيف يمكن وضع مربع تحرير وسرد بحيث عند اختيار الذي لهم صورة يظهر فقط الذي لهم صور والعكس صحيح وعند طلب الكل يظهر الكل ..

مرفق مثال

card1.rar

قام بنشر

المسألة يكتنفها عائقان :

1- ان الصور لا يوجد لها روابط داخل قاعدة البيانات ، فلو وجدت هذه الروابط لتمكنا من الفلترة بكل يسر

2- ان عناصر الصور داخل النموذج غير منضمة فيصعب التعامل معها خاصة في النماذج المستمرة .

ومع ذلك :

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

وهذا ما سأحاول تجربته ان استطعت ، وأسأل الله العون .

 

ملحوظة : يفضل اجراء ضغط وإصلاح لللمرفق قبل رفعه ، لاحظ حجم المرفق اعلاه بعد الضغط  وكان حجمه قبل الاصلاح 1.6 ميجا

قام بنشر

انظر مثالك بعد التعديل

استخدمنا وحدة نمطية لجلب اسماء الصور وايداعها داخل جدول ثم وظفنا هذا الجدول داخل استعلام النموذج

تم فحصه على اكسس 2003

جرب ووافني بالنتيجة

card11.rar

قام بنشر

هذا ليس رائع 

 

 

 

بل أروع من رائع وفكرة جميلة جدا عملت على 2007 بشكل ممتاز وهلا تكرمت ببيان هذا الكود 

On Error GoTo Err_erru_Click
 Dim scfil, fil1, pafil As Object
 Dim db As Database
 Dim rs As Recordset
 Dim i As String
   Set db = CurrentDb
   Set rs = db.OpenRecordset("tbl1")
   Set scfil = CreateObject("Scripting.FileSystemObject")
   Set pafil = scfil.GetFolder(CurrentProject.Path & "\photos\").Files
      For Each fil1 In pafil
        i = scfil.GetExtensionName(fil1.Name)
          i = UCase(i)
            If i = "jpg" Then
              rs.AddNew
          rs("picNm") = (scfil.GetBaseName(fil1.Name))
        rs.UpDaTe
         End If
    Next
Exit_erru_Click:
    Exit Sub
Err_erru_Click:
   DoCmd.CancelEvent
   Resume Exit_erru_Click
         Set scfil = Nothing
            Set pafil = Nothing
                Set rs = Nothing

بوركت أبا خليل لك يد سابقة ولاحقة متعك الله بالصحة والعافية 

قام بنشر

هذا ما تيسر وآمل ان يحقق الفائدة

 On Error GoTo Err_erru_Click
 Dim scfil, fil1, pafil As Object ' اعلان عن متغيرات تمثل كائنات
  'اعلان عن متغير يمثل قاعدة بيانات
 Dim db As Database
  ' اعلان عن متغير يمثل سجلات
 Dim rs As Recordset
  ' اعلان عن متغير يمثل مصفوفة نصية
 Dim i As String
     ' القاعدة الحالية
   Set db = CurrentDb
  ' فتح سجلات الجدول
   Set rs = db.OpenRecordset("tbl1")
      'انشاء كائن ضمن انظمة الملفات
    Set scfil = CreateObject("Scripting.FileSystemObject")
     ' الحصول على الملفات داخل مجلد الصور
    Set pafil = scfil.GetFolder(CurrentProject.Path & "\photos\").Files
      'بداية دوارة : كل ملف في المسار الهدف
      For Each fil1 In pafil
          ' استخراج اسم اللاحقة او ما يسمى بالامتداد
        i = scfil.GetExtensionName(fil1.Name)
            ' ارجاع الى حروف كبيرة وهي زائدة فلسنا بحاجتها فاسماء الملفات ارقام 
           i = UCase(i)
             ' بداية الشرط :  اذا كانت اللاحقة (؟) وهنا يمكنك تحديد نوع الملفات المستخرجة
            If i = "JPG" Then
                ' اضف سجلات جديدة
                     rs.AddNew
                       ' استخراج اسم الملف '
                    rs("picNm") = (scfil.GetBaseName(fil1.Name))
                السجلات ' تحديث
                 rs.UpDaTe
             ' نهاية الشرط
              End If
      'عودة  للدوارة
          Next
Exit_erru_Click:
    Exit Sub
Err_erru_Click:
   DoCmd.CancelEvent
   Resume Exit_erru_Click
         Set scfil = Nothing
            Set pafil = Nothing
                Set rs = Nothing
قام بنشر

بوركت أبا خليل لكن عندما أطلب التقرير تظهر كافة البيانات هل يمكن ربطه بالتقرير بحيث يظهر فقط الذي تم اختياره (الذين لهم صورة أو ليس لهم صورة أو الكل) ..

قام بنشر

ظهر لي إشكال وهو في حال إضافة صورة لطالب جديد أو كان اسمه موجود لا يتم إداراجه ضمن قائمة الذي لهم صور وكذلك العكس لو طالب حذفت صورته فإنه لا ينقله إلى الذين ليس لهم صور

قام بنشر

بوركت أبا خليل لكن عندما أطلب التقرير تظهر كافة البيانات هل يمكن ربطه بالتقرير بحيث يظهر فقط الذي تم اختياره (الذين لهم صورة أو ليس لهم صورة أو الكل) ..

الحل ان تجعل الاستعلام خارجي  فيكون مصدرا للنموذج والتقرير معا

والطريقة  عندما تفتح على مصدر سجلات النموذج وهو الاستعلام من  الخصائص  احفظ فقط فيأخذ  صورة من الاستعلام  ليضعها ضمن الاستعلامات ويسألك ان كنت تريد هذا الاخير هو مصدر السجلات  وستكون الاجابة بنعم

 

ظهر لي إشكال وهو في حال إضافة صورة لطالب جديد أو كان اسمه موجود لا يتم إداراجه ضمن قائمة الذي لهم صور وكذلك العكس لو طالب حذفت صورته فإنه لا ينقله إلى الذين ليس لهم صور

هذه تحتاج الى اعادة فحص وتجربة للمثال

وسأعمل ذلك ان شاء الله

قام بنشر

المشكلة تتمثل في جدول الملفات  حيث يجب تفريغه من البيانات قبل جلبها مرة اخرى

 

ضع هذه الاسطر في أعلى الوحدة النمطية وبالضبط تحت سطر  on Error

DoCmd.SetWarnings False
  DoCmd.RunSQL "DELETE tbl1.*, * FROM tbl1"
  DoCmd.SetWarnings True
قام بنشر

رائع وعمل متميز..

معذرة .

بقي أمر ولعله الأخير عندما أضيف صورة أو أحذفها لابد من غلق النموذج ثم فتحه حاولت وضع كود التحديث

 DoCmd.RunCommand acCmdRefresh

بعد  on Error فلم تنجح الطريقة ..

فأود أن يكون التحديث مباشرة عندما أضيف أو أحذف تظهر من غير أن أغلق النموذج ثم أفتحه مرة أخرى ...

  • تمت الإجابة
قام بنشر

كما ذكرت في مشاركتي الاولى  ان الامر مقارنة   بل مقابلة  بين ارقام في مجلد خارجي مع ارقام  ضمن جدول في قاعدة البيانات

وعند اختلال احد الطرفين  لا يظهر الخلل الا بعد المقابلة مرة اخرى

 

تم التعديل  بتحويل الكود الى وحدة نمطية عامة  نستدعيها عند الحاجة

card14.rar

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