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

تحويل كود الى sub او Function


bumb
إذهب إلى أفضل إجابة Solved by Eng.Qassim,

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

السلام عليكم

الكود التالي يقوم بتنظيف التكست بوكس 

كيف احوله الى subroutine  او Function ؟

Dim ctrl As Control

For Each ctrl In Me.Controls
If TypeOf ctrl Is TextBox Then
   ctrl = Null
End If
Next ctrl

تحياتي لكم

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

  • أفضل إجابة
19 minutes ago, bumb said:

السلام عليكم

الكود التالي يقوم بتنظيف التكست بوكس 

كيف احوله الى subroutine  او Function ؟

Dim ctrl As Control

For Each ctrl In Me.Controls
If TypeOf ctrl Is TextBox Then
   ctrl = Null
End If
Next ctrl

تحياتي لكم

 

 

اعملها مع تحميل النموذج

On load Form

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

السلام عليكم

مشاركه مع المهندس @Eng.Qassim

Function gocleared(frm As Form)
    Dim ctrl As Control

    For Each ctrl In frm.Controls
        If TypeOf ctrl Is TextBox Then
           ctrl = Null
        End If
    Next ctrl
End Function

واستدعها تحت الزر

Call gocleared(Me)

بالتوفيق

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

3 minutes ago, احمد الفلاحجي said:

السلام عليكم

مشاركه مع المهندس @Eng.Qassim

Function gocleared(frm As Form)
    Dim ctrl As Control

    For Each ctrl In frm.Controls
        If TypeOf ctrl Is TextBox Then
           ctrl = Null
        End If
    Next ctrl
End Function

واستدعها تحت الزر

Call gocleared(Me)

بالتوفيق

احسنت اخي ..لكن لايحتاج الى استدعاء ان كان لديه نموذج واحد

اما ان كان لديه عدة نماذج ويريد تنظيفها فيحتاج الى فنكشن واستدعاء

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

الان, Eng.Qassim said:

احسنت اخي ..لكن لايحتاج الى استدعاء ان كان لديه نموذج واحد

احسن الله اليك

هذا رد السائل قبل ردى

الان, bumb said:

رح استخدمها في كذا فورم ما ابغا اكرر الكود

بالتوفيق

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

39 دقائق مضت, احمد الفلاحجي said:

السلام عليكم

مشاركه مع المهندس @Eng.Qassim

Function gocleared(frm As Form)
    Dim ctrl As Control

    For Each ctrl In frm.Controls
        If TypeOf ctrl Is TextBox Then
           ctrl = Null
        End If
    Next ctrl
End Function

واستدعها تحت الزر

Call gocleared(Me)

بالتوفيق

image.png.6b2cff3a814cf4d4f84bf8278e86c9ba.pngimage.png.7ee1528913e015156ee7018eddcb0d5a.png

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

2 hours ago, bumb said:

في المرفق نموذجين احد النموذجين وهو نموذج frmAddUser كود تنظيف التكست بوكس لم يحدد بشرط وهو يعمل بشكل جيد بينما النموذج frmAddPerson والذي فيه المشكلة فكود التنظيف محدد بشرط

 

Database.accdb 1000 kB · 1 download

في النموذج لديك مربع نص مرتبط وفي تلك الحالة لن يعمل الكود فأما ان يتم تفريغ مربعات النص من داخل زر الحفظ  واما تغيير مربع نص (مسلسل المعرف) الى كومبو بوكس لكن في هذه الحالة لن يظهر لك رقم المعرف وانت لاتحتاجه فهو رقم تلقائي ويمكن اخفاءه

DatabaseB.accdb

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

14 ساعات مضت, bumb said:

السلام عليكم

الكود التالي يقوم بتنظيف التكست بوكس 

كيف احوله الى subroutine  او Function ؟

Dim ctrl As Control

For Each ctrl In Me.Controls
If TypeOf ctrl Is TextBox Then
   ctrl = Null
End If
Next ctrl

تحياتي لكم

لا يمكن استخدام الكود بهذه الكيفية

تفضل الكود بعد التعديل 

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

Sub ClenAllTextBox()
Dim ctrl As Control

For Each ctrl In Me.Controls
If TypeOf ctrl Is TextBox Then
   Me.Form.Controls(ctrl.Name) = Null
End If
Next ctrl
End Sub

و في ازرار الحفظ و في أخر أمر للحفظ استعدي الوظيفة

Call ClenAllTextBox

 

تم تعديل بواسطه د.كاف يار
  • Like 2
رابط هذا التعليق
شارك

2 ساعات مضت, د.كاف يار said:

لا يمكن استخدام الكود بهذه الكيفية

تفضل الكود بعد التعديل 

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

Sub ClenAllTextBox()
Dim ctrl As Control

For Each ctrl In Me.Controls
If TypeOf ctrl Is TextBox Then
   Me.Form.Controls(ctrl.Name) = Null
End If
Next ctrl
End Sub

و في ازرار الحفظ و في أخر أمر للحفظ استعدي الوظيفة

Call ClenAllTextBox

 

لا يمكن استخدامه بهذه الطريقة لأن كلمة Me سينتج بسببها خطأ

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

25 دقائق مضت, bumb said:

لا يمكن استخدامه بهذه الطريقة لأن كلمة Me سينتج بسببها خطأ

غير صحيح لأنها منطقية

لكن التجربة خير برهان جرب و فالك التوفيق

و اذا كانت ماهي عاجبتك الغيها و كذلك راح يعمل معك الكود

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

33 دقائق مضت, bumb said:

لا يمكن استخدامه بهذه الطريقة لأن كلمة Me سينتج بسببها خطأ

الكود يعمل و بتجربة رائعة و مريحة عيني

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

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

18 دقائق مضت, د.كاف يار said:

غير صحيح لأنها منطقية

لكن التجربة خير برهان جرب و فالك التوفيق

و اذا كانت ماهي عاجبتك الغيها و كذلك راح يعمل معك الكود

جربتها وفعلا نتج خطأ بسبب Me

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

طيب اتفضل هذا التعديل

في البداية انشى Module  جديد و الصق فيه التالي

Option Explicit
Public Function ClenAllTextBox(FormName As String) As String
Dim ctrl As Control
For Each ctrl In Forms(FormName).Controls
If TypeOf ctrl Is TextBox Then
   Forms(FormName).Controls(ctrl.Name) = Null
End If
Next ctrl
End Function

الاستدعاء في اي نموذج لديك 

Call ClenAllTextBox(Form.Name)

 

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

1 hour ago, طلب اكسس said:

الكود يعمل و بتجربة رائعة و مريحة عيني

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

هل قصدك بدون كمبو بوكس.. يبقى نموذج صاحب المشاركة على حاله؟

شوف المرفقDatabaseB.accdb

2 hours ago, طلب اكسس said:

الكود يعمل و بتجربة رائعة و مريحة عيني

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

الكود يفبل الكمبوبوكس لكنه يمسح مابداخل التيكست بوك

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

6 دقائق مضت, Eng.Qassim said:

هل قصدك بدون كمبو بوكس.. يبقى نموذج صاحب المشاركة على حاله؟

شوف المرفقDatabaseB.accdb

الكود يفبل الكمبوبوكس لكنه يمسح مابداخل التيكست بوك

سعادة المهندس

اقصد ان هذا يمسح فقط مربع النص 

لكن ما يمسح مربع التحرير و السرد

يعني لو رايد امسح كل شي ما يقبل غير مربع نص

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

7 minutes ago, Eng.Qassim said:

هل قصدك بدون كمبو بوكس.. يبقى نموذج صاحب المشاركة على حاله؟

شوف المرفقDatabaseB.accdb

الكود يفبل الكمبوبوكس لكنه يمسح مابداخل التيكست بوك

 

DatabaseB.rar

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

14 minutes ago, طلب اكسس said:

سعادة المهندس

اقصد ان هذا يمسح فقط مربع النص 

لكن ما يمسح مربع التحرير و السرد

يعني لو رايد امسح كل شي ما يقبل غير مربع نص

اذا كنت تريد مسح الاثنين .. يعني الكمبو والتيكست استخدم الكود التالي

Public Sub ClearControls(frm As Form)
On Error Resume next
Dim objControl as Control
For Each objControl in Me.Controls
   With objControl
    if .ControlType = acComboBox  or acTextbox  then
     .Value = Null 
    end if
   End With
Next objControl
End Sub

 

 

 

تم تعديل بواسطه Eng.Qassim
  • Like 1
رابط هذا التعليق
شارك

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