procedure TFm_Main.Button6Click(Sender: TObject);
var
sSql, xlspath , mdbpath: string;
begin
if OpenDialog1.Execute then
xlspath := OpenDialog1.FileName; //Excel路徑
mdbpath := extractfilepath(application.exename) + 'Data.mdb';
if trim(xlspath) = '' then
exit;
Fm_SWDJ.ADOC.Connected := False;
try
Fm_SWDJ.ADOC.ConnectionString :=
'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' +
mdbpath + ';Persist Security Info=False';
Fm_SWDJ.ADOC.Connected := true;
try
///
adoquery1.Close; //////////////////////////////////////
adoquery1.SQL.Clear; // 匯入資料之前
sSql := 'Delete * From 收文資訊串列'; // 先清空資料庫
adoquery1.Parameters.Clear; //
adoquery1.ParamCheck := false; //
adoquery1.SQL.Text := sSql; //////////////////////////////////////
adoquery1.Execsql; //////////////////////////////////////
///
adoquery1.Close; //
adoquery1.SQL.Clear; //////////////////////////////////////
sSql :=
'INSERT INTO 收文資訊串列 ( 檔案編號 , 標題 , 文號 , 制文單位 , 登記日期 , 檔案類別 , 物體分類 , 頁數 , 份數 , 備注)' +
' SELECT ' +
' 檔案編號 , 標題 , 文號 , 制文單位 , 登記日期 , 檔案類別 , 物體分類 , 頁數 , 份數 , 備注 ' +
' FROM [excel 8.0;database=' + xlspath + '].[Sheet1$]';
adoquery1.Parameters.Clear;
adoquery1.ParamCheck := false;
adoquery1.SQL.Text := sSql;
adoquery1.Execsql;
MessageBox(GetActiveWindow(), '批量匯入EXCEL成功!', '恭喜', MB_OK +
MB_ICONWARNING);
Fm_SWDJ.ADOD.Active := False;
Fm_SWDJ.ADOD.Active := True;
except
MessageBox(GetActiveWindow(), '批量匯入EXCEL失敗!', '警告', MB_OK +
MB_ICONWARNING);
end;
except
MessageBox(GetActiveWindow(), '連接ACCESS失敗!', '警告', MB_OK +
MB_ICONWARNING);
end;
end;
uj5u.com熱心網友回復:
自己頂自己!!!!就是圖中這個 紅色陳述句出錯。。。剛開始玩delphi,新手求指教!(PS:這個陳述句我前幾次就可以完全實作,但是突然一下子就不行了,自己試了幾天,還是不行,只有求教各位大神了)uj5u.com熱心網友回復:
陳述句報錯如圖中所示。。。。
uj5u.com熱心網友回復:
錯誤提示找不到你的EXCEL表格中的SHEET啊uj5u.com熱心網友回復:
根據樓上說的猜測,Excel中的第一個Sheet的名字不是Sheet1,被改成其他字了。uj5u.com熱心網友回復:
不是呀,我的Sheet名字全部改為Sheet1了。。。。以前是漢字,后來為了避免出錯,全部換為 Sheet1.。。。。。。uj5u.com熱心網友回復:
好了,我試了一下,如果我用 excel 2003 就可以,但是用excel 2007就不行。。。我想請問,前面陳述句中 “”Excel 8.0 “”表示什么意思呢?有哪位大神可以詳細給我解釋一下嗎,謝謝了。。。。uj5u.com熱心網友回復:
這個問題得找微軟解釋才解釋得清楚,開發EXCEL之類的,最好手頭上有一本微軟提供的函式說明書、API、SDK等等的工具書,就是那種很浪費紙張,每本都厚得不行的那種
uj5u.com熱心網友回復:
學習,路過。uj5u.com熱心網友回復:
請把Provider=Microsoft.Jet.OLEDB.4.0
改成
provider=microsoft.ace.oledb.12.0
試試
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/50791.html
標籤:數據庫相關
