2011-01-13 59 views
0

我们试图减少访问数据库中的重复代码。我们有几种形式,我们使用以下类型的代码。访问VBA 2007传递表单作为参数

strSQL = "Some SQL" 
Me!cboClientName.RowSource = strSQL 
Me!cboClientName.BoundColumn = 2 
Me!cboClientName.ColumnCount = 2 
Me!cboClientName.ColumnWidths = "0cm ; 2 cm" 

我想要做的是创建一个子例程,并将表单传递给它,然后用该对象替换我。

所以我现在有这样的事情:

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 

我在做什么错?有一个更好的方法吗?

回答