【VB开源代码栏目提醒】:网学会员,鉴于大家对VB开源代码十分关注,论文会员在此为大家搜集整理了“【精品文档】-VB程序中将照片批量导入Access数据库的简单方法 - 计算机理论”一文,供大家参考学习!
电脑编程技巧与维护目前许多信息系统中都有照片信息要求在系统中要先把照片数据存入表的相应字段中。
照片的导入可以单张地通过交互选择方式进行也可以按照某种规则成批地导入。
照片即图片属于多媒体数据在数据库中不能像文本、数字等普通数据一样直接存储不是所见即所得的存储方式也不能用“”运算符给其赋值。
关于将照片数据存入数据库中的方法有许多文章已介绍过大都是单张导入采用ADODB的Stream对象进行存取。
不可否认利用Stream对象存取数据库中的多媒体数据是一种较为通用的方法。
而对于Access数据库通过数次试验、研究找到了一种更为简单实用的批量导入照片的方法将DATA控件与Image控件绑定。
1VBDATA控件众所周知DATA控件是
VB中一内置标准控件与ADODC控件以及ADODB相比由于其功能较少不太灵活倍受冷落好多书籍甚至不提到该控件的用法。
其实在某些场合该控件还是相当实用方便的。
DATA控件有两个重用属性DatabaseName和RecordSource。
DatabaseName属性用来为DATA控件指定关联的数据库。
RecordSource属性用来为DATA控件指定一个具体的表记录集。
DATA控件不能直接输入和输出数据也就是说只能充当幕后英雄必须利用文本框、标签、图像框等数据感知识别控件来完成数据的输入和显示。
比如有一个DATA1对象已与数据库xs中的xsxx表相关联要在文本框中要显示表中记录的姓名则需要将该文本框的DataSource属性值设为DATA1将DataField属性值选为表中的字段“姓名”这样就将文本框与DATA1控件的“姓名”字段绑定了。
可以方便地输入输出姓名信息了。
DATA控件与数据库关联时要注意如果数据库是在Access2003程序中创建的要求
VB系统应升级为SP5或者SP6否则会出错。
因为SP5以下的VBDATA控件只能与Access97数据库绑定。
如果数据库是在
VB的视化数据管理器中创建的则不存在此问题。
2Image控件Image控件是
VB中用来显示图像的控件。
有两个重要属性Picture和Stretch属性。
Picture属性用来指定图像框中显示的图像文件可以在属性窗口交互式指定也可以在
代码中通过LoadPicture函数来指定。
Stretch属性值设为True时原始图像的大小可不考虑总会适应Image框的大小。
3批量导入方法假设有一数据库xs.mdb其中有一表xsxx表中有字段学号、姓名、照片。
通过设置DATA1对象的DatabaseName属性和RecordSource属性将DATA1与xs.mdb数据库的xsxx表相关联然后通过设置Image1对象的DataSource属性和DataField属性将Image1与“照片”字段绑定。
将所有学生的照片文件存在某个文件夹中如E:PicVB
程序中将照片批量导入Access数据库的简单方法周瑞山西忻州职业技术学院
计算机系忻州034000摘要目前许多管理信息系统中都有照片信息大量的照片信息如何存入数据库中便成了一个问题。
目前已有许多文章介绍了交互式选择单张导入照片的方法效率不高而且采用的是较高深的ADODB方法。
本着用最简单的方法解决
问题原则采用最简单易用的
VB中的DATA控件对象与IMAGE控件对象绑定的方法通过循环巧妙地实现了将大量照片数据的成批导入Access数据库中。
关键词DATA控件数据库IMAGE控件照片VBProcedureEasiestWaytoImportaLargeofPhotostoAccessDatabaseZHOURuiDept.ComputerXinzhouVocationalandTechnicalCollegeXinzhou034000Abstract:Atpresentmanyinformationmanagementsystemshavephotoinformationinformationinformationonhowalargenumberofphotosintothedatabaseitbecomesaproblem.InthispaperthereareanumberofinteractiveoptionstoimportphotosleafletsefficiencyisnothighandisusedintheadvancedmethodsofADODB.Theauthorinthemostsimplesolutiontotheproblemofprinciplethemosteasy-to-useVBcontrolofDATAandIMAGEobjectsboundobjectcontrolmethodsthroughthecycleofcleverlyachievedalargenumberofphotostoimportbulkdataACCESSdatabase.Key
words:DATAControlDataBaseIMAGEControlPhotos本文收稿日期2009-9-2054--DATABSENDINFORMATIONMANAGEMENT数据库与信息管理字段名数据类型宽度学号text4姓名text10照片Binary表1表结构学号姓名性别照片0001周瑞男0002王平女0003李明男表2表记录控件名称属性属性值Data1DatabaseNameE:xsglxs.mdbRecordSourcexsxxText1DataSourceData1DataField学号Text2DataSourceData1DataField姓名Image1DataSourceData1DataField照片Command3caption批量表3窗体主要控件属性为防止文件名重复将每个照片的主文件名改为“姓名学号”如“周瑞0001”。
利用循环对表中每条记录的照片字段进行扫描如为空则将该记录的姓名和学号生成一个字符串作为主文件名再通过语句Image1.PictureLoadPicture图像文件名载入图像框中由于图像框已与“照片”字段绑定照片就导入了表中的照片字段中。
如当前记录的学号为0002姓名为“王平”照片字段为空则载入图片Image1.PictureLoadPicture“E:Pic王平0002.JPG”这样可以绝对保证照片与记录的一一对应。
4实例1通过
VB的可视化数据管理器在E:xsgl文件夹中创建建一CCESS数据库xs.mdb再建一表xsxx表结构及记录如表1和表2所示。
2准备照片文件存于EPic文件夹下并按表12中的学号和姓名将其改名。
3创建一窗体如图1。
1主要控件属性如表3。
2核心
代码PrivateSubCommand3_ClckDmZpmastrngOnErrorGoToERRzpWhlNotDt1.Rcorst.BOFAnotDt1.Rcorst.EOFIfIsullDt1.Rcorst照片Thn判断当前记录照片字段是否为空即无照片pm“E:pi”rmDt1.Rorst姓名rmDt1.Rorst学号.JGIfLnDrZpm0hn判断照片文件是否存在Img1.cturLocturZpmEnIfEnIfDt1.Rcorst.MovxtnERRzp:IfErr.umbr0hnMsgoxrr.srptonrr.lrnu由于姓名字段定义的宽度比实际占用宽所以取出来后可能有空格要用TRIM函数将其多余的空格去掉。
“上一条”和“下一条”按钮的核心
代码分别为t1.Rorst.Movrvous和t1.Rorst.Movxt导入照片后可点击这二个按钮来查看会发现窗体的IMGE框中出现了对应的照片。
5结语本例中使用的是固定路径“EPic”也可以在窗体上设置一个驱动器控件和文件夹控件来选择照片存放路径然后在生成Zpm字符串时将“E:pic”部分替换掉即可这样程序就更有通用性了。
其次本例中默认照片文件名为.JPG类型也可以是.BMP或者.Gif类型同理只需在程序中将“JPG”改为其他字母即可。
不过各种类型都可以通过一些图形
软件来转换应该不是问题。
第三数据库名、字段名等均可以改变。
作者简介周瑞男1972-讲师计算机应用专业硕士。
图1窗体界面55--