سؤال

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

لذلك لدي مجموعة كاملة من الأشياء التي يمكنني استخدام هذا (خفض التكرار) ، ولكن أريد أن أعرف كيف أدعو إلى الفرعية (مثل النقر على زر) الإجراء من شكل.

حاولت هذا...

Sub Command_Click()
    Call "pptCreator"
End Sub

أعرف أن هذا هو سيئة جدا, ولكن ليس لدي أي فكرة عن كيفية تحقيق هذا الإجراء.

هل كانت مفيدة؟

المحلول

هنا بعض من الطرق المختلفة التي يمكن أن نسمي الأشياء في Microsoft Access:

الاتصال نموذج فرعي أو دالة من وحدة

الفرعية في شكل كنت تتصل يجب أن تكون علنية ، كما في:

Public Sub DoSomething()
  MsgBox "Foo"
End Sub

استدعاء الفرعية مثل هذا:

Call Forms("form1").DoSomething

شكل يجب أن تكون مفتوحة قبل إجراء المكالمة.

إلى إجراء الحدث ، يجب أن تتصل العام الداخلي ضمن النموذج و استدعاء إجراء الحدث في هذا العام الداخلي.

استدعاء روتين فرعي في وحدة من شكل

Public Sub DoSomethingElse()
  MsgBox "Bar"
End Sub

فقط اتصل مباشرة من إجراء الحدث:

Call DoSomethingElse

استدعاء روتين فرعي من شكل دون استخدام إجراء الحدث

إذا كنت تريد, يمكنك فعلا ربط وظيفة التحكم في شكل الحدث دون الحاجة إلى إنشاء إجراء حدث تحت السيطرة.للقيام بذلك, تحتاج أولا إلى وظيفة عمومية في وحدة بدلا من الباطن مثل هذا:

Public Function DoSomethingElse()
  MsgBox "Bar"
End Function

ثم, إذا كان لديك زر في النموذج بدلا من وضع [إجراء حدث] في الحدث OnClick العقار نافذة ضع هذا:

=DoSomethingElse()

عند النقر فوق الزر ، فإنه سيتم استدعاء الوظيفة العامة في الوحدة.

إلى استدعاء دالة بدلا من الإجراء

إذا كنت تتصل الفرعية يبدو مثل هذا:

Call MySub(MyParameter)

ثم استدعاء دالة يبدو مثل هذا:

Result=MyFunction(MyFarameter)

حيث النتيجة هو متغير من نوع إرجاعها بواسطة الدالة.

ملاحظة: لا تحتاج دائما المكالمة الكلمة.معظم الوقت يمكنك فقط الاتصال الفرعية مثل هذا:

MySub(MyParameter)

نصائح أخرى

وإذا pptCreator هي وظيفة / الإجراء في نفس الملف، هل يمكن تسمية ذلك على النحو التالي

وcall pptCreator()

واستدعاء إجراء Sub - 3 تقنية الطريق

وبمجرد الانتهاء من إجراءات، سواء كنت إنشاؤه أو أنها جزء من لغة Visual Basic، يمكنك استخدامه. باستخدام إجراء يشار إليه أيضا باسم الدعوة اليه.

وقبل استدعاء الإجراء، يجب تحديد أول قسم من التعليمات البرمجية التي تريد استخدامها. استدعاء إجراء بسيط، اكتب اسمها. هنا مثال:

Sub CreateCustomer()
    Dim strFullName As String

    strFullName = "Paul Bertrand Yamaguchi"

msgbox strFullName
End Sub

Sub Exercise()
    CreateCustomer
End Sub

وبالإضافة إلى استخدام اسم الإجراء أن نسميها، يمكنك أيضا تسبق ذلك مع دعوة الكلمة. هنا مثال:

Sub CreateCustomer()
    Dim strFullName As String

    strFullName = "Paul Bertrand Yamaguchi"
End Sub

Sub Exercise()
    Call CreateCustomer
End Sub

عند استدعاء الإجراء، دون أو دون الكلمة الأساسية مكالمة، يمكنك كتابة اختياريا فتح وإغلاق الأقواس على الجانب الأيمن من اسمها. هنا مثال:

Sub CreateCustomer()
    Dim strFullName As String

    strFullName = "Paul Bertrand Yamaguchi"
End Sub

Sub Exercise()
    CreateCustomer()
End Sub

وإجراءات ومستويات الوصول

ومثل وصول متغير، والوصول إلى الإجراء يمكن أن يسيطر عليها أحد مستويات الدخول. ويمكن إجراء إجراء خاص أو عام. لتحديد مستوى الوصول لهذا الإجراء، تسبق ذلك مع القطاع الخاص أو الكلمة الأساسية العامة. هنا مثال:

Private Sub CreateCustomer()
    Dim strFullName As String

    strFullName = "Paul Bertrand Yamaguchi"
End Sub
<اقتباس فقرة>   

والقواعد التي تم تطبيقها على المتغيرات العالمية هي نفسها:

     

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

     

وأيضا، عندما يكون الإجراء الخاص، لا يظهر اسمها في مربع الحوار وحدات الماكرو

     

والعامة: إجراء إنشاء كما يمكن للجمهور أن يسمى بإجراءات من نفس وحدة وإجراءات وحدات أخرى

     

وأيضا، إذا تم إنشاء الإجراء والجمهور، عند الوصول إلى مربع الحوار وحدات الماكرو، يظهر اسمها ويمكنك تشغيلها من هناك

والإجراءات في وحدة نمطية تبدأ كونها مفيدة وعام عند تمرير في الحجج.

وعلى سبيل المثال:

Public Function DoSomethingElse(strMessage As String)  
    MsgBox strMessage
End Function

ويمكن الآن عرض أي رسالة التي يتم تمريرها في مع متغير سلسلة دعا strMessage.

لإضافة وظيفة جديدة زر على النموذج الخاص بك:(و تجنب استخدام الماكرو إلى استدعاء دالة)

بعد إنشاء وظيفة (وظيفة MyFunctionName()) وأنت في شكل طريقة العرض "تصميم":

  1. إضافة زر جديد (لا أعتقد يمكنك إعادة تعيين زر القديمة - غير متأكد على الرغم من).
  2. عندما الزر معالج فتحت النافذة انقر فوق إلغاء الأمر.
  3. انتقل إلى خصائص الزر الحدث علامة التبويب انقر فوق الميدان.
  4. في ذلك حقول القائمة المنسدلة اختر:إجراء الحدث.
  5. الآن انقر على زر بجانب القائمة المنسدلة التي ...في ذلك سوف يتم نقلك إلى جديد Private Sub في أشكال Visual Basic النافذة.
  6. في هذا القطاع الفرعي نوع:دعوة MyFunctionName
    وينبغي أن ننظر بشيء من هذا القبيل:

Private Sub Command23_Click()

دعوة MyFunctionName

End Sub

  1. ثم حفظه.
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top