在
Delphi數據庫應用系統的數據錄入過程中
有些數據是保存在Excel中的
有些是保存在紙張上的
還有一些是需要新增加的
由於各條記錄之間有大量的重復數據
如果每條記錄都讓錄入人員全部手工錄入
其間的重復勞動是相當大的
還降低了工作效率
下面就這個問題進行論述
利用Delphi調用Excel Delphi中已經帶了Word與PowerPoint的例子
因為Excel的調用與這兩個應用服務器的調用略有不同
所以也可以利用Delphi調用Excel
步驟如下:
(
) 創建一個普通Application.
(
) 在Form中分別放入ExcelApplication
ExcelWorkbook和ExcelWorksheet.
(
) 連接Excel.
打開Excel.
Try
ExcelApplication
Connect;
Except
End; ExcelApplication
Visible[
]:=True;
增加一個Workbook.
ExcelWorkbook
ConnectTo(ExcelApplication
Workbooks
Add(EmptyParam
));
添加一個Worksheet.
Var Temp_Worksheet: _WorkSheet;
Begin
Try
Temp_Worksheet:=ExcelWorkbook
WorkSheets
Add(EmptyParam
EmptyParam
EmptyParam
EmptyParam
)
as _WorkSheet;
ExcelWorkSheet
ConnectTo(Temp_WorkShee);
Except
ShowMessage(′Failure′); End;
關閉Excel
Try
ExcelApplication
Quit;
ExcelWorksheet
Disconnect;
ExcelWorkbook
Disconnect;
ExcelApplication
Disconnect;
Except
End;
End;
(
) 對Excel的一些操作:
選擇某一工作簿中的一個工作表
然後對某一單元格進行賦值及取值
最後選擇某一區域作以下操作
ExcelWorkSheet
Range[′A
′
′C
′]
Select;
打開一個Excel文件.
if OpenDialog
Execute then
Begin
Try
ExcelWorkBook
ConnectTo(Excel
Application
Workbooks
Open(OpenDialog
FileName
EmptyParam
EmptyParam
Empty Param
EmptyParam
EmptyParam
EmptyParam
EmptyParam
EmptyParam
EmptyParam
EmptyParam
EmptyParam
EmptyParam
));
ExcelWorkSheet
ConnectTo(ExcelWorkBook
Activesheet as _Worksheet);
Except;
End;
利用OCR識別掃描 OCR可以識別一頁A
大小的印刷體中英文混排的純文本文件只用幾秒鐘
所以我們可以把掃描的圖像進行識別處理
保存
然後通過添加記錄或批復制的操作將得到的數據轉入數據庫的相應的表中
具體實現如下:
Procedure TForm
buttonclick(sender:tobject);
Begin
Shellexecute(handle
open
c:\sh
\sh
exe
sw
shownormal);
Button
enabled:=false;
End;
Procedure TForm
formcreat(sender:tobject);
Var i:integer:
Begin
Chdir(
c:\sh
);
Form
edit
clear;
Form
memo
clear;
Assignfile(textid
form
opendialog
filename);
For i:=
to form
adoquery
sql
count do
Begin
Form
adoquery
close;
Form
adoquery
clear;
Form
adoquery
sq
add(
select 表名
from Formname
)close;
Form
adoquery
open;
Form
dbcombox
datafield:=
表名
;
End;
利用原記錄更改 Delphi數據錄入時自動復制原記錄
然後做很少的修改
就完成了一條新記錄的編輯
最後直接保存
使用 ADO 方法存取 Access數據庫中的表 test
表的第一個字段是
自動編碼
字段
在記錄復制時要跳過
首先在 Form
上添加 ADOConnection
ADODataSet
DataSource
DBGrid
等數據庫相關組件
使用連接向導把 ADOConnection
與 Access 數據庫連接起來
把 ADOConnection
的 LoginPrompt 屬性設置為 False
其它組件的對應屬性設置如下:
ADODataSet
Connection :=ADOConnection
;
ADODataSet
CommandText :=select * from test;
ADODataSet
Active :=True;
DataSource
DataSet :=ADODataSet
;
DBGrid
DataSource :=DataSource
;
在 DBGrid 中看到數據庫表 test 中的數據
後在窗體上添加一些數據敏感的數據輸入控件(如 DBEdit 等)
將其 DataSource 屬性設為 DataSource
再分別與各字段綁定起來
在窗體上添加
個按鈕 Button
和Button
設計相應的觸發事件
程序編譯運行後
按 Button
按鈕
就會添加一條新的記錄
記錄的內容為添加前記錄指針指向的記錄的內容.然後對現有數據做些改動
按 Button
按鈕保存新記錄
結論 通過對上面部分代碼的修改
可以實現數據的自動錄入
極大的提高了數據的錄入速度
From:http://tw.wingwit.com/Article/program/Delphi/201311/24921.html