با سلام
نام یک فانکشن رو داخل یک تکست باکس قرارد ادیم میخوایم اون فراخونی کنیم از چه کدی استفاده کنیم (چندتا فانکشن رو داخل یک جدول ریختیم بسته به رکورد فانکشن اون رو فراخوانی کنیم )
call me.TextBox1
Printable View
با سلام
نام یک فانکشن رو داخل یک تکست باکس قرارد ادیم میخوایم اون فراخونی کنیم از چه کدی استفاده کنیم (چندتا فانکشن رو داخل یک جدول ریختیم بسته به رکورد فانکشن اون رو فراخوانی کنیم )
call me.TextBox1
Application از نوع کلاس
Me.txtsub نام تابع از نوع رشته
Application.Run (Me.txtsub)
و اگر تابع مون داری متغیرهای v1 , v2 , ... باشن
Application.Run (Me.txtsub,v1,v2)
سلام و روز خوش
یک function (و نه sub) رو میتونین با استفاده از تابع eval سدا بزنین.
مثلا یک تابع By2 داریم که عدد N رو میگیره و در 2 ضرب میکنه و برمیگردونه:
FUNCTION By2(N AS INTEGER) AS INTEGER
By2=N*2
END FUNCTION
اینجوری میتونین استفاده کنین:
DIM K AS INTEGER
K=EVAL("By2(5)") ' K <== 10
یا اگر sub نیاز دارین که مقداری برنمیگردونه بازهم باید اون رو function تعریف کنین:
FUNCTION SHOW(i AS INTEGER , s AS STRING)
MSGBOX "s=" & s & VBCRLF & "i=" & i
END FUNCTION
و اینجوری سدا بزنین:
Eval("SHOW(8 ,""moustafa"")")
یک نمونه کار با eval رو در پست شماره 20 تاپیک زیر میتونین ببینین:
https://barnamenevis.org/showthread.php?539924
سلام وعرض ادب خدمت استاد و سرور گرامی
از بذل توجه همیشگی تون سپاسگذارم
دقیقا همچین چیزی میخواستم نام ساب یا فانکشن رو در قالب رشته بدی call کنه
درApplication.Run فقط باید نام تابع رو وارد و پارامترها رو با شرط وبطور دستی وارد کنی ولی با این تابع Eval کل تابع رو با آرگومانهاش یجا وارد میکنی
Private Sub tv2_NodeClick(ByVal Node As Object)
Dim x As Integer
Dim func As String
x = Mid(Node.Key, 2, Len(Node.Key) - 1)
func = Nz(DLookup("funcName", "tblnodes", "keynode=" & x), "")
If Not IsNull(func) And func <> "" Then
If x = 37 Then
Application.Run func, Forms!frmMain
Else
Application.Run func
End If
End If
' Select Case Node.Key
' Case "x26"
' Call Form_frmMain3.btnSabtSand_Click
' Case "x27"
' DoCmd.OpenForm "frmAmaliyat_gharardad"
' End Select
End Sub
با تابع Eval
Private Sub tv2_NodeClick(ByVal Node As Object)
Dim x As Integer
Dim func As String
x = Mid(Node.Key, 2, Len(Node.Key) - 1)
func = Nz(DLookup("funcName", "tblnodes", "keynode=" & x), "")
If Not IsNull(func) And func <> "" Then
Eval(func)
End If
' Select Case Node.Key
' Case "x26"
' Call Form_frmMain3.btnSabtSand_Click
' Case "x27"
' DoCmd.OpenForm "frmAmaliyat_gharardad"
' End Select
End Sub