【发布时间】:2014-07-22 05:45:20
【问题描述】:
我有一个 dbf,我想使用 VB6 将它复制到一个新的 mdb 中。
以下是我要做的,我可以很容易地创建新的 mdb,但是,我认为我可以使用 INTO 执行 Select 查询来创建包含数据的新表。
请注意:我假设 MSAccess 表是在运行 sql 查询时创建的。
我在 FROM 子句中遇到语法错误。我试图做的是操纵这个 sql 查询来做我需要做的事情:
sql = "INSERT INTO [Table1] SELECT * FROM [source.dbf] IN " & dbfPath
我的例子vb:
new_mdb = root_directory & "\Temp\LnX.mdb"
Dim conCatalog As ADOX.Catalog
Set conCatalog = New ADOX.Catalog
conCatalog.Create "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & new_mdb
Set conCatalog = Nothing
Dim db As Database
Dim sql As String
Dim dbfPath As String
Set db = OpenDatabase(new_mdb, dbDriverComplete, False)
dbfPath = "'" & root_directory & "\Core'[dBase IV;]"
sql = "SELECT * FROM [LnX.dbf] IN '" & dbfPath & "' INTO [LnX]"
db.Execute sql
db.Close
Set db = Nothing
【问题讨论】:
-
你能用 Access 本身做到这一点吗?如果不是,我猜你不能使用 ADO 来做到这一点。
-
谢谢,不知道你的意思是通过访问 gui 进行导入还是通过 vb 进行导入,但是我也不想要。用户可能没有可用的访问权限,因此我避免了访问应用程序对象。