Excel 使用 Where 子句从 Excel 定义 Table 插入到 Access Table
Excel Insert Into Access Table from Excel defined Table with a Where Clause
有点卡住了。我有一个 excel table 让我们说以下列
[日期]、[姓名]、[邮政编码]、[城市]
以及具有相同列名的访问 table。
我正在尝试将 excel 数据 table 插入到访问 table 中,但想应用 WHERE 子句,以便它忽略访问中已有的日期 table.
我可以愉快地将所有数据插入到访问中 table 但无法应用 WHERE 子句成功忽略现有日期。令人恼火的是,我无法正确引用实际的 table 名称,所以我引用了 sheet(但工作正常)。
这是我目前的代码:
Sub TestInsert()
Dim cnn As ADODB.Connection
Dim dbPath As String
Dim xlPath As String
Dim uSQL As String
dbPath = "C:\Test\TestDB.accdb"
xlPath = "C:\Test\TestXL.xlsm"
'Set Connection string
Set cnn = New Connection
cnnstr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & dbPath
'Open connection to db
cnn.Open cnnstr
uSQL = "INSERT INTO tbl_ApolloBrochurewareReportTEST " _
& "SELECT * FROM [Excel 12.0;HDR=YES;DATABASE=" & xlPath & "].[Sheet1$]"
cnn.Execute uSQL
cnn.Close
End Sub
任何意见或知识都将非常有用,谢谢。
您应该能够扩展 SQL 表达式:
uSQL = "INSERT INTO tbl_ApolloBrochurewareReportTEST " _
& "SELECT * FROM [Excel 12.0;HDR=YES;DATABASE=" & xlPath & "].[Sheet1$] As T " & _
"WHERE T.Date NOT IN (SELECT [Date] FROM tbl_ApolloBrochurewareReportTEST)"
有点卡住了。我有一个 excel table 让我们说以下列 [日期]、[姓名]、[邮政编码]、[城市]
以及具有相同列名的访问 table。
我正在尝试将 excel 数据 table 插入到访问 table 中,但想应用 WHERE 子句,以便它忽略访问中已有的日期 table.
我可以愉快地将所有数据插入到访问中 table 但无法应用 WHERE 子句成功忽略现有日期。令人恼火的是,我无法正确引用实际的 table 名称,所以我引用了 sheet(但工作正常)。
这是我目前的代码:
Sub TestInsert()
Dim cnn As ADODB.Connection
Dim dbPath As String
Dim xlPath As String
Dim uSQL As String
dbPath = "C:\Test\TestDB.accdb"
xlPath = "C:\Test\TestXL.xlsm"
'Set Connection string
Set cnn = New Connection
cnnstr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & dbPath
'Open connection to db
cnn.Open cnnstr
uSQL = "INSERT INTO tbl_ApolloBrochurewareReportTEST " _
& "SELECT * FROM [Excel 12.0;HDR=YES;DATABASE=" & xlPath & "].[Sheet1$]"
cnn.Execute uSQL
cnn.Close
End Sub
任何意见或知识都将非常有用,谢谢。
您应该能够扩展 SQL 表达式:
uSQL = "INSERT INTO tbl_ApolloBrochurewareReportTEST " _
& "SELECT * FROM [Excel 12.0;HDR=YES;DATABASE=" & xlPath & "].[Sheet1$] As T " & _
"WHERE T.Date NOT IN (SELECT [Date] FROM tbl_ApolloBrochurewareReportTEST)"