【问题标题】:Access VBA 2007 passing a form as a parameter访问 VBA 2007 将表单作为参数传递
【发布时间】:2011-01-13 12:42:47
【问题描述】:

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

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

我做错了什么?有没有更好的方法来做到这一点?

【问题讨论】:

    标签: ms-access vba


    【解决方案1】:

    应该是这样的

     subName Me
    

    没有括号。

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

    【讨论】:

    • 我不确定你想做什么,如果这对你来说很明显,请原谅我,但你知道你可以设置绑定列、计数和宽度,这些属性将与表单,所以只需要根据需要更新SQL?
    猜你喜欢
    • 2014-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-11
    相关资源
    最近更新 更多