這是一個園長學習VFP(Visual Foxpro)的Blog歡迎同好一起來參與

星期六, 4月 10, 2010

匯入ACCESS資料表到VFP

VFP內建可以匯入如CSV,TXT,XLS等格式,但並無提供匯入ACCESS資料表的功能
這裏提供匯入的方式給各位參考:

*檢查是否為 合法之 mdb 檔案
lcMDBName=Substr(imp_mdb,Rat('\',imp_mdb)+1,Len(imp_mdb)-Rat('\',imp_mdb))    && a:\abcde\xxx.mdb
lcMDBDir=Substr(imp_mdb,1,Rat('\',imp_mdb))
*
wpt='50'
wbuf='2048'

*vista相容
lcCnStr =;
    'DRIVER=Microsoft Access Driver (*.mdb);'+;
    'UID=admin;'+;
    'UserCommitSync=Yes;'+;
    'Threads=3;'+;
    'SafeTransactions=0;'+;
    'PageTimeout=5;'+;
    'MaxScanRows=8;'+;
    'MaxBufferSize=2048;'+;
    'FIL=MS Access;'+;
    'DriverId=281;'+;
    'DefaultDir='+Substr(imp_mdb,1,Rat('\',imp_mdb))+';'+;
    'DBQ='+Substr(imp_mdb,Rat('\',imp_mdb)+1,Len(imp_mdb)-Rat('\',imp_mdb))
*
*WAIT lcCnStr windows

nCon = Sqlstringconnect( lcCnStr )
If nCon<0    &&連線失敗
    =chk_err("不是正確的來源檔(*.mdb)")
    Return .F.
Endif
*
SQLTables( nCon, ['TABLE'], 'MDB_Tables' )    &&取出資料表到 MDB_Tables

經過以上的動作,即可把MDB裏的資料表抓到VFP使用