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

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

قام بنشر

السلام عليكم

قمت بحفظ ايقونة في حقل مرفقات (Attachment) في جدول من اجل استخدامها في اماكن متعددة في البرنامج

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

واستخدمت هذا الكود لكنه لم يعمل

 Function RelinkIsIco() As String
    Dim rs As DAO.Recordset
    Dim ImagePath As String
     Set rs = CurrentDb.OpenRecordset("SELECT * FROM tblEnDc")
           ImagePath = rs!progIcon.Value
          RelinkIsIco = ImagePath
      rs.Close
    Set rs = Nothing
End Function


Private Sub cmdShar_Click()
Me.img1.Picture = RelinkIsIco()
End Sub

آمل التصحيح

ادناه مثال للتجربة

Database1.rar

قام بنشر
29 دقائق مضت, ابوخليل said:

السلام عليكم

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

بالنظر الى الدالة ولهذا السطر تحديداً:-

ImagePath = rs!progIcon.Value

سيتم التعامل مع المسار على انه نص وليس كحقل مرفقات .

 

لم أطّلع على الملف ، أتابع من الجوال حالياً.

  • Like 1
قام بنشر
2 ساعات مضت, ابوخليل said:

قمت بحفظ ايقونة في حقل مرفقات (Attachment) في جدول من اجل استخدامها في اماكن متعددة في البرنامج

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

واستخدمت هذا الكود لكنه لم يعمل

هل المطلوب ايقونة واحدة ام ممكن ان تكون اكثر من واحدة

 

  • Like 1
قام بنشر

يا هلا  اخوي محمد 

تغيب وتعود سالما غانما

27 دقائق مضت, kanory said:

هل المطلوب ايقونة واحدة ام ممكن ان تكون اكثر من واحدة

هي وحيدة يتيمة :smile:

قام بنشر

وجدت حلا وهي الطريقة الوحيدة التي وصلت اليها

وهي نسخ الصورة وارسالها بجانب قاعدة البيانات

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

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

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

وغالبا ستكون موجودة بجوار قاعدة البيانات .

سأعرض لكم الكود الذي تمت معالجته + المرفق

 Function RelinkIsIco() As String
Dim rs As DAO.Recordset
Dim rst As DAO.Recordset
Dim strFilePath As String
 Set rs = CurrentDb.OpenRecordset("tblEnDc")
 Set rst = rs.Fields("progIcon").Value
    strFilePath = CurrentProject.Path & "\" & rst.Fields("FileName").Value
    Kill strFilePath
    rst.Fields("FileData").SaveToFile strFilePath
rst.Close : Set rst = Nothing 
rs.Close : Set rs = Nothing 

RelinkIsIco = strFilePath
End Function

Private Sub cmdShar_Click()
Me.img1.Picture = RelinkIsIco
End Sub

 

ولكني اطمح الى عمل افضل من ذلك وهنا يأتي السؤال :

هل يمكن عمل متغير يحمل رابطا أو مسارا وهميا بدلا من المسار الصريح  ؟ 

أو متغيرين .. واحد يحمل رابط وهمي والآخر يحمل اسم الملف ؟

 

Database2.rar

قام بنشر

الدالة تصبح

Function RelinkIsIco() As String
    Dim rs As DAO.Recordset
    Dim rsA As DAO.Recordset2
    Dim fPath As String
    Dim tempPath As String

    ' فتح السجل
    Set rs = CurrentDb.OpenRecordset("SELECT progIcon FROM tblEnDc")

    If Not (rs.EOF And rs.BOF) Then
        Set rsA = rs.Fields("progIcon").Value  ' Recordset خاص بالمرفقات

        If rsA.RecordCount > 0 Then
            rsA.MoveFirst

            ' تحديد مسار مؤقت في Windows Temp
            tempPath = Environ$("TEMP") & "\" & rsA!FileName

            ' استخراج الملف من المرفقات إلى المسار المؤقت
            rsA!FileData.SaveToFile tempPath

            RelinkIsIco = tempPath
        End If

        rsA.Close
    End If

    rs.Close
    Set rs = Nothing
End Function

واستدعاؤها 

Private Sub cmdShar_Click()
    Me.img1.Picture = RelinkIsIco()
End Sub

 

  • Like 1
قام بنشر
22 دقائق مضت, ابوخليل said:

هل يمكن عمل متغير يحمل رابطا أو مسارا وهميا بدلا من المسار الصريح  ؟ 

أو متغيرين .. واحد يحمل رابط وهمي والآخر يحمل اسم الملف ؟

الهدف والغاية ، فالغاية تبرر الوسيلة 😁

قام بنشر

صباح الخير اخوي خليفة

عمل جميل جدا .. 

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

والدليل على ذلك انه لا يمكنك ارسالها مرة اخرى لأنها موجودة فعلا

بالضبط كما عملت انا اعلاه .. الا انني جعلت الصورة قريبة من اجل التعامل معها بالحذف وايضا الارتباط

نريد نحاول جعل المسار وهمي وليس مؤقت

 

قام بنشر

وسؤال آخر ..

لماذا لم تستخدم Recordset2 بدلاً من Recordset بما أن الحقل = حقل مرفقات !!

قام بنشر

 

صباح الفل اخي فادي

 

9 دقائق مضت, Foksh said:

الهدف والغاية ، فالغاية تبرر الوسيلة 😁

الغاية هي الوصول الى الهدف :smile:

3 دقائق مضت, Foksh said:

وسؤال آخر ..

لماذا لم تستخدم Recordset2 بدلاً من Recordset بما أن الحقل = حقل مرفقات !!

لا تتهرب .. سوف امهلك الى ما بعد الافطار :yes:

انشئ حساب جديد او قم بتسجيل دخولك لتتمكن من اضافه تعليق جديد

يجب ان تكون عضوا لدينا لتتمكن من التعليق

انشئ حساب جديد

سجل حسابك الجديد لدينا في الموقع بمنتهي السهوله .

سجل حساب جديد

تسجيل دخول

هل تمتلك حساب بالفعل ؟ سجل دخولك من هنا.

سجل دخولك الان
  • تصفح هذا الموضوع مؤخراً   1 عضو متواجد الان

×
×
  • اضف...

Important Information