Hamdi Edlbi-khalf قام بنشر أكتوبر 10, 2018 قام بنشر أكتوبر 10, 2018 السلام عليكم لماذا نحتاج إلى إضافة المراجع يدوياً في محرر الفيجوال و لا تضاف تلقائياً ؟ و هل لملفات DLL علاقة بهذه المراجع ؟ 1
kanory قام بنشر أكتوبر 12, 2018 قام بنشر أكتوبر 12, 2018 في ١٠/١٠/٢٠١٨ at 22:14, Khalf said: لماذا نحتاج إلى إضافة المراجع يدوياً في محرر الفيجوال و لا تضاف تلقائياً ؟ أخي الكريم اعتقد يمكن ذلك بكود لنسخ هذه المراجع من جهازك كمبرمج ثم اضافتها لجهاز العميل ..... 1
Hamdi Edlbi-khalf قام بنشر أكتوبر 13, 2018 الكاتب قام بنشر أكتوبر 13, 2018 السلام عليكم .. 22 ساعات مضت, kanory said: اعتقد يمكن ذلك بكود لنسخ هذه المراجع من جهازك كمبرمج ثم اضافتها لجهاز العميل ... في الواقع لست مبرمجاً فحسبي أني مستخدم للأوفيس فقط و تنفيذي بعض البرامج كان من باب التطوع في مكان عملي كون وظيفتي و من قبلها دراستي لا تمت بصلة لهذا المجال و أسئلتي هي من باب العلم بالشيء و إرواء للفضول و في كثير من الأحيان لحل بعض المشاكل التي تواجهني كمبتدئ. إن سؤالي هو لماذا لا تضاف المراجع تلقائياً في محرر فيجوال و لماذا وجدت أصلاً بهذه الصورة الموزعة ؟ لم على المستخدم إضافة هذه المكتبات و لم تكون مفقودة في بعض الأحيان ؟و ما الحل لذلك ؟ هل يمكن إضافة مكتبات مفتوحة المصدر مثل الچاڤا ؟ شكراً لكم كنت أتمنى أن أضع أجوبتي على هذه الأسئلة إلا أن البحث لم يسعفني .. 1
Hamdi Edlbi-khalf قام بنشر أكتوبر 13, 2018 الكاتب قام بنشر أكتوبر 13, 2018 هذا الرابط .. حول إضافة المراجع آلياً للبرنامج .. و أحسب أنه الأفضل بناء على ما جاء التعليقات ، لم أجربه و ربما قد أحتاج للمساعدة عند تطبيقه . https://www.tek-tips.com/viewthread.cfm?qid=903662 Maybe these examples will help you. Function FixUpRefs() Dim loRef As Access.Reference Dim intCount As Integer Dim intX As Integer Dim blnBroke As Boolean Dim strPath As String On Error Resume Next 'Count the number of references in the database intCount = Access.References.Count 'Loop through each reference in the database 'and determine if the reference is broken. 'If it is broken, remove the Reference and add it back. Debug.Print "----------------- References found -----------------------" Debug.Print " reference count = "; intCount For intX = intCount To 1 Step -1 Set loRef = Access.References(intX) With loRef Debug.Print " reference = "; .FullPath blnBroke = .IsBroken If blnBroke = True Or Err <> 0 Then strPath = .FullPath Debug.Print " ***** Err = "; Err; " and Broke = "; blnBroke With Access.References .Remove loRef Debug.Print "path name = "; strPath .AddFromFile strPath End With End If End With Next '''Access.References.AddFromFile "C:\Program Files\Common Files\Microsoft Shared\DAO\dao360.dll" Set loRef = Nothing ' Call a hidden SysCmd to automatically compile/save all modules. Call SysCmd(504, 16483) End Function Function AddRefs() Dim loRef As Access.Reference Dim intCount As Integer Dim intX As Integer Dim blnBroke As Boolean Dim strPath As String On Error Resume Next 'Loop through each reference in the database 'Add all references Debug.Print "----------------- Add References -----------------------" With Access.References .AddFromFile "C:\Program Files\Common Files\Microsoft Shared\DAO\dao360.dll" .AddFromFile "C:\Program Files\Common Files\Microsoft Shared\VBA\VBA6\vbe6.dll" .AddFromFile "C:\Program Files\Microsoft Office\Office\msacc9.olb" .AddFromFile "C:\Program Files\Common Files\System\ado\msado15.dll" .AddFromFile "C:\Program Files\Common Files\System\ado\msado25.tlb" .AddFromFile "C:\Program Files\Common Files\System\ado\msadox.dll" .AddFromFile "C:\WINNT\System32\stdole2.tlb" .AddFromFile "C:\WINNT\System32\scrrun.dll" End With ' Call a hidden SysCmd to automatically compile/save all modules. Call SysCmd(504, 16483) End Function و يبقى السؤال قائماً 29 دقائق مضت, Khalf said: سؤالي هو لماذا لا تضاف المراجع تلقائياً في محرر فيجوال و لماذا وجدت أصلاً بهذه الصورة الموزعة ؟ لم على المستخدم إضافة هذه المكتبات و لم تكون مفقودة في بعض الأحيان ؟و ما الحل لذلك ؟ هل يمكن إضافة مكتبات مفتوحة المصدر مثل الچاڤا ؟ شكراً لكم كنت أتمنى أن أضع أجوبتي على هذه الأسئلة إلا أن البحث لم يسعفني .. 1
ابو ياسين المشولي قام بنشر أكتوبر 13, 2018 قام بنشر أكتوبر 13, 2018 25 دقائق مضت, Khalf said: هذا الرابط .. حول إضافة المراجع آلياً للبرنامج .. و أحسب أنه الأفضل بناء على ما جاء التعليقات ، لم أجربه و ربما قد أحتاج للمساعدة عند تطبيقه . https://www.tek-tips.com/viewthread.cfm?qid=903662 Maybe these examples will help you. Function FixUpRefs() Dim loRef As Access.Reference Dim intCount As Integer Dim intX As Integer Dim blnBroke As Boolean Dim strPath As String On Error Resume Next 'Count the number of references in the database intCount = Access.References.Count 'Loop through each reference in the database 'and determine if the reference is broken. 'If it is broken, remove the Reference and add it back. Debug.Print "----------------- References found -----------------------" Debug.Print " reference count = "; intCount For intX = intCount To 1 Step -1 Set loRef = Access.References(intX) With loRef Debug.Print " reference = "; .FullPath blnBroke = .IsBroken If blnBroke = True Or Err <> 0 Then strPath = .FullPath Debug.Print " ***** Err = "; Err; " and Broke = "; blnBroke With Access.References .Remove loRef Debug.Print "path name = "; strPath .AddFromFile strPath End With End If End With Next '''Access.References.AddFromFile "C:\Program Files\Common Files\Microsoft Shared\DAO\dao360.dll" Set loRef = Nothing ' Call a hidden SysCmd to automatically compile/save all modules. Call SysCmd(504, 16483) End Function Function AddRefs() Dim loRef As Access.Reference Dim intCount As Integer Dim intX As Integer Dim blnBroke As Boolean Dim strPath As String On Error Resume Next 'Loop through each reference in the database 'Add all references Debug.Print "----------------- Add References -----------------------" With Access.References .AddFromFile "C:\Program Files\Common Files\Microsoft Shared\DAO\dao360.dll" .AddFromFile "C:\Program Files\Common Files\Microsoft Shared\VBA\VBA6\vbe6.dll" .AddFromFile "C:\Program Files\Microsoft Office\Office\msacc9.olb" .AddFromFile "C:\Program Files\Common Files\System\ado\msado15.dll" .AddFromFile "C:\Program Files\Common Files\System\ado\msado25.tlb" .AddFromFile "C:\Program Files\Common Files\System\ado\msadox.dll" .AddFromFile "C:\WINNT\System32\stdole2.tlb" .AddFromFile "C:\WINNT\System32\scrrun.dll" End With ' Call a hidden SysCmd to automatically compile/save all modules. Call SysCmd(504, 16483) End Function و يبقى السؤال قائماً اخي Khalf انا جربت هذا الكود عملته بداله ثم استدعيته عند الفتح وهو شغال Function AddRefs() Dim loRef As Access.Reference Dim intCount As Integer Dim intX As Integer Dim blnBroke As Boolean Dim strPath As String On Error Resume Next 'Loop through each reference in the database 'Add all references Debug.Print "----------------- Add References -----------------------" With Access.References .AddFromFile "C:\Program Files\Common Files\Microsoft Shared\DAO\dao360.dll" .AddFromFile "C:\Program Files\Common Files\Microsoft Shared\VBA\VBA6\vbe6.dll" .AddFromFile "C:\Program Files\Microsoft Office\Office\msacc9.olb" .AddFromFile "C:\Program Files\Common Files\System\ado\msado15.dll" .AddFromFile "C:\Program Files\Common Files\System\ado\msado25.tlb" .AddFromFile "C:\Program Files\Common Files\System\ado\msadox.dll" .AddFromFile "C:\WINNT\System32\stdole2.tlb" .AddFromFile "C:\WINNT\System32\scrrun.dll" .AddFromFile "C:\windows\syswow64\scrrun.dll" End With ' Call a hidden SysCmd to automatically compile/save all modules. Call SysCmd(504, 16483) End Function 1 1
Hamdi Edlbi-khalf قام بنشر أكتوبر 14, 2018 الكاتب قام بنشر أكتوبر 14, 2018 مرحباً تماماً .. هذا الماكرو الثاني في الرابط و في الواقع لقد انتقيته من بين اقتراحات جوجل بناء على التعليقات و التي أبدت الرضا عنه . و لكن ليكون العمل مكتملاً فلا بد من استخدام الماكرو الأول المتعلق باصلاح المراجع المعطوبة . فالرابط و الكود المدرج عن دالتين إحداهما تزيل المراجع المعطوبة و الثانية تضيف المراجع .
ابو ياسين المشولي قام بنشر أكتوبر 14, 2018 قام بنشر أكتوبر 14, 2018 1 ساعه مضت, Khalf said: مرحباً تماماً .. هذا الماكرو الثاني في الرابط و في الواقع لقد انتقيته من بين اقتراحات جوجل بناء على التعليقات و التي أبدت الرضا عنه . و لكن ليكون العمل مكتملاً فلا بد من استخدام الماكرو الأول المتعلق باصلاح المراجع المعطوبة . فالرابط و الكود المدرج عن دالتين إحداهما تزيل المراجع المعطوبة و الثانية تضيف المراجع . وهو كذلك
النجاشي قام بنشر أكتوبر 14, 2018 قام بنشر أكتوبر 14, 2018 19 ساعات مضت, ابو ياسين المشولي said: اخي Khalf انا جربت هذا الكود عملته بداله ثم استدعيته عند الفتح وهو شغال Function AddRefs() Dim loRef As Access.Reference Dim intCount As Integer Dim intX As Integer Dim blnBroke As Boolean Dim strPath As String On Error Resume Next 'Loop through each reference in the database 'Add all references Debug.Print "----------------- Add References -----------------------" With Access.References .AddFromFile "C:\Program Files\Common Files\Microsoft Shared\DAO\dao360.dll" .AddFromFile "C:\Program Files\Common Files\Microsoft Shared\VBA\VBA6\vbe6.dll" .AddFromFile "C:\Program Files\Microsoft Office\Office\msacc9.olb" .AddFromFile "C:\Program Files\Common Files\System\ado\msado15.dll" .AddFromFile "C:\Program Files\Common Files\System\ado\msado25.tlb" .AddFromFile "C:\Program Files\Common Files\System\ado\msadox.dll" .AddFromFile "C:\WINNT\System32\stdole2.tlb" .AddFromFile "C:\WINNT\System32\scrrun.dll" .AddFromFile "C:\windows\syswow64\scrrun.dll" End With ' Call a hidden SysCmd to automatically compile/save all modules. Call SysCmd(504, 16483) End Function ممكن عمل مثال مصغر يابو ياسين كي تعمل الفائده نشكر الاستاذ@Khalf على السوال الرائع تحياتي احبتي
ابو ياسين المشولي قام بنشر أكتوبر 14, 2018 قام بنشر أكتوبر 14, 2018 2 ساعات مضت, ابو زاهر said: ممكن عمل مثال مصغر يابو ياسين كي تعمل الفائده نشكر الاستاذ@Khalf على السوال الرائع تحياتي احبتي Database25.accdb 1
Hamdi Edlbi-khalf قام بنشر أكتوبر 15, 2018 الكاتب قام بنشر أكتوبر 15, 2018 (معدل) السلام عليكم لقد ظهر هذا الخطأ أثناء فتح مثال التطبيق المرفق و لم يقتصر عليه بل أصبح يظهر في سائر برامج الأكسس تم تعديل أكتوبر 15, 2018 بواسطه Khalf
ابو ياسين المشولي قام بنشر أكتوبر 15, 2018 قام بنشر أكتوبر 15, 2018 (معدل) 39 دقائق مضت, Khalf said: السلام عليكم لقد ظهر هذا الخطأ أثناء فتح مثال التطبيق المرفق و لم يقتصر عليه بل أصبح يظهر في سائر برامج الأكسس ايش هو الاكسس اللي عندك انا اكسس 2010 شوف الفيديو bandicam 2018-10-15 21-14-38-432.rar تم تعديل أكتوبر 15, 2018 بواسطه ابو ياسين المشولي
Hamdi Edlbi-khalf قام بنشر أكتوبر 15, 2018 الكاتب قام بنشر أكتوبر 15, 2018 (معدل) مرحباً الآن أقوم بإصلاح الأوفيس .... خلال بحثي وجدت عدة أسباب لهذا الخطأ لقد سبق ظهور هذا الخطأ آخرُ له علاقة بالمراجع . المهم ... الآن عرفت لماذا لا تضاف المراجع آلياً ؟ السبب الرئيسي هو عدم توافق المراجع مع جميع نسخ الأفيس أو نسخ الويندوز فيجب أن تكون إضافتها مدروسة لقد كانت هذه التجربة دليلاً على ذلك ! الأوفيس لدي 2010 و لكنه غير مفعل بعض الروابط اتهمت 2010 sp1 . أما أقرب التعليلات فهي : المشكلة في ملفات EXE و توافقها مع ملفات DLL تم تعديل أكتوبر 15, 2018 بواسطه Khalf
ابو ياسين المشولي قام بنشر أكتوبر 20, 2018 قام بنشر أكتوبر 20, 2018 في ١٥/١٠/٢٠١٨ at 21:35, Khalf said: مرحباً الآن أقوم بإصلاح الأوفيس .... خلال بحثي وجدت عدة أسباب لهذا الخطأ لقد سبق ظهور هذا الخطأ آخرُ له علاقة بالمراجع . المهم ... الآن عرفت لماذا لا تضاف المراجع آلياً ؟ السبب الرئيسي هو عدم توافق المراجع مع جميع نسخ الأفيس أو نسخ الويندوز فيجب أن تكون إضافتها مدروسة لقد كانت هذه التجربة دليلاً على ذلك ! الأوفيس لدي 2010 و لكنه غير مفعل بعض الروابط اتهمت 2010 sp1 . أما أقرب التعليلات فهي : المشكلة في ملفات EXE و توافقها مع ملفات DLL هنا اضفت اكثر من 8 مكتبات Database25.accdb 1 1
Hamdi Edlbi-khalf قام بنشر أكتوبر 22, 2018 الكاتب قام بنشر أكتوبر 22, 2018 (معدل) في October 20, 2018 at 13:49, ابو ياسين المشولي said: هنا اضفت اكثر من 8 مكتبات Database25.accdb مرحباً أولاً أعتذر عن تأخري بالرد حتى الآن و لكن تمهلت بالإجابة ريثما أقوم ببحث إضافي . المشكلة في تطبيق هذا الأمر أن بعض النسخ( أوفيس و ويندوز) لسبب أو لآخر تفتقد بعض ملفات DLL أو أنها تحمل أسماء و مسارات أخرى . و في حالة ملفات EXE فقد تكون المكتبة المراد إضافتها لا تتوافق مع الملف . مما يسبب مشكلة أثناء إضافة المرجع و ينجم عنها قفل محرر الفيجوال مما سيضطر المستخدم إلى إجراء إصلاح للأوفيس . في October 13, 2018 at 22:33, Khalf said: هذا الرابط .. حول إضافة المراجع آلياً للبرنامج .. و أحسب أنه الأفضل بناء على ما جاء التعليقات ، لم أجربه و ربما قد أحتاج للمساعدة عند تطبيقه . إن لصق الكود في محرر الفيجوال بيزيك و استدعائه بالأحداث ليس بالمسألة المعقدة و لكن معاناتي مع نسخ الأوفيس الناقصة و المختلفة (حتى تلك المشتراة عن طريق النت ) هي ما دعتني لطلب المساعدة. فالمسألة أكثر تعقيداً من إضافة مكتبة فحسب . كنت أتمنى أن يحظى السؤال باهتمام أكبر عدد من الخبراء ممن أنست منهم معرفة عميقة بملفات النظام و علاقتها بمكتبات الفيجوال ... - مع الشكر العميق للأستاذ @ابو ياسين المشولي على مساهمته القيمة و وقته الثمين - مما سيثري الموضوع أكثر ... فواحدة من أكبر مشكلات البرمجة كما مر معي : "PLATFORMS COMPATIBILITY " فلو كنت قادراً على تبديل نسخة الأفيس على جهاز أو اثنين فكيف بعشرات الأجهزة التي سيعمل البرنامج عليها ، أو على أقل تقدير عمليات جراحية لاستبدال ملف تالف أو تسجيل آخر مفقود أو البحث عن ثالث ضائع !! كنت قد هممت بتوجيه السؤال لأسماء محددة من رواد الموقع دون إهمال أي من رواده الأكارم إلا أن ذلك قد يدعو بعض الأعضاء من أصحاب الخبرة للإحجام عن المشاركة . تم تعديل أكتوبر 22, 2018 بواسطه Khalf 1
ابو ياسين المشولي قام بنشر أكتوبر 22, 2018 قام بنشر أكتوبر 22, 2018 3 ساعات مضت, Khalf said: مرحباً أولاً أعتذر عن تأخري بالرد حتى الآن و لكن تمهلت بالإجابة ريثما أقوم ببحث إضافي . المشكلة في تطبيق هذا الأمر أن بعض النسخ( أوفيس و ويندوز) لسبب أو لآخر تفتقد بعض ملفات DLL أو أنها تحمل أسماء و مسارات أخرى . و في حالة ملفات EXE فقد تكون المكتبة المراد إضافتها لا تتوافق مع الملف . مما يسبب مشكلة أثناء إضافة المرجع و ينجم عنها قفل محرر الفيجوال مما سيضطر المستخدم إلى إجراء إصلاح للأوفيس . إن لصق الكود في محرر الفيجوال بيزيك و استدعائه بالأحداث ليس بالمسألة المعقدة و لكن معاناتي مع نسخ الأوفيس الناقصة و المختلفة (حتى تلك المشتراة عن طريق النت ) هي ما دعتني لطلب المساعدة. فالمسألة أكثر تعقيداً من إضافة مكتبة فحسب . كنت أتمنى أن يحظى السؤال باهتمام أكبر عدد من الخبراء ممن أنست منهم معرفة عميقة بملفات النظام و علاقتها بمكتبات الفيجوال ... - مع الشكر العميق للأستاذ @ابو ياسين المشولي على مساهمته القيمة و وقته الثمين - مما سيثري الموضوع أكثر ... فواحدة من أكبر مشكلات البرمجة كما مر معي : "PLATFORMS COMPATIBILITY " فلو كنت قادراً على تبديل نسخة الأفيس على جهاز أو اثنين فكيف بعشرات الأجهزة التي سيعمل البرنامج عليها ، أو على أقل تقدير عمليات جراحية لاستبدال ملف تالف أو تسجيل آخر مفقود أو البحث عن ثالث ضائع !! كنت قد هممت بتوجيه السؤال لأسماء محددة من رواد الموقع دون إهمال أي من رواده الأكارم إلا أن ذلك قد يدعو بعض الأعضاء من أصحاب الخبرة للإحجام عن المشاركة . والمشكله انه كل اوفيس وله رقم 10 يعني 2003 12 يعني 2007 14 يعني 2010
Hamdi Edlbi-khalf قام بنشر أكتوبر 22, 2018 الكاتب قام بنشر أكتوبر 22, 2018 16 دقائق مضت, ابو ياسين المشولي said: والمشكله انه كل اوفيس وله رقم 10 يعني 2003 12 يعني 2007 14 يعني 2010 مرحباً أخي المسألة حسب ما رأيت أعقد من ذلك فأسماء الملفات و مساراتها و الملفات المفقودة كلها لها دور في جعل الاعتماد على ملفات DLL أمراً غير مستحب . أما أن نضع متطلبات للتشغيل كالبرامج الكبيرة و الألعاب فهو أمر (( غير مقبول )) في حال كان العمل مجرد ملف إكسل أو قاعدة أكسس صغيرة للعمل في بيئة عمل مغلقة . 1
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.