ACCESS VBA将表作为参数传递给函数

时间:2013-08-29 19:11:59

标签: types access-vba ms-access-2007 subroutine function-parameter

我试图简单地将表或表名传递给要在查询中使用的函数。问题是我不知道整个表使用什么数据类型。

我的代码看起来像这样

querytable MyTable, SomethingElse

Sub querytable(table As String, string As String)

   query1 = "insert into " & table & "(TABLEFIELD) values (" & string & ")"
   DoCmd.RunSQL query1

End Sub

这对我不起作用,非常感谢任何帮助。

1 个答案:

答案 0 :(得分:3)

对于您在此处尝试执行的操作,您需要将表名称作为字符串传递。

您的代码并未遵循许多常见惯例,包括避免在代码中使用保留字。

尝试确保在使用之前声明所有变量。在所有模块的顶部使用Option Explicit。并且始终使用变量以外的数据类型声明变量。

您可以尝试看起来像这样的代码:

Call InsertInto sTableName, sData
'or
'Call InsertInto "ActualTableName", "SomeValue"

Public Sub InsertInto(ByVal sTable As String, ByVal sValue As String)
    Dim sSQL as String
    sSQL = "INSERT INTO " & sTable & "(CompanyName) VALUES (" & sValue & ")"
    Debug.Print sSQL
    CurrentDb.Execute sSQL, dbFailOnError
End Sub