【发布时间】:2010-07-22 05:56:40
【问题描述】:
我正在尝试将 FoxPro 9.0 数据库中的表导入 Access 2003。到目前为止,根据 Google 搜索和许多试验,我连接到表的唯一方法是以编程方式通过 OLE DB 连接。我已经建立了 3 个具有不同配置的 ODBC 连接,但它们都不起作用:我得到“未指定的错误”,我找不到任何信息。
使用 OLE DB,我可以成功连接到 FoxPro 数据库,并在 ADO 记录集中导入表。问题是我无法使用 SQL 将记录集保存到本地数据库的新表中。 ADO 记录集的行为与表不同,因此我无法查询它们。下面的代码在DoCmd.RunCommand ("select * from " & rst & " INTO newClients") 处给我一个“类型不匹配”错误。
Sub newAdoConn()
Dim cnn As ADODB.Connection
Dim rst As ADODB.Recordset
Dim strSQL As String
Dim decision As Integer
Set cnn = New ADODB.Connection
cnn.ConnectionString = "Provider=vfpoledb;" & _
"Data Source=s:\jobinfo\data\jobinfo.dbc;" & _
"Mode=ReadWrite|Share Deny None;" & _
"Collating Sequence=MACHINE;" & _
"Password=''"
strSQL = "Select * from Jobs"
cnn.Open
Set rst = cnn.Execute("Select * from clients")
If rst.EOF = False Then
Do While Not rst.EOF
decision = MsgBox(rst.Fields!ID & " " & rst.Fields!fname & " " & rst.Fields!lname & vbCrLf & vbCrLf & "Continue?", vbYesNo)
If decision = vbYes Then
rst.MoveNext
Else
Exit Do
End If
Loop
End If
DoCmd.RunCommand ("select * from " & rst & " INTO newClients")
rst.Close
Set rst = Nothing
cnn.Close
Set cnn = Nothing
End Sub
【问题讨论】:
-
你不提,但是你试过Access导入功能吗?可能是 Access 没有该版本 xBase 的驱动程序,所以您是否尝试过设置 DSN 并连接到它?从 DSN 导入与其他导入操作一样简单,除了选择 DSN 的步骤。
-
设置 ODBC 文件数据源时,出现以下错误:保留错误 (-7778);没有针对此错误的消息。当我设置与我的 foxpro 数据库 (.dbc) 文件的机器数据源连接时...我可以看到所有可以连接的表的列表。不幸的是,当我选择一个表并单击导入时,我收到以下错误:无法执行查询;找不到链接表 [Microsoft][ODBC Visual FoxPro 驱动程序]不是表。 (#123) 我尝试将数据源设置为空闲表目录,但仍然无法正常工作。似乎 OLE DB 连接是唯一的方法
-
但我无法将 ado 记录集保存到新表中...
-
我无法告诉您为什么 ODBC 不工作,但我不知道除了可能导致它失败的 ODBC 驱动程序的配置问题之外的任何事情。您是否检查过您是否拥有最新的 FoxPro ODBC 驱动程序?
标签: ms-access import save recordset