Доступ к VBA 2007 с передачей формы в качестве параметра - PullRequest
0 голосов
/ 13 января 2011

Мы пытаемся сократить дублирующийся код в нашей базе данных доступа.У нас есть несколько форм, в которых мы используем следующий вид кода.

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 Ответ

1 голос
/ 13 января 2011

Это должно быть

 subName Me

Без скобок.

Дополнительная информация: http://msdn.microsoft.com/en-us/library/gg251710.aspx

...