Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access Access VBA 2007将表单作为参数传递_Ms Access_Vba - Fatal编程技术网

Ms access Access VBA 2007将表单作为参数传递

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 所以我现在

我们正在努力减少access数据库中的重复代码。我们有几个表单,在这些表单上使用下面的代码

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吗?