الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

المراجع مرة اخرى

مغلق
بدأه الويب كي في 26 فبراير 2006 · 3 رد · 712 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

اعزائي

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

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

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

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

موضوع ابو هاجر ..

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

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

...................................

امل من اخوننا واخواتنا الاعزاء المشرفين والاعضاء والمشاركين بهذا المنتدى العزيز اذا كانت هناك طريقة تجعل قاعدة البيانات تعمل على كل الاجهزة بدون ان تكون هناك مشكلة عند تشغيلها اذا كان هناك مكتبه غير موجود او مرجع يحتاج الى اضافه

اريدها تعمل من اول مره حتى لاتجعلني اذهب الى الدمام وانا في المدينه لاصلاح المشكله

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

اعينونا اعانكم الله علينا

والله يحفطكم

اخوكم ابو انس

ملاحظه:

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

*&* ....من لايشكر الناس لايشكر الله...*&*

.....&& ابو انس &&......

#2

اخي الفاضل ابو انس

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

لقد سبق لك التطرق لهذا السؤال وتمت الاجابه عليك

http://204.157.36.16/index.php?showtopic=63516

وايضا ستجد هنا شرح لطريقة نسخ واضافة المراجع

شرح طريقة اضافة المراجع والمكتبات

http://204.157.36.16/index.php?showtopic=66328

وستجد هنا ايضا مثال للاستاذ رضا عقيل به نموذج نسخ واضافة المراجع للقاعدة

http://204.157.36.16/index.php?showtopic=59598

واذا رغبت بالشرح المفصل بالمثال انظر ماذا كتب الاستاذ العبقري احمد الحربي حول هذا الموضوع

إضافة المراجع :

كنت أعاني فيما مضى من إضافة المراجع إلى الأجهزة الأخرى غير جهازي الذي أضفتها فيه .. ففكرت هذا الصباح .. والحاحة تفتق الحيلة فخرجت بهذا الحل .

الأسباب :

- أحياناً عندما تنتهي من البرنامج وتحمله إلى الزبون وتضعه في جهازه يتحتم عليك إضافة بعض المراجع لأنها غير مضافة في جهازه .. هذا إذا كان جهازاً واحداً كيف لو كان الزبون لديه شبكة تشمتل على 20 جهاز ستضطر إلى إضافتها في كل جهاز .

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

خاصية أو طريقة جديدة لا توجد في جهاظ الزبون وسينبهك آكسس إلى مرجع مفقود .

- أحياناً يضع أحد الإخوة برنامجاً كمثال ثم يأتي السؤال لقد توقف البرنامج عند السطر الفلاني فماذا أعمل ؟ ويأتي الجواب : أضف المرجع العلاني .

لهذه الأسباب قلت في نفسي : لماذا لا يكون الأمر آلياً فخلصت إلى الحل الآتي :

*** عملت بريمجين (كودين) : ( هما الآن في زرين لتجربتها من قبلكم )

الأول يعمل والبرنامج في جهازك عن طريق زر أمر ويقوم بالآتي :

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 "تم نسخ ملفات المراجع المستخدمة في هذه القاعدة إلى المجلد :" &  vbCrLf  & 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

ملاحظات :

1- من الأفضل أن لا تقوم بتشغيل كود النسخ إلا بعد الانتهاء الكامل من البرنامج .

2- ضع القاعدة في مجلد ثم شغل الكود لينسخها إلى نفس المجلد .

3- سيقوم الكود بإضافة المراجع معتمداً على مسار مجلد القاعدة فلا تخرج ملفات المراجع عنها .

لاختبار الفكرة : في القاعدة المرفقة أضف ما شئت من المراجع ثم انقر زر (نسخ الراجع ) ثم ارجع مرة أخرى إلى نافذة المراجع واحذف منها ما تشاء .. ثم انقر على زر (إضافة المراجع للقاعدة ) فسيقوم بإرجاعها مرة أخرى آمل أن ينال على إعجابكم .

--------------

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

أما الكود الثاني وهو إضافة المراجع .. فتجعله في الشاشة الافتتاحية لبرنامجك عند حدث التحميل والفتح ليقوم بإضافة المراجع تلقائياً من غير أن يشعر المستخدم ودون أن نكلفه أن يضغط على الزر الفلاني ..

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

هذا ما يقوم به الكودان ..

أما بالنسبة لوجود الشاشة الافتتاحية مسبقاً عند المستخدم فالعمل كالتالي :

- نقوم بوضع القاعدة في مجلد خاص بها .

- نقوم بتشغيل الكود الأول .

- نقوم بتشغيل الكود الثاني ووضعه في حدث عند التحميل والفتح لهذه الشاشة

referenceFiles.rar

تم تعديل هذه المشاركة بواسطة zahrah في 27 فبراير 2006 في 17:03

#3

السلام عليكم

اختنا الطيبة ... زهرة المنتدى

ابدعت و الله ... جزاك الله عنا خيرا

اخوكم

ابو آدم

#4

اختي الفاضلة زهره حفظها الله

امل لك التوفيق في الدنيا والاخره وان ينفع بعملك هذا اخواننا المسلمين في كل مكان

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

امل من الله ان يزيدك علما وان ينفعنا الله به

اختي زهره

امل ان لا تبخلي علينا بمثل هذه الاشياء لاننا والله نقه في بحر علملك نفعك الله به وحفظك اللهم من كل مكروه

هذا والحمد لله رب العالمين

اخوك ابو انس

*&* ....من لايشكر الناس لايشكر الله...*&*

.....&& ابو انس &&......

هذا الموضوع مغلق.

مواضيع مشابهة