访问VBA 2007将表单作为参数传递

时间:2011-01-13 12:42:48

标签: ms-access vba access-vba

我们正在尝试减少访问数据库中的重复代码。我们有几种形式可以使用以下类型的代码。

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

我做错了什么?是否有更好的方法来解决这个问题?

1 个答案:

答案 0 :(得分:1)

那应该是

 subName Me

没有括号。

更多信息:http://msdn.microsoft.com/en-us/library/gg251710.aspx