【发布时间】:2016-05-13 15:22:47
【问题描述】:
有点卡住了。我有一个 excel 表,可以说以下列 [日期]、[姓名]、[邮政编码]、[城市]
还有一个具有相同列名的访问表。
我正在尝试将 excel 数据表插入到访问表中,但想应用 WHERE 子句,以便它忽略访问表中已经存在的日期。
我可以愉快地将所有数据插入到访问表中,但不能成功应用 WHERE 子句忽略现有日期。烦人的是我不能正确引用实际的表名,所以我引用了工作表(但工作正常)。
这是我目前的代码:
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
任何意见或知识都会很棒,谢谢。
【问题讨论】:
-
如果您在日期字段上放置一个唯一索引,那么重复记录将被简单地丢弃。如果不应该有任何重复,那么无论如何都应该有这个索引,但是日期字段很少用作唯一字段 - 日期对于这个目的是不可靠的,任何存在的时间元素都将允许这些显然 重复记录。
标签: vba excel ms-access insert where