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使用
2 則留言:
=====================
謝謝分享程式碼
請問 我 IMPORT 後 , MDB_Tables grid 中有 85 lines ,
5 COLUMNS
1.Table_cat 為 Memo
2.Table_scheme 為 .NULL.
3.Table_name 正確
4.Table_type 為 TABLE
5.Remark 為 .NULL.
1.Table_cat 為何是 Memo ?
2.Table_scheme 為何是 .NULL.?
==================
*檢查是否為 合法之 mdb 檔案
lcMDBName=Substr("C:\Program
Files\EZHIS\Bin\DrBack.mdb",Rat('\',"C:\Program
Files\EZHIS\Bin\DrBack.mdb")+1,Len("C:\Program
Files\EZHIS\Bin\DrBack.mdb")-Rat('\',"C:\Program
Files\EZHIS\Bin\DrBack.mdb")) && a:\abcde\xxx.mdb
lcMDBDir=Substr("C:\Program
Files\EZHIS\Bin\DrBack.mdb",1,Rat('\',"C:\Program
Files\EZHIS\Bin\DrBack.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("C:\Program
Files\EZHIS\Bin\DrBack.mdb",1,Rat('\',"C:\Program
Files\EZHIS\Bin\DrBack.mdb"))+';'+;
'DBQ='+Substr("C:\Program
Files\EZHIS\Bin\DrBack.mdb",Rat('\',"C:\Program
Files\EZHIS\Bin\DrBack.mdb")+1,Len("C:\Program
Files\EZHIS\Bin\DrBack.mdb")-Rat('\',"C:\Program
Files\EZHIS\Bin\DrBack.mdb"))
*
*WAIT lcCnStr windows
nCon = Sqlstringconnect( lcCnStr )
If nCon<0 &&連線失敗
=chk_err("不是正確的來源檔(*.mdb)")
Return .F.
Endif
*
SQLTables( nCon, ['TABLE'], 'MDB_Tables' ) &&取出資
料表到 MDB_Tables
您好:
因為您未說明您匯入的ACCESS DB是何版本,
所以我只能建議您將該ACCESS DB另存為
ACCESS 2000的DB格式,再使用本程式試看看囉
張貼留言