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

كود ربط قاعدة بيانات اكسس ضمن شبكة محلية‏

بدأه فيصل عبدالله* في 13 مايو 2013 · 13 رد · 3,383 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

 

الاخوة الفريق العربي للبرمجة             المحترمين

تحية احترام وتقدير 

 

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

 

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

 

- لما تكون قاعدة البيانات بنفس الجهاز ، الكود بيشتغل 100%

- لما تكون قاعدة البيانات بالسرفر أو في جهاز آخر ، واريد اعمل ربط عبر الشبكة المحلية LAN الكود لا يعمل !! وتجيني رسالة ""خطأ""

 

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

اتمنى أن تكون الفكرة قد وصلت بشكل صحيح ..

ولكم منى خالص التحية والتقدير ...

 

 

 Public Function LinkMDBTablesx() As String
   On Error GoTo Err_Handler
   
   Dim dbs As DAO.Database
   Dim tdf As DAO.TableDef
   Dim strMsg As String
   Dim lngCurr As Long
   Dim lngTotal As Long
   Dim strConnect As String
   Dim strDataFile As String
   
   strDataFile = FindMDBFile()
 
   strConnect = ";DATABASE=" & strDataFile
   
   lngTotal = DCount("*", "MsysObjects", "[Type]=6")
   
         Set dbs = CurrentDb
   For Each tdf In dbs.TableDefs
        Dim wrkJet As Workspace
        Dim dbopen As Database
Set wrkJet = DBEngine.Workspaces(0)
Set dbopen = wrkJet.OpenDatabase(strDataFile, False, False, ";PWD=hdil")
 
 
            If tdf.Connect <> "" And Left(tdf.NAME, 4) <> "dbo_" Then
                lngCurr = lngCurr + 1
                tdf.Connect = strConnect
                tdf.RefreshLink
            End If
     Next
 
Exit_Err_Handler:
   Set tdf = Nothing
   Set dbs = Nothing
   Exit Function
   
Err_Handler:
   MsgBox Err.Description
   Resume Exit_Err_Handler
End Function

                                                                      :rolleyes: الكلمة الطيبة جواز مرور إلى كل القلوب  :rolleyes:

#2

اخي الفاضل : فيصل عبدالله

 

استبدل هذا السطر في الكود

 

strDataFile = FindMDBFile()
 
بهذا السطر الجديد يحيث تضع اسم السيرفر ثم مجلد المشاركة ثم اسم قاعدة البيانات بهذه الطريقة
strDataFile="\\ServerName\SharedFolderName\YourMdbName"
 
ServerName : اسم السيرفر الخاص بك
SharedFolderName : اسم مجلد المشاركة الذي يوجد به قاعدة البيانات
YourMdbName : اسم قاعدة البيانات
 
مثال 
strDataFile="\\MyServer\zahrah\Emp.mdb"
 
 
بالتوفيق

تم تعديل هذه المشاركة بواسطة zahrah في 13 مايو 2013 في 22:17

1
#3

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

 

تحية تقدير واحترام أختي زهره ..

 

آسف ع تأخر الرد ، وهذا طبعاً خارج عن ارادتي بسبب انقطاع الكهرباء بشكل دائم ولساعات طويله .

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

 

لكي مني ازكى تحية وسلام ،،

                                                                      :rolleyes: الكلمة الطيبة جواز مرور إلى كل القلوب  :rolleyes:

#4

عفوا اختي زهره .. بينما كنت اراجع الكود اللي تفضلتي به باستبدال السطر 

 


strDataFile = FindMDBFile()
بهذا السطر الجديد يحيث تضع اسم السيرفر ثم مجلد المشاركة ثم اسم قاعدة البيانات بهذه الطريقة
strDataFile="\\ServerName\SharedFolderName\YourMdbName"

اريد أن انوه الى ملاحظة :

حيث ان المتغير FindMDBFile  يمثل سطر الكود عندي كالتالي :
 FindMDBFile  = "\\ALRAEDAH\ATE\DB.MDB"  
وأنا أحصل على هذا المسار بواسطة بروسيجر آخر ، ولكني لم انتبه لهذا الخطأ ،  
 
.........................................................................................................................
لدي ملاحظة أخرى اختي زهره وهي انني كنت بينما اتتبع سير الخطأ ووجدت أن الكود يتوقف عند هذا السطر :
Set dbopen = wrkJet.OpenDatabase(strDataFile, False, False, ";PWD=hdil")
وبعدها مباشرة تظهر رسالة "Error"
 
أرجو أن أكون قد وفقت في طرح المشكلة بشكل واضح .
تحياتي لكي اختي زهره ..
 

                                                                      :rolleyes: الكلمة الطيبة جواز مرور إلى كل القلوب  :rolleyes:

#5

اخوتي الكرام ارجو منكم وضع مثال على الموضوع ان امكن حتى تكون الفائدة عامة


ولكم جزيل الشكر


 


اخوكم


Offine

#6

اخي الفاضل : فيصل عبدالله

 

الكود الخاص بك سليم اذا كان يأخذ مسار القاعدة من متغير آخر

 

طبعا لا اعلم ما هو الخطأ ولا رقمه لأنك لم توضح ذلك لأن لكل خطأ يوجد له رقم معين

 

عموما حاول التأكد من المراجع بأنها صحيحه وموجوده مثل المرجع     "Microsoft DAO 3.6 Library" 

 

 

بالتوفيق

#7

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

غداً ان شاء راح أتاكد من رقم الخطأ ، وبالنسبة للمراجع قمت بارفاق صورة تحمل اسماء المراجع التي استخدمها 

 

مع خالص تحياتي 

post-274016-0-86015300-1368539769_thumb.

                                                                      :rolleyes: الكلمة الطيبة جواز مرور إلى كل القلوب  :rolleyes:

#8

تحياتي لك اخي الكريم وتحية للاخت زهرة

الحقيقة انا لدي برنامج العلامات المدرسية على احد الاجهزة في المدرسة

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

وبذلك اضمن بان تكون جميع الشاشات الموجودة على الاجهزة الاخرى مرتبطة مع قاعدة البيانات الرئيسة

هذه الطريقة اعمل عليها منذ عام 2009 وكنت قد استخدمتها ايضا مع الاكسل

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

من تقارير وادخال ورقابة وكل شي

* ملاحظة

الربط يكون من خلال الكود طبعا باستعراض مجلد المشاركة واختيار القاعدة

تحياتي

تم تعديل هذه المشاركة بواسطة همام ابوعرقوب في 15 مايو 2013 في 22:55

وَمِنَ النَّاسِ مَن يُعْجِبُكَ قَوْلُهُ فِي الْحَيَاةِ الدُّنْيَا وَيُشْهِدُ الله عَلَى مَا فِي قَلْبِهِ وَهُوَ أَلَدُّ الْخِصَامِ

مواضيعي ومشاركاتي

#9

السلام عليكم .. اخي همام 

بخصوص الربط الشبكي مع قاعدة البيانات انا ايضاً شغالة معي 100% وكل ما في الأمر انا اريد اعمل ربط عبر الكود ، لأني دائما اسوي تعديلات على البرنامج

وايضاً البرنامج اللي معي مرتبط بأكثر من  قاعدة بيانات ، وعندما أقوم بنسخ التعديلات اللي سويتها على جهازي الى الجهاز اللي بالعمل لازم اعيد الربط بالسرفر مرة ثانية لأن المسار قد تغير  ، وطبعاً بالطريقة الاعتيادية لأعادة ربط الجداول وهي مملة جداً وخاصة لما يكون معاك اكثر من قاعدة بيانات لأعادة ربطها بالبرنامج ، 

 

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

 

تحياتي لك أخي همام .. وشكرا على مرورك 

 

اخوكم / فيصل عبدالله

تم تعديل هذه المشاركة بواسطة فيصل عبدالله* في 16 مايو 2013 في 21:50

                                                                      :rolleyes: الكلمة الطيبة جواز مرور إلى كل القلوب  :rolleyes:

#10

السلام عليكم .. 

الأخت الفاضلة زهره 

 

تم احضار رقم الخطأ الخاص بمشكلة الربط الشبكي بواسطة الكود  :

 

تظهر هذه الرسالة :  خطأ في قرص أو شبكة أتصال 

رقم الخطأ            :   3043

 

تحياتي لكي 

                                                                      :rolleyes: الكلمة الطيبة جواز مرور إلى كل القلوب  :rolleyes:

#11

للرفع

                                                                      :rolleyes: الكلمة الطيبة جواز مرور إلى كل القلوب  :rolleyes:

#12

اخي الفاضل : فيصل

 

رقم الخطأ  3043 يدل على امور كثيره ومنها :

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

2. مسافة التوصيل بين السيرفر والجهاز اكثر من 100 متر  لذا قد تكون الإشارة ضعيفة جدا ولا يستطيع السيرفر ان يرسل اشارة كافية للجهاز لإستقبال البيانات .

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

 

 

عدى ذلك اعتذر عن مساعدتك 

 

 

بالتوفيق

#13

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

أختى الفاضلة الاستاذة القديرة زهره

شكراً على تعاونك الجاد معنا ، وبخصوص مشكلة الربط مع السرفر أظن أنه يوجد مشكلة في الكود كما اشرتي  ، أما من حيث الربط بالطريقة اليدوية فأنا اقوم بها دائماً وهي تعمل بشكل ممتاز يعني 100% .

مرة آخرى ارفع لك خالص شكري وتحياتي ، واسئل الله العظيم أن يجزيك احسن الجزاء ، ويجعل ذلك في ميزان حسناتك .

 

 

لي طلب بســيط ، وأتمنى من الله توافقي عليه  وهو زيارة صفحتي بالفيس بوك تم انشائها مؤخراً لبرنامج مدرسي 

ويسعدني ويشرفني قبولك دعوتي للاطلاع على الصفحة  عبر الرابط  https://www.facebook.com/ateye2013

 
والدعوة عامة للجميع وأرجو أن لا تبخلوا علينا بارآئكم
 
 

وتقبلوا مني خالص الاحترام والتقدير

تم تعديل هذه المشاركة بواسطة فيصل عبدالله* في 17 مايو 2013 في 01:11

                                                                      :rolleyes: الكلمة الطيبة جواز مرور إلى كل القلوب  :rolleyes:

#14

للرفع

                                                                      :rolleyes: الكلمة الطيبة جواز مرور إلى كل القلوب  :rolleyes:

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

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

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

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

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