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

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


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

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

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

بعد أن أنهيت العمل علي المشروع الذي ارهقني وأقلق منامي، وبدأت بعمل التجربة النهائية قبل التسليم فوجئت بهذا الخطأ الغريب :blink:

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

حتي لا أطيل عند تجربة فتح البرنامج وتغير مسار قاعدة البيانات وتنفيذ الكود يتم الارتباط بالجداول وتظهر لوحة التبديل (navigation pane)  ولا أدري لماذا تظهر لوحة التبديل بعد اعادة الارتباط بالجداول قمت بعدت محاولات وضعت كود اخفاء تلك اللوحة بعد استيراد كل جدول ووضعت الكود عند فتح النافذة التالية بعد الارتباط ووضعته مرة أخري عند تحميل نفس النافذة ولكن دون جدوي :wallbash: لا أدري أين الخلل 

ملاحظة: المشكلة ظهرت بعد عمل الملف التنفيذي للبرنامج وتسطيبه ولم تكن تظهر عند كتابة الكود لأول مرة وتجربته:blink:

هذا هو كود الارتباط  

Public Sub CreateTableLink(strBEPath, strSourceTableName, Optional strPassword = "")

Dim db As DAO.Database
Dim tdf As DAO.TableDef
Dim strConnect As String
Dim strLinkName As String
On Error GoTo errLink
strLinkName = strSourceTableName

strConnect = "MS Access;PWD=" & strPassword & _
    ";DATABASE=" & strBEPath
Debug.Print strConnect & " " & strLinkName
Set db = CurrentDb
Set tdf = db.CreateTableDef
tdf.Connect = strConnect
tdf.SourceTableName = strSourceTableName
tdf.Name = strLinkName
'tdf.Attributes = dbHiddenObject
Recreate:
db.TableDefs.Append tdf
db.TableDefs.Refresh
Set tdf = Nothing
Set db = Nothing
DisplayHideNavPane False

Exit Sub
errLink:
    If Err.Number = 3012 Then
    'this conniction is created before this time
        db.TableDefs.Delete strSourceTableName
        DisplayHideNavPane False
        GoTo Recreate
    Else
        MsgBox Err.Number & vbCrLf & Err.Description
    End If
End Sub

وهذا كود لاخفاء الـ (navigation pane) 

Sub DisplayHideNavPane(Optional Visible As Boolean = True)
    DoCmd.SelectObject acForm, , True
    If Visible = False Then DoCmd.RunCommand acCmdWindowHide
End Sub

'and call it like this:
DisplayHideNavPane False

وهذا فيديو للمشكلة التي تحدث 

 

 

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

طيب ممكن تجرب الكود الاتى 


Public Function DisplayHideNavPane(Optional Visible As Boolean = True)
On Error GoTo ErrHandler
    DoCmd.SelectObject acForm, , True
    'Hide ribbon of access window
    DoCmd.ShowToolbar "Ribbon", acToolbarNo

    'select the navigation pange
    Call DoCmd.NavigateTo("acNavigationCategoryObjectType")
    'hide the selected object
    Call DoCmd.RunCommand(acCmdWindowHide)

Exit Function
ErrHandler:
MsgBox Err.Description, vbCritical, "Error"
End Function

'and call it like this:
DisplayHideNavPane False

 

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

شكرا لك غدا ان شاء الله أجرب وأوافيكم بالنتائج 

بارك الله فيك 

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

تم حل المشكلة والحمد لله

وجزاكم الله عني خيرا 

لم يكن هناك حاجة لتكرار كود الاخفاء في أكثر من فورم (السهر يؤي الي ظهور المشكلات دائما :biggrin:)

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

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



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

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

Important Information