2011-01-13 36 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 

我在做什麼錯?有一個更好的方法嗎?

回答