اذهب الي المحتوي
أوفيسنا

تعذر على Microsoft Access العثور على ملف قاعدة البيانات


jjafferr

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

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

 

عندي برنامج في احد المؤسسات ويعمل تمام ،

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

 

عند تشغيل البرنامج ، بدأ كود الواجهة FE بعمل ربط مع برنامج الجداول BE ، وظهرت لهم نافذة اختيار مكان وجود برنامج الجداول BE :

2.jpg.83c7f6e022d3298e164026020298d4f6.jpg

.

وبعد اختيار المسار والبرنامج ، ظهرت هذه الرسالة:

3.jpg.d9cde7d985cba029a59dc0cb62816574.jpg

.

ثم هذه الرسالة:

4.jpg.37579985957a431614fec47c49ba665c.jpg

.

 

وبعد النظر في هذه الصور ، اتضح لي ان هناك شيء غريب في الصورة (لاحظ السهم الاحمر) :

6.jpg.21584d402bb2b42f97f6450c37ee0aa8.jpg

.

لاحظت وجود علامة استفهام في اسم برنامج BE ،

لذا طلب من الشباب ان يقوموا بحذف علامة الاستفهام من الاسم ، وعليه حصلوا على هذه الرساله:

7.jpg.6a612e556558c1162b2869002f2f8f8f.jpg

.

 

السؤال كان ، من اين اتى هذا الاسم ، والجواب انه من جدول MSysObjects ، ولكن وكما نرى من الصورة ادناه ان اسم البرنامج والمسار في الجدول صحيحين:

8.jpg.31d2aa39975b9be63b10425f957e9a00.jpg

.

لذا اردت التأكد ، واردت ان ارى ما يراه الكمبيوتر ، فنسخت بيانات الحقل والصقتها في Notepad :

9.jpg.bfef8c67dcb2562f7af13aaafbe3246f.jpg

.

ولم الحظ اي شيء غريب ، ولكن ، Notepad يعمل على unicode و ansi ، لذا الصقت البيانات في صفحة كود VBA ، وحصلت على النتيجة التالية:

10.jpg.11e54b82c143826140117384c328d1b4.jpg

.

 

هذا يعني ان الوندوز العربي اضاف بعض الرموز لإسم البرنامج ، وبذلك لم يوجد تطابق بين اسم البرنامج BE وبيانات المسار التي يتوقعها برنامج الاكسس !!

الحل الاسهل كان بتغيير اسم برنامج الجداول BE الى اللغة الانجليزية ، وتم حل المشكلة (او حذف ربط الجداول ، واعادة الربط مرة ثانية) :smile:

 

-------------------------------------------------------

اضافة بتاريخ 12/11/2020

 

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

image.png.aa1f2a88e45bcc54aa37fb8023ab4934.png

 

جعفر

  • Like 4
  • Thanks 3
رابط هذا التعليق
شارك

كلامك صحيح اخي جعفر

انا عندما انسخ كود من المنتدى يطلع لي هذة العبارة

وانا استخدم في برنامجي ربط تلقائي

هذة الداله

Public Function Authorization1()
' DoCmd.RunCommand acCmdAppMinimize 'لاخفاء شاشة الاكسس
' DoCmd.ShowToolbar "ribbon", acToolbarNo 'لاخفاء ادوات  الاكسس

DoCmd.OpenForm "login2"
End If

' On Error GoTo MyErr
'Beep
'MyErr:
'MsgBox "   عفوا مجلد البيانات تم نقلة أو أعادة تسميتة " & Chr(13) & "                لذا سوف يتم اغلاق البرنامج " & Chr(13) & " رجاء أذهب الى مصدر البرنامج وتأكد من وجود مجلد بأسم " & Chr(13) & "             بجوار مجلد بـرنـامـج الـخـيـاط   DATA ", vbYes, " بـرنـامـج الـخـيـاط : خطــــــأ "
' DoCmd.Quit
End Function
 Public Function Authorization2()
 Dim obj_FSO As Object, obj_Drive As Object
 Set obj_FSO = CreateObject("Scripting.FileSystemObject")
 Set obj_Drive = obj_FSO.GetDrive("C:\")
 MsgBox "رقم التسجيل الخاص بنسختك هو " & obj_Drive.SerialNumber & " ", vbInformation, "     بـرنـامـج الـخـيـاط : ترخيـــــــص    "
 End Function
Public Function acbRelink(strPath As String, Optional blnSilent As Boolean) As Boolean
   On Error GoTo alalal
    Call SysCmd(acSysCmdSetStatus, "Re-linking the data tables...")
    Set db = CurrentDb()
    For Each tdf In db.TableDefs
    If (tdf.Attributes And dbAttachedTable) = _
    dbAttachedTable Then
    tdf.Connect = "D:\بـرنـامـج الـخـيـاط\data\tailor"
    tdf.RefreshLink
    End If
    Next
    Call SysCmd(acSysCmdClearStatus)
    If blnSilent Then
    MsgBox " تم العوده الى النسخه الأصليه مره أخرى  ", vbInformation, " بـرنـامـج الـخـيـاط : النسخه الأصليه  "
    End If
alalal:
    If err.Number = 3024 Then
    Beep
MsgBox "   عفوا مجلد البيانات تم نقلة أو أعادة تسميتة " & Chr(13) & "                لذا سوف يتم اغلاق البرنامج " & Chr(13) & " رجاء أذهب الى مصدر البرنامج وتأكد من وجود مجلد بأسم " & Chr(13) & "             بجوار داخـل بـرنـامـج الـخـيـاط   DATA ", vbYes, " بـرنـامـج الـخـيـاط : خطــــــأ "
    DoCmd.Quit
    End If
End Function
Public Function DataReceived()
DoCmd.Beep
    If MsgBox("                     !!! تـحـذيـر هل أنت متأكد  " & Chr(13) & "           من رغبتك في العودة للنسخة الاصلية ؟؟؟ ", vbYesNo, " بـرنـامـج الـخـيـاط : النسخه الأصليه ") = vbYes Then
 Call acbRelink(Trim(Replace(Application.CurrentProject.Path & "\" & "D:\بـرنـامـج الـخـيـاط\data\tailor", Chr$(0), " ")), True)
  End If
End Function
Public Function acbRelink2(strPath As String, Optional blnSilent As Boolean) As Boolean
   On Error GoTo alalal
 
    Call SysCmd(acSysCmdSetStatus, "Re-linking the data tables...")
    Set db = CurrentDb()
    For Each tdf In db.TableDefs
    If (tdf.Attributes And dbAttachedTable) = _
    dbAttachedTable Then
    tdf.Connect = ";DATABASE=" & "D:\بـرنـامـج الـخـيـاط\data\tailor"
    tdf.RefreshLink
    End If
    Next
    Call SysCmd(acSysCmdClearStatus)
alalal:
    If err.Number = 3024 Or err.Number = 2001 Then
DoCmd.Beep
MsgBox "     عفوا مجلد البيانات تم نقلة أو أعادة تسميتة " & Chr(13) & "          لذا سوف يتم اغلاق البرنامج " & Chr(13) & " رجاء أذهب الى مصدر البرنامج وتأكد من وجود مجلد بأسم " & Chr(13) & "       بجوار مجلد بـرنـامـج الـخـيـاط  DATA داخل مجلد tailor  وملف بأسم DATA  ", vbYes, " بـرنـامـج الـخـيـاط : خطــــــأ "
    DoCmd.Quit
    End If
End Function
Public Function DataReceived2()
' HideAccess 'لاخفاء شاشة الاكسس

    Call acbRelink2(Trim(Replace(Application.CurrentProject.Path & "\" & "D:\بـرنـامـج الـخـيـاط\data\tailor", Chr$(0), " ")), True)

End Function

 

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

في ٢٦‏/٨‏/٢٠١٨ at 22:44, jjafferr said:

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

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

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

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

تقبل تقديري وتحياتي

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

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