اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

كود الاتصال بقاعدة بيانات


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

لدي قاعدة بيانات مقسمة  قسمين جزاء جداول والجزاء الثاني نماذج وتقرير واستعلامات 

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

  • Like 1
رابط هذا التعليق
شارك

الان, محمد ايمن said:

تفضل اخي الكريم

Desktop.rar

المثال لايعمل يعطي رسالة لم يتم العثور على قاعدة البيانات

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

kkkkkk.PNG

رابط هذا التعليق
شارك

اخي الكريم

بعد ظهور الرسالى سيظهر نموذج الارتباط وهو يظهر فقط عند تغيير المسار

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

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

بعد اذن استاذنا العزيز / محمد ايمن

اخي الاستاذ / علي الكعبي 

اعتقد ان المشكلة تكمن في الكود الموجود في النموذج "FRMmainlogin "  في حدث عند التحميل 

احذف هذا الكود تجد الاتصال بالقاعدة دون مشاكل 

انظر المرفق 

هذا علي قدر استطاعتي ان ما كنت انا غلطانDesktop.rarDesktop.rar

رابط هذا التعليق
شارك

الان, حلبي said:

بعد اذن استاذنا العزيز / محمد ايمن

اخي الاستاذ / علي الكعبي 

اعتقد ان المشكلة تكمن في الكود الموجود في النموذج "FRMmainlogin "  في حدث عند التحميل 

احذف هذا الكود تجد الاتصال بالقاعدة دون مشاكل 

انظر المرفق 

هذا علي قدر استطاعتي ان ما كنت انا غلطانDesktop.rarDesktop.rar

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

الان, حلبي said:

بعد اذن استاذنا العزيز / محمد ايمن

اخي الاستاذ / علي الكعبي 

اعتقد ان المشكلة تكمن في الكود الموجود في النموذج "FRMmainlogin "  في حدث عند التحميل 

احذف هذا الكود تجد الاتصال بالقاعدة دون مشاكل 

انظر المرفق 

هذا علي قدر استطاعتي ان ما كنت انا غلطانDesktop.rarDesktop.rar

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

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

  • Like 1
رابط هذا التعليق
شارك

ليس الأمر صعبا إذا تم الدخول عليه من بابه!

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

.. المكون هو [TableDef] يعيد هذا المكون مصفوفة بجداول البيانات المرتبطة وغير المرتبة بما فيها جداول النظام.

.. هذه الجداول لها عدة خصائص منها خصيصة أتصال الجدول بقاعدة البيانات؛ إذا كان الجدول مضمناً في قاعدة البيانات فإن هذه القيمة تكون خاليه، أما إذا كان مرتبطا فإنها تعود بقيمة نصية تمثل نوع الجدول واسمه ومساره.

هذه القيمة يمكن إعادة تخصيصها.

.. إذا قلنا أن [TableDef] يعيد مصفوفة بالجداول فنحن إذا بحاجة دوارة غرضية تعيد جميع الجداول لفحصها هل هي مرتبطة أم لا؟

.. إذا كانت مرتبطة.. هل الرابط سليم أم معطوب؟

.. إذا كان معطوبا.. هل يمكن إصلاحه تلقائيا أم يحتاج إلى تدخل من قبل المستخدم؟

__ إشكالية!!

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

__ للمعلومية

يقوم أكسس بتخزين  خصائص هذا المكون، والمكونات الأخرى في جدول من جداول النظام يسمى [MSysObjects] وهذا يعني أن القيم التي يُعاد تخصيصها تبقى ثابته.

__ لطيفة

إذا كان مصدر البيانات موحدا فيمكن فحص قيمة الاتصال باستخدام الوظيقة [DLookup] لإعادة أول سجل يحمل اسم ومسار قاعدة البيانات للجداول المرتبطة؛ ومن ثم نمرر الناتج على التابع  [Dir] هذا التابع يعيد اسم الملف إذا المسار إليه صحيحا ويعيد قيمة خالية إذا كان معطوبا!

__ التطبيق

.. أليك طرف الخيط

Sub LINK_TABLE(Optional LINK_DIR As String)
    Dim dbs As DAO.Database
    Dim tdf As DAO.TableDef
    Set dbs = CurrentDb()
    If Not Len(LINK_DIR) Then
        LINK_DIR = XDEF_PATH
    End If
'-- Loop through TableDefs collection, only processing _
'-- the table if it already has a Connection property. _
'-- (all other tables are local ... not linked)
    For Each tdf In dbs.TableDefs
      If tdf.Connect <> "" Then
          LD = Mid(tdf.Connect, InStr(tdf.Connect, "\DATA"))
          tdf.Connect = ";DATABASE=" & LINK_DIR & LD
          tdf.RefreshLink
      End If
    Next
End Sub

 

تم تعديل بواسطه أبو إبراهيم الغامدي
  • Like 2
  • Thanks 1
رابط هذا التعليق
شارك

10 ساعات مضت, علي محمد الكعبي said:

لو كان لي خلفية ماطرحت الموضوع واليك المثال

مجلد جديد ‫‬.rar

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

بعد التجربة الأولى غير اسم المجلد لترى الفرق

LINK_TABLE.zip

رابط هذا التعليق
شارك

11 ساعات مضت, أبو إبراهيم الغامدي said:

ليس الأمر صعبا إذا تم الدخول عليه من بابه!

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

.. المكون هو [TableDef] يعيد هذا المكون مصفوفة بجداول البيانات المرتبطة وغير المرتبة بما فيها جداول النظام.

.. هذه الجداول لها عدة خصائص منها خصيصة أتصال الجدول بقاعدة البيانات؛ إذا كان الجدول مضمناً في قاعدة البيانات فإن هذه القيمة تكون خاليه، أما إذا كان مرتبطا فإنها تعود بقيمة نصية تمثل نوع الجدول واسمه ومساره.

هذه القيمة يمكن إعادة تخصيصها.

.. إذا قلنا أن [TableDef] يعيد مصفوفة بالجداول فنحن إذا بحاجة دوارة غرضية تعيد جميع الجداول لفحصها هل هي مرتبطة أم لا؟

.. إذا كانت مرتبطة.. هل الرابط سليم أم معطوب؟

.. إذا كان معطوبا.. هل يمكن إصلاحه تلقائيا أم يحتاج إلى تدخل من قبل المستخدم؟

__ إشكالية!!

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

__ للمعلومية

يقوم أكسس بتخزين  خصائص هذا المكون، والمكونات الأخرى في جدول من جداول النظام يسمى [MSysObjects] وهذا يعني أن القيم التي يُعاد تخصيصها تبقى ثابته.

__ لطيفة

إذا كان مصدر البيانات موحدا فيمكن فحص قيمة الاتصال باستخدام الوظيقة [DLookup] لإعادة أول سجل يحمل اسم ومسار قاعدة البيانات للجداول المرتبطة؛ ومن ثم نمرر الناتج على التابع  [Dir] هذا التابع يعيد اسم الملف إذا المسار إليه صحيحا ويعيد قيمة خالية إذا كان معطوبا!

__ التطبيق

.. أليك طرف الخيط


Sub LINK_TABLE(Optional LINK_DIR As String)
    Dim dbs As DAO.Database
    Dim tdf As DAO.TableDef
    Set dbs = CurrentDb()
    If Not Len(LINK_DIR) Then
        LINK_DIR = XDEF_PATH
    End If
'-- Loop through TableDefs collection, only processing _
'-- the table if it already has a Connection property. _
'-- (all other tables are local ... not linked)
    For Each tdf In dbs.TableDefs
      If tdf.Connect <> "" Then
          LD = Mid(tdf.Connect, InStr(tdf.Connect, "\DATA"))
          tdf.Connect = ";DATABASE=" & LINK_DIR & LD
          tdf.RefreshLink
      End If
    Next
End Sub

 

احسنت بارك الله فيك

ليتنا نقتدي بمثل هذا الطرح

مثلك من ينطبق عليه : قم للمعلم وفه التبجيلا ..

  • Like 1
رابط هذا التعليق
شارك

58 دقائق مضت, ابوخليل said:

احسنت بارك الله فيك

ليتنا نقتدي بمثل هذا الطرح

مثلك من ينطبق عليه : قم للمعلم وفه التبجيلا ..

لله الفضل والمنه

أشكرك أيا خليل على ثناءك ومرورك .. وأرجو أن يقع ثناءك في محلة.

 

 

تم تعديل بواسطه أبو إبراهيم الغامدي
  • Like 1
رابط هذا التعليق
شارك

الان, أبو إبراهيم الغامدي said:

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

بعد التجربة الأولى غير اسم المجلد لترى الفرق

LINK_TABLE.zip

الرابط لايعمل

الان, محمد ايمن said:

تفضل اخي الكريم

سؤال على الهامش _ هل هذا البرنامج من تصميمك ؟؟؟

2222.rar

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

رابط هذا التعليق
شارك

أعتذر إليك عن عدم تمكنك من تشغيل المثال على جهازك..

جهازي يعمل على إصدار 2007

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

قمت بإنشاء قاعدة بيانات جديدة تحتوي فقط على المكونات التي تستخدم في المثال؛ محاولة مني استبعاد أي افتراض يؤدي إلى عدم تجواب المثال مع إصدارك.,

المرفق مرة أخرى

LINK_TABLE.zip 

تم تعديل بواسطه أبو إبراهيم الغامدي
رابط هذا التعليق
شارك

الان, أبو إبراهيم الغامدي said:

أعتذر إليك عن عدم تمكنك من تشغيل المثال على جهازك..

جهازي يعمل على إصدار 2007

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

قمت بإنشاء قاعدة بيانات جديدة تحتوي فقط على المكونات التي تستخدم في المثال؛ محاولة مني استبعاد أي افتراض يؤدي إلى عدم تجواب المثال مع إصدارك.,

المرفق مرة أخرى

LINK_TABLE.zip 

ماهو سبب ظهور هذه الرسالة

gh.PNG

رابط هذا التعليق
شارك

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information