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

:م: فتح الماكرو فى وضع التصميم


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

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

أخوانى الكرام :-

ما هو الكود الذى يمكننا من فتح الماكرو فى وضع التصميم من داخل البرنامج .

وهل بالامكان فتح الماكرو فى وضع التصميم على شرط معين موضوع فيه .

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

1. لا أعتقد أنه يوجد كود لفتح الماكرو في وضع التصميم من داخل البرنامج ( Microsoft Visual Basic Programming) وذلك لانه يختلف عن فتح النموذج على سبيل المثال فالطرق (Methods) التي تفتح في وضع التصميم في VB تبدأ أسماء أوامرها بكلمة Open مثل openform، openquery وهكذا ولكن الامر الطريقة الوحيدة المتوفرة للتامل مع الماكرو هي RunMacro وهذه لا يمكن استخدامها إلا لتنفيذ ماكرو.

2. إذا أردنا أن نبرمج الاوامر المنسدلة من شريط الاوامر الاساسي فإننا نلاحظ أيضا أن الشريط لا يحتوي على أمر لذلك.

3. إذا تفحصنا عناصر ال ActiveX أيضا نلاحظ أنه لا يوجد ما يفيدنا لعمل المطلوب والله أعلم

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

أخى الكريم أبو هادي

جزاك الله خير وبارك الله فيك .

شكراً على أهتمامك وردك .

أخى الحبيب عند تجربة الكود لم يقم بفتح الماكرو فى وضع التصميم لكن كل الذى فعله هو الذهاب الى أسم الكود والوقوف عليه فى إطار القاعدة فقط .

ما اريده أخى الكريم هو فتحه فى وضع التعليمات الخاصة بالتصميم ؟. وهل بالأمكان فتحه على تعليمه معينه فيه ؟

جزاك الله كل الخير .

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

السلام عليكم

أخي جمال فايز .. الكود مجرب وهو يعمل بشكل جيد .

أخى الحبيب عند تجربة الكود لم يقم بفتح الماكرو فى وضع التصميم لكن كل الذى فعله هو الذهاب الى أسم الكود والوقوف عليه فى إطار القاعدة فقط .

أي إسم كود الذي يقف عليه ؟

وهل بدلت الإسم "MacroName" بإسم الماكرو الذي تريد فتحه ؟

كما أو أعرف من أين تنادي هذا الإجراء .

تحياتي .

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

السلام عليكم

لقد توصلت للمشكلة وهي لغة لوحة المفاتيح أثناء إرسال أوامر SendKeys فإذا كانت بالعربي فسيعتبر مفتاح "d" عبارة عن حرف "ي" .

الحل هو تبديل اللغة إلى إنجليزي قبل إرسال أوامر SendKeys وقد عملتها بالكود ولكنها لم تنجح معي فهل أحدكم يعرف كيف التبديل بين لغة لوحة المفاتيح بالكود وبدون استخدام الـ SendKeys ويختصر علينا الطريق .

ابتداءً تستطيع التجربة بعد تحويل اللغة يدويا .

تحياتي .

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

السلام عليكم

أخي أبا هادي والاخوة الاعضاء ،أعتقد أن هذا الموضوع (تحويل اللغة إلى الانجليزية أو غيرها) وكذلك موضوع معرفة قيمة من Windows Registry لهما علاقة وثيقة ببعضهما حيث أن الموضوعان مرتبطان بمتغيرات وتعريفات في ويندوز (windows settings) واستخدامها في أكسس.

أعتقد أن مفتاح الحل لهذه الامور موجود في الامر Call Shell

وارفق هنا مثال لشخص (صيني) يحول اللغة إلى الصينية ويمكن أن نستفيد بشكل أو أخر منه.

' To Display Regional Settings
    Call Shell("rundll32.exe shell32.dll,Control_RunDLL intl.cpl,@1,0", vbNormalFocus)
    ' Move the Cursor focus to "Language Settings for the System"
    SendKeys vbTab, True
    ' Move the Cursor focus to "Set default"
    SendKeys vbTab, True
    ' Click the "Set default" button
    SendKeys "{ENTER}", True
    ' Change the language in "Select System Locale"
    SendKeys "Chinese", True
    SendKeys "{DOWN}", True
    SendKeys "{DOWN}", True
    ' Move the Cursor focus to "OK" button
    SendKeys vbTab, True
    ' Click the "OK" button
    SendKeys "{ENTER}", True
    DoEvents
    ' Move the Cursor focus to "Advanced ..." button
    SendKeys vbTab, True
    ' Move the Cursor focus to "OK" button
    SendKeys vbTab, True
    ' Move the Cursor focus to "Cancel" button
    SendKeys vbTab, True
    ' Move the Cursor focus to "Apply" button
    DoEvents
    SendKeys vbTab, True
    ' Click the "Apply" button
    SendKeys "{ENTER}", True

مع الاحترام والتقدير

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

السلام عليكم

أشكرك أخي خضر الرجبي على اهتمامك وحرصك على الوصول إلى حلول مشاكل البرمجة المتعبة .

لقد توصلت إلى حل للمشكلة مع زيادة في الإجراءات .

أولا سنستخدم دالة IsLoaded مع تعديل عليها لتعمل مع الماكرو وتمت تسميتها IsMacroLoaded ومطلوب نسخها في موديول / وحدة نمطية :

Function IsMacroLoaded(ByVal strMacroName As String) As Boolean
  Const conObjStateClosed = 0
    
  If SysCmd(acSysCmdGetObjectState, acMacro, strMacroName) <> conObjStateClosed Then
    IsMacroLoaded = True
  End If
End Function
ثانيا في زر لفتح الماكرو نضع هذه الشفرة :
Private Sub CmdOpenMacro_Click()
  Dim Count As Integer
  
  DoCmd.SelectObject acMacro, "MacroName", True
  Do While Not IsMacroLoaded("MacroName") And Count < 10
    Count = Count + 1
    SendKeys "%(d)", True
    SendKeys "%+", True
  Loop
End Sub

وهل بالأمكان فتحه على تعليمه معينه فيه ؟

جزاك الله كل الخير .

لا أعتقد يمكن ذلك واسمح لي لن أواصل خلاص تعبت :d

تحياتي .

تم تعديل بواسطه أبو هادي
رابط هذا التعليق
شارك

السلام عليكم

اخي ابا هادي والاخوة الاعضاء الكرام،

1. أشكرك أخي ابا هادي على وصولك إلى الحل المطلوب بطريقة رائعة.

2. لا ضرر في أن نتعب من أجل الوصول للحلول الصحيحة والرائعة وهذا الامر هو الذي يميز هذا المنتدى الرائع وليكن شعارنا في هذا المنتدى " ممنوع وجود سؤال بدون جواب رائع " وهكذا يصبح المنتدى رائعا وهاما ومفيدا ولأمثالنا ممتعا أيضا.

3. لقد اسعدني جدا التواصل معك لحل هذه المشكلة

مع الاحترام والتقدير

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

أخوانى الكرام :-

شكراً لجهودكم المبزوله لحل المشكلة ولي أقتراح بشأن فتح الماكرو على تعليمه معينة .

بالنسبة لفتح الماكرو على تعليمه معينة:-

فيمكن ذلك بوضعها فى ماكرو منفرد وفتحه عن طريق الكود السابق .

السؤال هنا وعند التجربة :

بفتح التصميم للماكرو وبعد أضافة أو التعديل وعند الخروج من التصميم للماكرو يقوم بالانتقال الى إطار قاعدة البيانات فهل يمكننا تحويله لينتقل الى الشاشة الرئيسية عند أغلاقه .

مع ملاحظة أذا قمت بجعل الشاشة الرئيسية من خصائصها نموذج منبثق فلن تستطيع فتح الماكرو فى وضع التصميم .

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

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

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



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

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

Important Information