将 MS Access 数据导入 VFP

Importing MS Access data into VFP

我需要将数据从 Access 应用程序导入到 VFP 表中。我在网上找到了将 VFP 数据读取到 Access 中的解决方案,但不是相反。 MS* 建议的连接字符串似乎丢失了一些东西,因为我不断收到一个对话框,询问我源数据的类型

如有任何建议and/or解释,我将不胜感激。

/伯纳德

如果您在 VFP 中编写程序,那么您可以在不使用 "DSN" 的情况下从 VFP 连接到 Access 数据库,但需要完整的连接字符串设置。完成后,您可以将数据向下查询到本地 VFP 游标,然后在 VFP 中执行您想要的操作...复制到 VFP table,查询数据子集,将记录添加到另一个 VFP table 根据您需要处理的任何标准。

nAccessHandle = sqlstringconnect( "DRIVER=Microsoft Access Driver (*.mdb, *.accdb); DBQ=C:\YourFullPath\YourAccessDatabase.accdb;" )

if nAccessHandle < 1
   messagebox( "Invalid connection to access database" )
   return
endif 

*/ Valid handle, now, query down the data to a local VFP cursor
nSQLAns = SQLExec( nAccessHandle, "select * from YourAccessTable", "C_CursorInVFP" )

if nSQLAns < 1
   messagebox( "Unable to get any data..." )
   sqldisconnect( nAccessHandle )
   return
endif

*/ Done with connection
sqldisconnect( nAccessHandle )

select C_CursorInVFP
copy to C:\SomeOtherPath\NowItsAVFPTable

*/ Or, query from it within VFP or loop from it...
select C_CursorInVFP
scan
   */ Look for records in VFP to do/ignore as needed...
   select * from SomeVFPTable ;
      where SomeKey = C_CursorInVFP.KeyFromAccessTable;
      into cursor C_WasItFound readwrite

   if reccount( "C_WasItFound" ) > 0
      */ Do what if it WAS found
   else
      */ Do what if it WAS NOT found
   endif 
endscan