【VB开源代码栏目提醒】:网学会员为需要VB开源代码的朋友们搜集整理了!VB程序中将照片批量导入Access数据库的简单方法 - 数据库相关资料,希望对各位网友有所帮助!
电脑编程技巧与维护
VB 程序中将照片批量导入 Access 数据库的简单方法 周瑞 ( ) 山西忻州职业技术学院计算机系,忻州 034000 摘 要: 目前许多管理信息系统中都有照片信息,大量的照片信息如何存入数据库中,便成了一个问题。
目前已有 许多文章介绍了交互式选择单张导入照片的方法,效率不高,而且采用的是较高深的 ADODB 方法。
本着用最简单 的方法解决问题原则,采用最简单易用的
VB 中的 DATA 控件对象与 IMAGE 控件对象绑定的方法,通过循环巧妙地 实现了将大量照片数据的成批导入 Access 数据库中。
关键词: DATA 控件;数据库;IMAGE 控件;照片
VB Procedure Easiest Way to Import a Large of Photos to Access Database ZHOU Rui (Dept. Computer Xinzhou Vocational and Technical College Xinzhou 034000) Abstract: At present many information management systems have photo information information information on how a large number of photos into the database it becomes a problem. In this paper there are a number of interactive options to import photos leaflets efficiency is not high and is used in the advanced methods of ADODB. The author in the most simple solu- tion to the problem of principle the most easy-to-use
VB control of DATA and IMAGE objects bound object control meth- ods through the cycle of cleverly achieved a large number of photos to import bulk data ACCESS database . Key words: DATA Control DataBase IMAGE Control Photos 目前,许多信息系统中都有照片信息,要求在系统中要 象,已与数据库 xs 中的 xsxx 表相关联,要在文本框中要显示先把照片数据存入表的相应字段中。
照片的导入,可以单张 表中记录的姓名,则需要将该文本框的 DataSource 属性值设地通过交互选择方式进行,也可以按照某种规则成批地导入。
为 DATA1,将 DataField 属性值选为表中的字段“姓名”,这 照片即图片,属于多媒体数据,在数据库中不能像文本、 样就将文本框与 DATA1 控件的“姓名”字段绑定了。
可以方数字等普通数据一样直接存储,不是所见即所得的存储方式, 便地输入输出姓名信息了。
也不能用“”运算符给其赋值。
关于将照片数据存入数据库 DATA 控件与数据库关联时要注意:如果数据库是在 Ac-中的方法,有许多文章已介绍过,大都是单张导入,采用 cess 2003 程序中创建的,要求
VB 系统应升级为 SP5 或者ADODB 的 Stream 对象进行存取。
不可否认,利用 Stream 对 SP6,否则会出错。
因为 SP5 以下的
VB DATA 控件只能与象存取数据库中的多媒体数据是一种较为通用的方法。
而对 Access 97 数据库绑定。
如果数据库是在
VB 的视化数据管理于 Access 数据库,通过数次试验、研究,找到了一种更为简 器中创建的,则不存在此问题。
单实用的批量导入照片的方法:将 DATA 控件与 Image 控件绑 2 Image 控件定。
Image 控件是
VB 中用来显示图像的控件。
有两个重要属1
VB DATA 控件 性:Picture 和 Stretch 属性。
众 所 周 知 , DATA 控 件 是
VB 中 一 内 置 标 准 控 件 , 与 Picture 属性用来指定图像框中显示的图像文件,可以在ADODC 控件以及 ADODB 相比,由于其功能较少,不太灵活, 属性窗口交互式指定,也可以在
代码中通过 LoadPicture 倍受冷落,好多书籍甚至不提到该控件的用法。
其实在某些 函数来指定。
场合,该控件还是相当实用方便的。
DATA 控件有两个重用属 Stretch 属性值设为 True 时,原始图像的大小可不考虑,性:DatabaseName 和 RecordSource。
总会适应 Image 框的大小。
DatabaseName 属性用来为 DATA 控件指定关联的数据库。
3 批量导入方法 RecordSource 属性用来为 DATA 控件指定一个具体的表 假设有一数据库 xs.mdb,其中有一表 xsxx,表中有字段:(记录集)。
学号、姓名、照片。
通过设置 DATA1 对象的 DatabaseName 属 DATA 控件不能直接输入和输出数据,也就是说只能充当 性和 RecordSource 属性将 DATA1 与 xs.mdb 数据库的 xsxx 表幕后英雄,必须利用文本框、标签、图像框等数据感知 (识 相 关 联 , 然 后 通 过 设 置 Image1 对 象 的 DataSource 属 性 和 )别 控件来完成数据的输入和显示。
比如有一个 DATA1 对 DataField 属性将 Image1 与 “照片”字段绑定。
本文收稿日期:2009-9-20 ) 将所有学生的照片文件存在某个文件夹中 (如 E:Pic ,- 54 - DATABASE AND INFORMATION MANAGEMENT 数据库与信息管理 为防止文件名重复,将每个照片的主文件名改为“姓名学 Recordset.EOF 号”,如:“周瑞 0001”。
If IsNull Data1.Recordset 照片 Then 利用循环对表中每条记录的照片字段进行扫描,如为空, 判断当前记录照片字段是否为空 ( 即无照片) Zpm “ E:pic” Trim Data1.Recordset 姓 则将该记录的姓名和学号生成一个字符串,作为主文件名, 名 Trim Data1.Recordset 学号 .JPG 再通过语句:Image1.PictureLoadPicture 图像文件名,载入 If Len Dir Zpm 0 Then 图像框中,由于图像框已与“照片”字段绑定,照片就导入 判断照片文件是否存在 了表中的照片字段中。
如当前记录的学号为 0002,姓名为 Image1.Picture LoadPicture Zpm“王平”,照片字段为空,则载入图片:Image1.PictureLoad- End If End If Picture “E:Pic 王平 0002.JPG” ,这样可以绝对保证照片与记 Data1.Recordset.MoveNext 录的一一对应。
Wend 4 实例 ERR_zp: () 通过
VB 的可视化数据管理器在 E:xsgl 文件夹中创建 1 If Err.Number 0 Then 建一 ACCESS 数据库 xs.mdb,再建一表 xsxx,表结构及记录 MsgBox Err.Description Err.Clear 如表 1 和表 2 所示。
End Sub 表 1 表结构 由于姓名字段定义的宽度比实际占用宽,所以取出来后 字段名 数据类型 宽度 可能有空格,要用 TRIM 函数将其多余的空格去掉。
学号 text 4 表 3 窗体主要控件属性 姓名 text 10 照片 Binary 控件名称 属性 属性值 Data1 DatabaseName E:xsglxs.mdb 表 2 表记录 RecordSource xsxx 学号 姓名 性别 照片 Text1 DataSource Data1 0001 周瑞 男 DataField 学号 0002 王平 女 Text2 DataSource Data1 0003 李明 男 DataField 姓名 Image1 DataSource Data1 DataField 照片 () 准备照片文件存于 E:Pic 文件夹下,并按表 1~2 中 2 Command3 caption 批量 的学号和姓名将其改名。
() 创建一窗体如图 1。
3 “上一条”和“下一条”按钮的核心
代码分别为: Data1.Recordset.MovePrevious 和 Data1.Recordset.MoveNext 导入照片后,可点击这二个按钮来查看,会发现窗体的 IMAGE 框中出现了对应的照片。
5 结语 本例中使用的是固定路径“E:Pic”,也可以在窗体上设 置一个驱动器控件和文件夹控件来选择照片存放路径,然后 在生成 Zpm 字符串时将“E:pic”部分替换掉即可,这样程序 就更有通用性了。
其次,本例中,默认照片文件名为.JPG 类 型 , 也 可 以 是 .BMP 或 者 .Gif 类 型 , 同 理 只 需 在 程 序 中 将 图 1 窗体界面 “JPG”改为其他字母即可。
不过各种类型都可以通过一些图 形软件来转换,应该不是问题。
第三,数据库名、字段名等 ) 1 主要控件属性如表 3。
均可以改变。
) 2 核心
代码: Private Sub Command3_Click 作者简介 Dim Zpm as String On Error GoTo ERR_zp 周瑞,男 ( ),讲师,计算机应用专业硕士。
1972- While Not Data1.Recordset.BOF And Not Data1. - 55 -
上一篇:
在VBNET中使用设计模式
下一篇:
关于大学英语教学