如何在Delphi中自动录入数据

开发 开发工具
在Delphi数据库应用系统的数据录入过程中,有些数据是保存在Excel中的;有些是保存在纸张上的;还有一些是需要新增加的,由于各条记录之间有大量的重复数据,如果每条记录都让录入人员全部手工录入,其间的重复劳动是相当大的,还降低了工作效率。本文介绍如何在Delphi中进行数据的自动录入。

  如何在Delphi中自动录入数据,下面就这个问题进行论述。

  1、利用Delphi调用Excel

  Delphi中已经带了Word与PowerPoint的例子,因为Excel的调用与这两个应用服务器的调用略有不同,所以也可以利用Delphi调用Excel。

  步骤如下:

  (1) 创建一个普通Application.

  (2) 在Form中分别放入ExcelApplication,ExcelWorkbook和ExcelWorksheet.

  (3) 连接Excel.

  打开Excel.

  1. Try  
  2. ExcelApplication1.Connect;  
  3. Except  
  4. End; ExcelApplication1.Visible[0]:=True;   

  增加一个Workbook.

  1. ExcelWorkbook1.ConnectTo(ExcelApplication1 Workbooks.Add(EmptyParam,0));  

  添加一个Worksheet.

  1. Var Temp_Worksheet: _WorkSheet;  
  2. Begin  
  3. Try  
  4. Temp_Worksheet:=ExcelWorkbook1.  
  5. WorkSheets.Add(EmptyParam,  
  6. EmptyParam,EmptyParam,EmptyParam,0)   
  7. as _WorkSheet;  
  8. ExcelWorkSheet1.ConnectTo(Temp_WorkShee);  
  9. Except  
  10. ShowMessage(′Failure′); End;   

  关闭Excel.

  1. Try  
  2. ExcelApplication1.Quit;  
  3. ExcelWorksheet1.Disconnect;  
  4. ExcelWorkbook1.Disconnect;  
  5. ExcelApplication1.Disconnect;  
  6. Except  
  7. End;  
  8. End;   

  (4) 对Excel的一些操作:

  选择某一工作簿中的一个工作表,然后对某一单元格进行赋值及取值。最后选择某一区域作以下操作:

  1. ExcelWorkSheet1.Range[′A1′,′C1′].Select; 

  打开一个Excel文件.

  1. if OpenDialog1.Execute then  
  2. Begin  
  3. Try  
  4. ExcelWorkBook1.ConnectTo(Excel  
  5. Application1.Workbooks.Open(OpenDialog1FileName,EmptyParam,EmptyParam,Empty Param, EmptyParam, EmptyParam,  
  6. EmptyParam,EmptyParam,EmptyParam, EmptyParam,EmptyParam,  
  7. EmptyParam,EmptyParam,0));  
  8. ExcelWorkSheet1.ConnectTo(ExcelWorkBook1.Activesheet as _Worksheet);  
  9. Except;  
  10. End;   

  2、利用OCR识别扫描

  OCR可以识别一页A4大小的印刷体中英文混排的纯文本文件只用几秒钟,所以我们可以把扫描的图像进行识别处理、保存。然后通过添加记录或批复制的操作将得到的数据转入数据库的相应的表中。具体实现如下:

  1. Procedure TForm1.buttonclick(sender:tobject);  
  2. Begin  
  3. Shellexecute(handle,’open’,’  
  4. c:\sh60\sh60.exe’,’,’,sw-shownormal);  
  5. Button3.enabled:=false;  
  6. End;  
  7. Procedure TForm1.formcreat(sender:tobject);  
  8. Var i:integer:  
  9. Begin  
  10. Chdir(‘c:\sh60’);  
  11. Form1.edit1.clear;  
  12. Form1.memo1.clear;  
  13. Assignfile(textid,form1.opendialog1.filename);  
  14. For i:=1 to form1.adoquery1.sql.count do 
  15. Begin  
  16. Form1.adoquery1.close;  
  17. Form1.adoquery1.clear;  
  18. Form1.adoquery1.sq1.add(‘select 表名  
  19. from Formname’)close;  
  20. Form1.adoquery1.open;  
  21. Form1.dbcombox1.datafield:=’表名’;  
  22. End;   

  3、利用原记录更改

  Delphi数据录入时自动复制原记录,然后做很少的修改,就完成了一条新记录的编辑,最后直接保存。

  使用 ADO 方法存取 Access数据库中的表 test,表的第一个字段是“自动编码”字段,在记录复制时要跳过。首先在 Form1 上添加 ADOConnection1、ADODataSet1、DataSource1、DBGrid1 等数据库相关组件,使用连接向导把 ADOConnection1 与 Access 数据库连接起来,把 ADOConnection1 的 LoginPrompt 属性设置为 False,其它组件的对应属性设置如下:

  1. ADODataSet1.Connection :=ADOConnection1;  
  2. ADODataSet1.CommandText :=select * from test;  
  3. ADODataSet1.Active :=True;  
  4. DataSource1.DataSet :=ADODataSet1;  
  5. DBGrid1.DataSource :=DataSource1;   

  在 DBGrid 中看到数据库表 test 中的数据,后在窗体上添加一些数据敏感的数据输入控件(如 DBEdit 等),将其 DataSource 属性设为 DataSource1,再分别与各字段绑定起来。

  在窗体上添加 2 个按钮 Button1 和Button2,设计相应的触发事件。

  程序编译运行后,按 Button1 按钮,就会添加一条新的记录,记录的内容为添加前记录指针指向的记录的内容.然后对现有数据做些改动,按 Button2 按钮保存新记录。

  4、结论

  通过对上面部分代码的修改,可以实现数据的自动录入,极大的提高了数据的录入速度。

【编辑推荐】

  1. Delphi基础开发技巧
  2. 在Delphi程序中操作注册表
  3. 基于Delphi的屏幕抓图技术的实现
  4. Delphi内存管理的编程技巧
  5. Delphi开发技术手册
责任编辑:韩亚珊 来源: 编程爱好者
相关推荐

2011-07-13 15:32:38

ODBC数据库驱动程序系统DSN

2019-11-15 16:20:35

Windows 10自动重启Windows

2019-10-18 10:30:14

Windows 10自动关机Windows

2022-12-10 17:47:03

VSCode代码

2022-04-28 18:37:50

PythonExcel

2011-03-21 12:41:41

JavaScript

2019-03-15 10:25:08

Windows 10Windows回收站

2019-04-25 09:49:55

Windows 10自动电源Windows

2020-05-28 09:16:05

UbuntuLinux

2010-04-19 13:15:00

Oracle数据库

2020-06-24 07:53:03

机器学习技术人工智能

2009-06-01 09:57:43

netbeans连接数netbeans数据库netbeans连接m

2009-08-12 18:16:37

Oracle数据库自动UNIX

2023-10-31 08:32:59

2011-03-11 13:26:23

SQL Server数导入数据

2011-03-03 10:00:14

ProFTPD建立MySQL

2021-03-29 08:01:20

JavaScript数据结构

2023-01-09 08:39:38

因果推断机器学习

2014-06-18 10:01:19

CIO

2022-03-17 08:17:45

SpringGemFire缓存数据
点赞
收藏

51CTO技术栈公众号