VBA ADO Excel-2010带SQL插入的引用表

VBA ADO Excel-2010带SQL插入的引用表,vba,excel-2010,ado,Vba,Excel 2010,Ado,我有代码来编写从一个excel工作簿到一个外部工作簿的插入。当我插入一行时,它可以工作,但数据所在的表不会递增。当我从外部工作簿的VBA代码中插入新行时,除了打开工作簿外,是否还有其他方法必须增加行数 Public Function insertComment() Dim tablename As String tablename = "sheet1" Dim cmd As ADODB.Command Dim conn As ADODB.connection

我有代码来编写从一个excel工作簿到一个外部工作簿的插入。当我插入一行时,它可以工作,但数据所在的表不会递增。当我从外部工作簿的VBA代码中插入新行时,除了打开工作簿外,是否还有其他方法必须增加行数

 Public Function insertComment()
   Dim tablename As String
   tablename = "sheet1"


   Dim cmd As ADODB.Command
   Dim conn As ADODB.connection
   Dim prm1 As ADODB.Parameter
   Dim prm2 As ADODB.Parameter
   Dim prm3 As ADODB.Parameter
   Dim connectionString As String
   Dim SQL As String

   Set conn = New ADODB.connection
   Set cmd = New ADODB.Command

   DBPath = "path\to\file\workbook1.xlsm"
   connectionString = "Provider=MSDASQL.1;DSN=Excel Files;DBQ=" & DBPath & ";HDR=Yes';"
  SQL = "INSERT INTO [" & tablename & "$] ([QuestionID], [EvidenceID], [Data]) VALUES (?, ?, ?)"

    'Open connection
    conn.Open connectionString

   'Set command text
   cmd.CommandText = SQL
   cmd.CommandType = adCmdText

   'Set connection
   cmd.ActiveConnection = conn

   'Set paramters in SQL query
    Set prm1 = cmd.CreateParameter("@p1", adInteger, adParamInput)
    cmd.Parameters.Append prm1
    cmd.Parameters("@p1").Value = 1

   Set prm2 = cmd.CreateParameter("@p2", adInteger, adParamInput)
   cmd.Parameters.Append prm2
   cmd.Parameters("@p2").Value = 2

   Set prm3 = cmd.CreateParameter("@p3", adInteger, adParamInput)
   cmd.Parameters.Append prm3
   cmd.Parameters("@p3").Value = 3


   cmd.Execute
   conn.Close
End Function

您想在表格中插入问号吗?不,我必须填写?标记,因为我使用的驱动程序无法识别变量名。
在VBA中是通配符,不能直接在SQL语句中使用它。你到底想实现什么?如果我在查询中使用变量,它将无法识别它。我需要用电话吗?做记号这段代码工作得很好,但实际情况是它将向工作表中添加新行,而不会在其中扩展表。我希望在工作表内的表中添加一个新行,以便我可以使用透视表访问工作表。使用Excel表格可以拥有数据结构并选择该表作为透视表的源数据,这非常简单。要将新行添加到表格中,请使用
tbl.listrows.add
其中
tbl
是Excel表格,您可以这样定义它:
dim tbl as listobject
set tbl=worksheets(“Sheet1”)。listobjects(1)
也可以使用表格的名称,而不是1