APP下载

Excel基于VBA连续获取身份证读卡器信息的方法

2020-07-04黄绍龙蒋维

电脑知识与技术 2020年14期
关键词:身份证号读卡器数组

黄绍龙 蒋维

摘要:该文介绍了在Excel中使用身份证读卡器连续读人多个身份证号码并举例说明利用VBA查询对应的数据记录后写入信息的方法。

关键词:身份证号;ActiveX控件;数组;读卡器;VBA

中图分类号:TP311 文献标识码:A

文章编号:1009-3044(2020)14-0094-03

1背景

在日常生活中,凡是需要进行身份验证的场合大都需要使用公民的身份证,例如,出行乘坐交通工具需要实名制购票,居民每年缴纳社保金等,办理这些业务都需要提供身份证号。身份证号包含18位数字,位数较多,手工录入效率较低且容易出错。身份证读卡器可快速、准确地提取身份证的相关信息。读取身份证号码后可以实现查询和写入等多种操作,这样就大大提高了工作效率,特别是在1人为其他多人代购车票或代缴费时效果更加明显。本文模拟居民到银行根据身份证号缴纳社保金为例进行说明。

2适用环境

2.1硬件环境

“华视CVR-100UC”身份证读卡器,可实现信息的快速识别,支持XP-win7/8/10系统。

2.2软件环境

Microsoft Excel 2016内置的VBA(Visual Basic for Applica-tions),它是Visual Basic的一种宏语言,VBA专门用于Office的各应用程序中,可以通过VBA编写模块来满足特定的需要。

3身份证信息提取过程

3.1身份证读卡器对于读取信息的存储

“华视CVR-100UC”身份证读卡器每次成功读取一个身份证就会发出提示音,并在本主机的“C:\IDCardPhoto”目录下生成两个文件,存储当前读取的身份证信息,包括bmp格式照片文件和txt格式的身份证文本信息文件。读取下一张身份证信息时,覆盖之前存储的bmp文件和txt文件。其中的txt文件的文件名是wz.txt,信息在一行上显示,各个字段依次是:姓名,性别,名字,出生年月日,籍贯,身份证号码。例如:张三,男,汉,19800810,河南省洛阳市,411023199005035548。

3.2身份证号的提取

现在需要把wz.txt中的身份证号提取出来。首先读取文件中的全部信息到一个字符串变量中,由于不同的字段之间使用逗号间隔,可使用VBA中的Splitf)函数返回一个数组,其中包含基于逗号分隔符分割的各个字段的值。然后就可以读取该数组身份证号字段值。SplitO函数语法是:split(expression,delim-iterl,其中,Expression是包含带分隔符的字符串表达式,Delim-iter是字符串转换为数组时使用的分隔符。

连续读入的多个身份证号通过字符串连接符连接起来,中间用逗号分隔,以备将来依次写入“客户身份证号”对话框的文本框中。

3.3向文本框依次写入身份证号信息

可接收的身份证号个数可以根据需要设定。插入用户窗体,布局标签和文本框如图1所示。先使用Split(1函数将存储多个身份证号并以逗号分隔的字符串用数组进行存储。然后遍历表单上的控件,若控件类型名是“TextBox”则依次向这些文本框中写入各个身份证号。最后显示用户窗体和读入的所有身份证号码。

4应用举例

以模拟居民通过银行缴纳社保为例。在启用宏的工作簿中,工作表Sheetl中包含身份证号、姓名和缴纳金额3列,另外包含“接受读卡器信息”和“写入查询表单”两个ActiveX按钮控件。如图1所示,初始时“写入查询表单”按钮未激活,只有点击“接受读卡器信息”按钮后,即至少读人1个身份证号码后,“写入查询表单”按钮才被激活,以免产生误操作。身份证读卡器每次成功读取身份证信息后(也就是听到“滴”的一声提示音后),点击“接受读卡器信息”按钮读入下一个身份证号码。这里设置最多读取5个身份证号码。点击“写入查询表单”按钮后,弹出如图2所示的“客户身份证号”对话框。点击对话框中的“查询”按钮可对Sheetl中的记录进行检索。若查询项被命中,若缴费金额列不为空则提示已缴费,否则在图3所示的缴费对话框中录入缴费金额,并将缴费金额写入Sheetl对应列。

5結束语

本文介绍的vBA利用读卡器连续读取身份证号的查询系统界面简洁,操作简单,可以方便地移植到其他相关系统应用上。这种技术可以减轻操作人员的负担并大幅度地提高工作效率,具有非常好的实践意义。

猜你喜欢

身份证号读卡器数组
JAVA稀疏矩阵算法
JAVA玩转数学之二维数组排序
老师情
作品赏析(3)
Excel数组公式在林业多条件求和中的应用
为二维码识别的献礼之作——评测平治二维码门禁读卡器
MATLAB实现组态王中TCP/IP读卡器监控方法
寻找勾股数组的历程
《网印工业》关于作者投稿同时提供身份证号的通知
《网印工业》关于作者投稿同时提供身份证号的通知