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

[ تمت الإجابة ]تحديد المسار للبرنامج

بدأه بكر اكسس في 25 يناير 2008 · 41 رد · 5,606 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#26

هل يعني هذا انك لا تستطيع تنفيذ الفكره التي تكلمت عنها وقمت بالشرح لها ؟

اذا كانت الإجابه بـ لا

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

والسبب في ذلك حتى تتعلم بنفسك .

#27

بسم الله الرحمن الرحيم

( انا اقول مثال مو تروح تضع برنامجك )

..... فهمت

وإليكم الرابط

______________________________.zip

مع خالص شكرى وإمتنانى

#28

بعد إذن إستاذتنا القديرة "زهره"

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

____.rar

سوف أنسى الأمس واليوم و قــد أنــسى غــــــــــــــــــــدا

و سأنسى فترة في العمر قـــد ضاعت ســــــــــــــــــدى

غير أني سوف لا أنسى ســــــــــــــــــــــــــؤالا واحدا

حــــين قال القلب يوما فـــي ارتـــباك: كــــيف أنسي

#29

بسم الله الرحمن الرحيم

just now أخى الفاضل

تم التحميل وجارى التجربة .. وألف ألف ألف شكر

على مجهودك

..و مشاركتك

..و متابعتك لنا

وكما قلت كلنا فى أنتظار بشغف لتحفه أستاذتنا زهره

دمتم فى حفظ الله

تم تعديل هذه المشاركة بواسطة bakkar2000 في 20 فبراير 2008 في 15:22

#30

بسم الله الرحمن الرحيم

ألف شكر أخرى أخى

just now

البرنامج يعمل بكفاءه وكما أريد

ولكـــــــــــــــــــــــــــــــــــــــــــــــــن

عند تحزيمة ببرنامج

pakage wizard

.....بدأت رساله فى الظهور فى بعض النماذج أولها

Execution of this application has stopped due to arun_time error

the application can not continue and will be shut down.

عند الضغط على أوكى تظهر رسالة أخرى تقول

You can not exit معمل الجمعية الخيريةnow

If you running avisual basic module thats using OLE or DDE , you may need to interrupt the module.

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

شكراً لكم وأرجوا الإفاده

#31
just now كتب:
بعد إذن إستاذتنا القديرة "زهره"

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

بارك الله بك اخي الكريم

وجزاك الله كل خير

وكلنا هنا نعمل كفريق واحد ولا داعي للأستئذان

اما عن التحف الفنية فلم ارى مثل تحفة افضل مما قمت بعمله

فقد اطلعت على الكود وكان رائع بمعنى الكلمة

اخي الفاضل

هذا يدل على وجود عدة اخطاء في الأكواد لديك وفي نماذجك الخاصة

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

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

كل ما عليك هو عمل التالي للتأكد من خلو الأكواد من الأخطاء في كافة النماذج والوحدات النمطية

1. افتح اي نموذج في وضع التصميم

2. اضغط من لوحة المفاتيح المفتاحين معا ALT+F11 وستجد نفسك مباشرة في محرر الفيجول بيسك الخاص بالأكواد .

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

#32

إستاذتنا القديرة " زهره "

اشكرك جدا لكن ( دا كلام كبير علينا ) بس هي أخلاقك العالية

اخي الكريم

اتمني تكون المشكلة إتحلت

سوف أنسى الأمس واليوم و قــد أنــسى غــــــــــــــــــــدا

و سأنسى فترة في العمر قـــد ضاعت ســــــــــــــــــدى

غير أني سوف لا أنسى ســــــــــــــــــــــــــؤالا واحدا

حــــين قال القلب يوما فـــي ارتـــباك: كــــيف أنسي

#33

بسم الله الرحمن الرحيم

أستاذتنا زهرة أخانا الكريم just now

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

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

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

وما دمتم معى فلى سؤال ....

* هل طريقة الربط هذه تعمل مع ملفات بصيغة MDE

إن لم يكن فأرجوا التعديل

سؤال أخر وليس بأخير

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

شؤال أخر وأخير

* رأيت العديد من البرامج التى تتيح للمستخدم تحديد مسار البرنامج عند التنصيب فأرجوا إرفاق إحداها وطريقة عملة أو حتى أسمة وأقوم بالبحث عنة

لا أجد مايوفيكم حقكم ولكن ألف شكر

تم تعديل هذه المشاركة بواسطة bakkar2000 في 21 فبراير 2008 في 22:40

#34

بسم الله الرحمن الرحيم

أشكر لكم وجدت أجابة السؤال الثانى فى المنتدى

مع خالص شكرى وأمتنانى

#35

بسم الله الرحمن الرحيم

أستاذتنا زهرة أخوانى مشرفى المنتدى

تم بحمد الله حل مشكلة السؤال الأول وهو هل طريقة الربط هذه تعمل مع ملفات MDE

بأستبدال الكو د1 بـ 2

(1) strFilter = ahtAddFilterItem(strFilter, "Access Files (*.mdb)", "*.mdb")

(2) strFilter = ahtAddFilterItem(strFilter, "Access files (*.mdb, *.mde)", "*.mdb;*.mde")

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

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

***** كيف يتم عدم حذف ولو جدول وأحد من القاعدة الثانية عند الربط على غرار الجدولTblPath

أرجوا أن أكون أوصلت ما أريد

وأرجوا عدم أهمال الرد هذه المره أسف على كلمة أهمال و أستبدلها بأنشغالكم عن الرد

ويعلم الله أنى أحاول منذ ثلاثة أسابيع ولم أفلح فعلمت أنها أكبر من قدراتى لذا أسندتها إليكم وأعلم أنكم لها

شكراً لكم كل الشكر

#36
bakkar2000 كتب:
ولكن أسمحوا لي كانت لدى مشكلة وهى عند إعادة الربط يتم حذف جميع الجداول فى القاعدة الثانية حتى التى تم إنشائها فى القاعدة الثانية فقمت بوضع كل الجداول فى القاعدة الأولى وظننت أنى قد تغلبت على المشكلة حتى قمت بعمل حماية برقم الهارد وطبعاً الجدول يتحذف عند إعادة الربط وبه البيانات فإن وضعتة فى القاعدة الأولى و أعدنا الربط يبقى الجدول وتحذف البيانات

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

***** كيف يتم عدم حذف ولو جدول وأحد من القاعدة الثانية عند الربط على غرار الجدول TblPath

أرجوا أن أكون أوصلت ما أريد

وأرجوا عدم أهمال الرد هذه المره أسف على كلمة أهمال و أستبدلها بأنشغالكم عن الرد

ويعلم الله أنى أحاول منذ ثلاثة أسابيع ولم أفلح فعلمت أنها أكبر من قدراتى لذا أسندتها إليكم وأعلم أنكم لها

شكراً لكم كل الشكر

اخي الفاضل

لا اعلم هل تعرف تماما آلية عمل البرنامج أم لا

اذا كنت لا تعرف آلبة عمل البرنامج والكود فسوف اشرح لك الطريقة حتى لا تعبث بقاعدة البيانات ومن ثم تفقد كل شيء .

1. عند فتح البرنامج يتم فتح نموذج الشاشة الإفتتاحية

2. يتم التأكد من ربط الجداول وان المسار صحيح ولم يتم تغييره

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

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

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

5. لنرى الكود الخاص بحذف الجداول المرتبطة عند الضغط على زر الأمر في نموذج اعادة ربط الجداول frmLinkTable

Function zaLinkAllTables()
On Error GoTo MyErr
Dim strPath As String
strPath = Me.txtPath
Dim FrontObj As AccessObject, FrontDB As Object
Set FrontDB = Application.CurrentData
For Each FrontObj In FrontDB.AllTables
If Left(FrontObj.name, 4) <> "MSys" Then
DoCmd.DeleteObject acTable, FrontObj.name
End If
Next FrontObj

Dim BackObj As TableDef, BackDB As Database
Set BackDB = DBEngine.Workspaces(0).OpenDatabase(strPath, True, False)
For Each BackObj In BackDB.TableDefs
If Left(BackObj.name, 4) <> "MSys" Then
DoCmd.TransferDatabase acLink, "Microsoft Access", strPath, acTable, BackObj.name, BackObj.name
End If
Next BackObj

Set FrontDB = Nothing
Set BackDB = Nothing

MyErr:
If err.Number <> 0 Then
MsgBox err.Number & " - " & err.Description
End If

End Function

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

For Each FrontObj In FrontDB.AllTables
If Left(FrontObj.name, 4) <> "MSys" Then
DoCmd.DeleteObject acTable, FrontObj.name
End If
Next FrontObj

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

post-15367-1204263603.gif

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

Rem For Each FrontObj In FrontDB.AllTables
Rem If Left(FrontObj.name, 4) <> "MSys" Then
Rem DoCmd.DeleteObject acTable, FrontObj.name
Rem End If
Rem Next FrontObj

سنقوم الآن بالتجربة ونقوم بإغلاق قاعدة النماذج ثم نقوم بنقل قاعدة الجداول الى اي مكان وننظر ماذا سيحدث

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

post-15367-1204264095.gif

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

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

#37

بسم الله الرحمن الرحيم

لكى كل الشكر أستاذتنا زهرة على الشرح الوافى والذى لم أتلقى مثله من قبل...

ولكن وأنا أسف أعلم أليه العمل هذه جيداً أنة لابد من حذف الجداول والتى تعتبر وكأنها تالفة قبل تحديث إعادة الربط

ولم أقصد أن يتم العبث بها

رجوت الله أن أكون قد شرحت ما أريد ويبدوا أنى فشلت فى هذا أيضاً على أى حال

لم أقصد عدم حذف الجداول المرتبطه من القاعده الأولى والتى نميزها بسهم أزرق يسارها

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

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

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

البيانات بداخله عند الربط ويطالبنى بإعادة تسجيل البرنامج مره أخرى

*** و ما أريده هوعدم حذف هذا الجدول مثل جدول Tblpath والذى لايتم حذفه عند إعاده الربط

أرجوا من الله أن أكون أوضحت ما أريد

شكراً أستاذتنا زهرة على التفاعل

#38

اخي الفاضل

هل راجعت هذا الكود جيدا ولماذا يتم حذف الجداول او الربط بكافة الجداول إلا في حالات معينه تفحص الكود جيدا

Function zaLinkAllTables()
On Error GoTo MyErr
Dim strPath As String
strPath = Me.txtPath
Dim FrontObj As AccessObject, FrontDB As Object
Set FrontDB = Application.CurrentData
For Each FrontObj In FrontDB.AllTables
If Left(FrontObj.name, 4) <> "MSys" Then
DoCmd.DeleteObject acTable, FrontObj.name
End If
Next FrontObj

Dim BackObj As TableDef, BackDB As Database
Set BackDB = DBEngine.Workspaces(0).OpenDatabase(strPath, True, False)
For Each BackObj In BackDB.TableDefs
If Left(BackObj.name, 4) <> "MSys" Then
DoCmd.TransferDatabase acLink, "Microsoft Access", strPath, acTable, BackObj.name, BackObj.name
End If
Next BackObj

Set FrontDB = Nothing
Set BackDB = Nothing

MyErr:
If err.Number <> 0 Then
MsgBox err.Number & " - " & err.Description
End If

End Function

دعني اقرب لك الموضوع قليلا في الكود

لو تلاحظ في بداية الكود انه يقوم بالبحث عن كافة الجداول في قاعدة النماذج ويقوم بحذفها عدى التي تبدأ بـ اول اربع حروف من جهة اليسار وهي MSys

If Left(FrontObj.name, 4) <> "MSys" Then
DoCmd.DeleteObject acTable, FrontObj.name

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

If Left(BackObj.name, 4) <> "MSys" Then
DoCmd.TransferDatabase acLink, "Microsoft Access", strPath, acTable, BackObj.name, BackObj.name

اذا لم يعد هناك مشكله ولله الحمد

فكل ما عليك هو القيام بتعديل اسم جدولك او جداولك التي لا تريد ان يتم حذفها او الإرتباط بها الى اسم مثل هذا MSysMyTable

هذا الجدول لا يمكن الربط به ولا حذفه من قاعدة الجداول ولا من قاعدة النماذج

اتمنى ان تكون الفكره وصلت وعليك التطبيق وإن شاء الله ستحل مشكلتك مع انها ليست بمشكله لو فكرت قليلا مع كوب شاي منعنش

#39

بسم الله الرحمن الرحيم

كل الشكر أستاذتنا زهرة على الرد النفاث

ولكنها بالنسبة لى كانت فعلاً مشكله كبيره حتى إن شربت ماء نيل مصرنا الحبيبه بأكملة وكان شايه منعنش ومنعش لم يكن بأمكاني فهم ما أوضحته لى حتى يجف ماء النيل

لآنى وكما أوضحت سابقاً لم أكمل شهرى الأول فى فيجول أُعلم نفسى بنفسى دون أى موجه وما أتعلمه فى شهر أستطع بإذن الله أنجازه فى سويعات قليله مع زهره العلم

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

أرجوا المتابعه ..... فى حفظ الله

سلام الله علكم

#40

بسم الله الرحمن الرحيم

تم بحمد الله ما أريد بالتحديد ... كل الشكر أستاذتنا زهره

منذ اشتراكى وأنا عمال أسال وأنا الأن فى شدة الخجل من نفسى وأرجوا أن يأتى اليوم الذى أشارك فى تخفيف الحمل عنكم ويكون لدى شىء أهبه لكل من يحتاج

وحتى يأتى هذا اليوم سوف أظل أسال

أستاذتنا زهره

لدى العديد من التساؤلات سوف أضعها فى مواضيع جديده بعناوين أهمها

* كيفية وضع هذا الكود فى موديول

برجاء الرد عليها

حتى لا أنسى أهدى إليكى ولكل من تفاعل معنا هذا العمل المتواضع

AHMED_HASSAN.zip

ولكم منا أسمى آيات الإحترام

#41

بارك الله بك اخي الكريم

وهدية مقبوله ورائعه في نفس الوقت فجزاك الله كل خير

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

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

#42

بسم الله الرحمن الرحيم

تمت الإجابة على الموضوع

إدارة الفريق العربي للبرمجة

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…