1

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

我的代码看起来像这样

querytable MyTable, SomethingElse

Sub querytable(table As String, string As String)

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

End Sub

这对我不起作用,任何帮助将不胜感激。

4

1 回答 1

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
于 2013-08-30T03:33:50.457 回答