jjafferr قام بنشر أغسطس 26, 2018 قام بنشر أغسطس 26, 2018 السلام عليكم ورحمة الله وبركاته عندي برنامج في احد المؤسسات ويعمل تمام ، ولكنهم اضطروا لعمل فورمات للجهاز وتم تنصيب الوندوز العربي ، وقاموا بعمل مجلد جديد للبرنامج ، وتغيير اسم البرنامج الى اللغة العربية. عند تشغيل البرنامج ، بدأ كود الواجهة FE بعمل ربط مع برنامج الجداول BE ، وظهرت لهم نافذة اختيار مكان وجود برنامج الجداول BE : . وبعد اختيار المسار والبرنامج ، ظهرت هذه الرسالة: . ثم هذه الرسالة: . وبعد النظر في هذه الصور ، اتضح لي ان هناك شيء غريب في الصورة (لاحظ السهم الاحمر) : . لاحظت وجود علامة استفهام في اسم برنامج BE ، لذا طلب من الشباب ان يقوموا بحذف علامة الاستفهام من الاسم ، وعليه حصلوا على هذه الرساله: . السؤال كان ، من اين اتى هذا الاسم ، والجواب انه من جدول MSysObjects ، ولكن وكما نرى من الصورة ادناه ان اسم البرنامج والمسار في الجدول صحيحين: . لذا اردت التأكد ، واردت ان ارى ما يراه الكمبيوتر ، فنسخت بيانات الحقل والصقتها في Notepad : . ولم الحظ اي شيء غريب ، ولكن ، Notepad يعمل على unicode و ansi ، لذا الصقت البيانات في صفحة كود VBA ، وحصلت على النتيجة التالية: . هذا يعني ان الوندوز العربي اضاف بعض الرموز لإسم البرنامج ، وبذلك لم يوجد تطابق بين اسم البرنامج BE وبيانات المسار التي يتوقعها برنامج الاكسس !! الحل الاسهل كان بتغيير اسم برنامج الجداول BE الى اللغة الانجليزية ، وتم حل المشكلة (او حذف ربط الجداول ، واعادة الربط مرة ثانية) ------------------------------------------------------- اضافة بتاريخ 12/11/2020 والامر غير مقتصر على عملية ربط قاعدة البيانات ، فقد نحصل على رسالة الخطأ التالية ، والسبب هو كما اشرنا اليه اعلاه : جعفر 4 3
ابو ياسين المشولي قام بنشر أغسطس 26, 2018 قام بنشر أغسطس 26, 2018 كلامك صحيح اخي جعفر انا عندما انسخ كود من المنتدى يطلع لي هذة العبارة وانا استخدم في برنامجي ربط تلقائي هذة الداله 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
kaser906 قام بنشر أغسطس 28, 2018 قام بنشر أغسطس 28, 2018 في ٢٦/٨/٢٠١٨ 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.