Ms access Access VBA 2007将表单作为参数传递
我们正在努力减少access数据库中的重复代码。我们有几个表单,在这些表单上使用下面的代码Ms access Access VBA 2007将表单作为参数传递,ms-access,vba,Ms Access,Vba,我们正在努力减少access数据库中的重复代码。我们有几个表单,在这些表单上使用下面的代码 strSQL = "Some SQL" Me!cboClientName.RowSource = strSQL Me!cboClientName.BoundColumn = 2 Me!cboClientName.ColumnCount = 2 Me!cboClientName.ColumnWidths = "0cm ; 2 cm" 我想做的是创建一个子例程并将表单传递给它,然后用对象替换Me 所以我现在
strSQL = "Some SQL"
Me!cboClientName.RowSource = strSQL
Me!cboClientName.BoundColumn = 2
Me!cboClientName.ColumnCount = 2
Me!cboClientName.ColumnWidths = "0cm ; 2 cm"
我想做的是创建一个子例程并将表单传递给它,然后用对象替换Me
所以我现在有这样的东西:
Public Sub subName(myForm as Form)
strSQL = "SELECT [tblClients].[ID], [tblClients].[ClientName] FROM [tblClients] ORDER BY [ClientName]"
myForm !cboClientName.RowSource = strSQL
myForm !cboClientName.BoundColumn = 2
myForm !cboClientName.ColumnCount = 2
myForm !cboClientName.ColumnWidths = "0cm ; 2 cm"
cboClientName出现在我调用它的每个表单上。然后我使用调用子程序
subName(Me)
然而,我得到了一个错误:
Type mis match ... 13
我做错了什么?有更好的方法吗?应该是这样的
subName Me
没有括号
进一步信息:我不确定您希望这样做,请原谅,如果这对您来说很明显,但您知道您可以设置绑定列、计数和宽度,并且这些属性将与表单一起保存,因此您只需要根据需要更新SQL吗?