VBA ADO Excel-2010带SQL插入的引用表
我有代码来编写从一个excel工作簿到一个外部工作簿的插入。当我插入一行时,它可以工作,但数据所在的表不会递增。当我从外部工作簿的VBA代码中插入新行时,除了打开工作簿外,是否还有其他方法必须增加行数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
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