ملاحظة :الكود من عمل الاخ احمد الحربى وياليت نرى قريبا تسجيل اكتف اكس اليا
ملاحظة:يعمل الكود على XP ولايعمل على 97 و يا ليت نرى حلا
*** عملت بريمجين (كودين) : ( هما الآن في زرين لتجربتها من قبلكم )
الأول يعمل والبرنامج في جهازك عن طريق زر أمر ويقوم بالآتي :
1- بأخذ نسخة من كل مرجع ونسخها في مجلد القاعدة .. لذا ضع القاعدة في مجلد لوحدها . ومن ثم انسخ المجلد واحمله إلى الزبون .
2- بحفظ أسماء المراجع المستخدمة فقط في جدول أسميته (tblReferenceNameOnThisDB) في حقل (referenceName) من أجل استخدامها في إضافة المرجع في الكود الثاني .
الثاني : ويعمل في الشاشة الافتتاحية للبرنامج عند حدث الفتح أو التحميل مثلاً ويقوم بالأتي :
1- إضافة المراجع الموجودة أسماؤها في الحقل (referenceName) .
2- إزالة علامة صح من حقل InsertOkOrNO (نعم/لا) حيث (نعم) بمعنى أضيف و(لا) بمعنى لم يضف .. تمهيداً لإعادة إضافتها في كل مرة يفتح البرنامج .. لأنه قد يحدث أن يعبث بها عابث .
الكود الأول :
كود:
Private Sub cdmCopyReferences_Click()
'نسخ المراجع المستخدمة إلى مجلد القاعدة
On Error Resume Next
Dim ref As Reference
Dim strFilePath As String
Dim strCopyToPath As String
Dim i As Byte
Dim RefName As String
Dim SetSQL As String
Dim delSQL As String
delSQL = "Delete * from tblReferenceNameOnThisDB "
DoCmd.SetWarnings False
DoCmd.RunSQL delSQL
For Each ref In References
strFilePath = ref.FullPath
strCopyToPath = CurrentProject.Path
i = 0
Do
i = i + 1
b = "\" & RefName
RefName = Right(strFilePath, i)
Loop While RefName <> b
FileCopy strFilePath, strCopyToPath & RefName
SetSQL = "insert into tblReferenceNameOnThisDB(referenceName) values(" & "'" & RefName & "'" & ")"
DoCmd.SetWarnings False
DoCmd.RunSQL SetSQL
Next
MsgBox "تم نسخ ملفات المراجع المستخدمة في هذه القاعدة إلى المجلد :" & Chr(13) & strCopyToPath
End Sub
الكود الثاني : --------
كود:
Private Sub InsertReference_Click()
' إدراج المراجع كما كانت
On Error Resume Next
Dim ref As Reference
Dim strFileDBPath As String
Dim RefName As String
Dim conRef As Integer
Dim sqlUpdate As String
Dim pathAndNamefile As String
Dim i As Byte
strFileDBPath = CurrentProject.Path
conRef = DCount("[referenceName]", "tblReferenceNameOnThisDB")
For i = 1 To conRef
RefName = DLookup("[referenceName]", "tblReferenceNameOnThisDB", "InsertOkOrNO =" & False)
sqlUpdate = "Update tblReferenceNameOnThisDB set InsertOkOrNO=" & True
sqlUpdate = sqlUpdate & " where referenceName='" & RefName & "'"
DoCmd.RunSQL sqlUpdate
pathAndNamefile = strFileDBPath & RefName
Set ref = References.AddFromFile(pathAndNamefile)
Next i
sqlUpdate = "Update tblReferenceNameOnThisDB set InsertOkOrNO=" & False
DoCmd.RunSQL sqlUpdate
MsgBox " تم إضافة المراجع المطلوبة"
End Sub