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

الربط التلقائي للجداول الموجودة في المجلد

بدأه فتى الوادي في 6 ديسمبر 2013 · 4 رد · 693 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

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

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

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

 

أختصر عليكم :

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

 

يا ليت أجد حلا لذلك .

وبارك الله فيكم وفي علمكم ونفع بكم .

mk17481_26bccea871.gif
#2

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

  Private Function Relink(tblPath As String, progPath As String, Optional blnSilent As Boolean = True) As Boolean
    Dim db As DAO.Database   '       كودالربط
    Dim tdf As DAO.TableDef
        Dim acbRelink

    On Error GoTo HandleErrors
    
    ' Validate path
    If Not IsExist(tblPath) Then
        If Not blnSilent Then
            acbRelink = False
            MsgBox "لم يتم العثور على قاعدة البيانات فى مجلد البرنامج "
            GoTo ExitHere
        End If
    End If
    
    Call SysCmd(acSysCmdSetStatus, "Re-linking the data tables...")
    Set db = DBEngine.Workspaces(0).OpenDatabase(progPath)  'CurrentDb()
    For Each tdf In db.TableDefs
        If (tdf.Attributes And dbAttachedTable) = _
         dbAttachedTable Then
            tdf.Connect = ";DATABASE=" & tblPath
            tdf.RefreshLink
        End If
    Next
    Call SysCmd(acSysCmdClearStatus)
    
    ' Success!
    If Not blnSilent Then
        MsgBox "تم إعادة ربط البيانات.", vbInformation
    End If

    acbRelink = True
        db.Close
        Set db = Nothing

ExitHere:
    Call SysCmd(acSysCmdClearStatus)
    Exit Function
    
HandleErrors:
    acbRelink = False
    Select Case Err.Number
     Case 3011
            MsgBox "لم يتم العثور على أحد الجداول فى قاعدة البيانات " + Chr(10) + Chr(13) + " يجب تحديد النسخة المحقوظة ثم اعادة تشغيل البرنامج ", , "قاعدة البيانات غير مكتملة"
        Case Else
            If Not blnSilent Then
                MsgBox Err.Description, , "acbRelink Error " & Err.Number
            End If
    End Select
    Resume ExitHere
End Function

84CJO.gif

#3

أخي ( أواب ) جعلني الله وإياك من " الأوابين " :

تفضل المثال مرفق .

 

Data_Base.rar

mk17481_26bccea871.gif
#4

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

 

لا تنسى التقييم

++Data_Base.rar

1

84CJO.gif

#5

ممتاز ..
ماشاء الله تبارك الله .

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

 

10/10

 

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

mk17481_26bccea871.gif

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

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

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

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

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