我的数据库存储了表单名称、控件和控件属性类型值。
我想要一行这样的代码。
Forms(i%).Controls(ControlName$)).controlpropertytype$ = NewValue
我目前正在使用一个select case结构来处理各种属性类型。由一个语句来处理它会简单得多
使用helper函数,只需一行代码就可以实现这一点。以下是将Form1上的TextBox设置为值"aaa"的示例:
Option Explicit
Private Sub Test()
CallByName FindForm("Form1").Controls("Text1"), "Text", VbLet, "aaa"
End Sub
Public Function FindForm(ByVal Name As String) As Form
Dim f As Form
For Each f In Forms
If UCase(f.Name) = UCase(Name) Then
Set FindForm = f
Exit Function
End If
Next
End Function
虽然这是一个有趣的练习,但我不建议采用这种方法。它假设窗体和控件都可以找到,但如果找不到,这一行将使您的应用程序崩溃。
这是CallByName的文档。