版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、技术第五单元第五单元VBVB访问访问AccessAccess数据库数据库技术夯实考点夯实考点考点考点VBVB访问访问AccessAccess数据库数据库1.1.通过通过ADOADO对象连接数据库对象连接数据库VBVB中使用中使用ADOADO访问数据库。访问数据库。ADOADO是微软公司提供的一种应用程序访问数据库是微软公司提供的一种应用程序访问数据库的编程接口。该接口包含了多个对象的编程接口。该接口包含了多个对象, ,其中其中ConnectionConnection对象用于和数据库建对象用于和数据库建立连接立连接, ,在建立连接后在建立连接后, ,用用RecordsetRecordset对象查
2、询数据表。对象查询数据表。ConnectionConnection对象对象用用ConnectionConnection建立和数据库的连接时建立和数据库的连接时, ,需要设置连接字符串需要设置连接字符串ConnectionStringConnectionString的参数。下列语句定义一个的参数。下列语句定义一个ConnectionConnection对象的实例对象的实例connconn, ,并设置并设置connconn的连接字符串的连接字符串: :Dim Dim connconn As New As New ADODB.ConnectionADODB.Connection技术conn.Conn
3、ectionStringconn.ConnectionString=Provider=Microsoft.ACE.OLEDB.12.0;DATA =Provider=Microsoft.ACE.OLEDB.12.0;DATA Source=&Source=&App.Path&Contacts.accdbApp.Path&Contacts.accdb 其中其中, ,参数参数ProviderProvider用于指定连接的提供者用于指定连接的提供者(Microsoft.ACE.OLEDB.12.0(Microsoft.ACE.OLEDB.12.0可可以访问以访问Acc
4、ess2010Access2010数据库数据库),DATA Source),DATA Source用于指定数据库的文件名用于指定数据库的文件名( (含绝对含绝对路径路径),),App.PathApp.Path返回当前应用程序所在的绝对路径。返回当前应用程序所在的绝对路径。ConnectionConnection对象具有对象具有OpenOpen、CloseClose等方法等方法, ,其中其中OpenOpen方法用于建立到数据源方法用于建立到数据源的连接的连接,Close,Close方法用于关闭连接。方法用于关闭连接。2.2.通过通过RecordsetRecordset对象获取数据表中的数据对象获
5、取数据表中的数据RecordsetRecordset对象对象用用RecordsetRecordset对象从数据库中查询记录时对象从数据库中查询记录时, ,要设置要设置ActiveConnectionActiveConnection属性的属性的值。语句值。语句Set Set rs.ActiveConnectionrs.ActiveConnection= =connconn, ,使使RecordsetRecordset对象的实例对象的实例rsrs与与ConnectionConnection对象的实例对象的实例connconn建立关联。建立关联。在与在与connconn建立关联后建立关联后, ,可用
6、可用RecordsetRecordset对象的对象的OpenOpen方法查询数据表的记录。方法查询数据表的记录。OpenOpen方法的参数为方法的参数为SQLSQL命令。命令。 技术如如: :rs.OpenSELECTrs.OpenSELECT* *FROM infoFROM info运行后运行后, ,记录集记录集rsrs中的数据为中的数据为SQLSQL语句语句SELECTSELECT* *FROM infoFROM info查询到的记录。查询到的记录。RecordsetRecordset对象的对象的CloseClose方法用于关闭方法用于关闭对象。对象。RecordsetRecordset对
7、象的对象的FieldsFields集合用于返回当前记录中的数据集合用于返回当前记录中的数据, ,如如: :rs.Fieldsrs.Fields(fNamefName)返回当前记录中返回当前记录中“fNamefName”字段的值字段的值;rs.Fields(1);rs.Fields(1)返回当前记录返回当前记录中第一个字段的值中第一个字段的值, ,如果第一个字段名为如果第一个字段名为“fName”,rs.Fields(1)fName”,rs.Fields(1)与与rs.Fields(fNamers.Fields(fName)返回值相同。返回值相同。RecordsetRecordset对象的对象的
8、MoveNextMoveNext方法用于把当前移动到下一条记录。若到结尾处方法用于把当前移动到下一条记录。若到结尾处还继续向下移动还继续向下移动, ,程序会出错程序会出错, ,因此在使用因此在使用MoveNextMoveNext时要判断时要判断RecordsetRecordset的的EOFEOF属性属性, ,判断是不是到达结尾处。判断是不是到达结尾处。EOFEOF属性取值为属性取值为“True”True”或或“False”False”。技术3.Select3.Select语句语句SelectSelect语句是结构化查询语言语句是结构化查询语言SQLSQL中最常见的语句中最常见的语句, ,主要用
9、于从数据表中查主要用于从数据表中查询数据询数据, ,如语句如语句“SELECTSELECT* *FROM info”FROM info”表示查询数据表表示查询数据表“info”info”中的全部数中的全部数据。据。技术典例典例1 1 将将AccessAccess数据表中的第一条记录在数据表中的第一条记录在VBVB文本框中显示。文本框中显示。(1)(1)准备准备AccessAccess数据库。在文件夹数据库。在文件夹“VBVB访问访问AccessAccess数据库数据库”下的下的“test41”test41”文件夹中存有数据库文件文件夹中存有数据库文件“cityaqi.mdbcityaqi.md
10、b”,”,其其“aqiaqi”表的结构与部分数表的结构与部分数据分别如图据分别如图5-15-1与图与图5-25-2所示所示: :技术(2)(2)建立建立VBVB工程、选择工程、选择ADOADO引用。新建引用。新建VBVB工程工程, ,将窗体与工程分别以将窗体与工程分别以“test41.frm”test41.frm”与与“test41.vbp”test41.vbp”为名保存于为名保存于“test41”test41”文件夹中文件夹中, ,打开打开“工程工程”菜单菜单, ,单击单击“引用引用”项项, ,在弹出的对话框中勾选在弹出的对话框中勾选“Microsoft Microsoft ActiveX
11、Data Objects 6.0 Library”ActiveX Data Objects 6.0 Library”引用项引用项, ,如图如图5-35-3所示所示: :技术(3)(3)在标签框中显示数据表中的数据。建立如图在标签框中显示数据表中的数据。建立如图5-45-4所示所示: :技术命令按钮命令按钮“显示显示”(Command1)(Command1)和和“退出退出”(Command2)(Command2)的事件处理过程代码如下的事件处理过程代码如下: :Private Sub Command1_Click()Private Sub Command1_Click()Dim Dim conn
12、conn As New As New ADODB.ConnectionADODB.ConnectionDim Dim rsrs As New As New ADODB.RecordsetADODB.Recordsetconn.ConnectionStringconn.ConnectionString=Provider=Microsoft.ACE.OLEDB.12.0.DATA =Provider=Microsoft.ACE.OLEDB.12.0.DATA Source=&Source=&App.Path&cityaqi.mdbApp.Path&cityaqi.m
13、db conn.Openconn.OpenSet Set rs.ActiveConnectionrs.ActiveConnection= =connconnrs.OpenSELECTrs.OpenSELECT* *FROM FROM aqiaqi Text1.Text=Text1.Text=rs.Fieldsrs.Fields(地区地区)Text2.Text=Text2.Text=rs.Fields(aqirs.Fields(aqi)Text3.Text=Text3.Text=rs.Fieldsrs.Fields(等级等级)rs.Closers.Closeconn.Closeconn.Clos
14、eSet Set rsrs=Nothing=NothingSet Set connconn=Nothing=NothingEnd SubEnd SubPrivate Sub Command2_Click()Private Sub Command2_Click()EndEndEnd SubEnd Sub技术(4)(4)运行程序。单击运行程序。单击“显示显示”按钮按钮, ,结果如图结果如图5-55-5所示所示: :技术典例典例2 2 在典例在典例1 1的基础上的基础上, ,添加一个按钮对象添加一个按钮对象Command3(Command3(即即“下一条下一条”按按钮钮),),增加和修改相关代码实现
15、增加和修改相关代码实现: :单击单击“下一条下一条”按钮时按钮时, ,在文本框在文本框Text1Text1和和Text2Text2显示下一条记录显示下一条记录, ,显示完最后一条记录时提示显示完最后一条记录时提示“记录已全部显示记录已全部显示完完!”!”。程序运行界面如图。程序运行界面如图5-65-6所示所示: :(1)(1)添加按钮对象添加按钮对象Command3,Command3,将将CaptionCaption属性的值修改为属性的值修改为“下一条下一条”。技术(2)(2)命令按钮命令按钮“显示显示”(Command1)(Command1)和和“下一条下一条”(Command3)(Comm
16、and3)的事件处理过程代码如下的事件处理过程代码如下: :Dim Dim connconn As New As New ADODB.ConnectionADODB.ConnectionDim Dim rsrs As New As New ADODB.RecordsetADODB.RecordsetPrivate Sub Command1_Click()Private Sub Command1_Click()conn.ConnectionStringconn.ConnectionString=Provider=Microsoft.ACE.OLEDB.12.0.DATA =Provider=Mi
17、crosoft.ACE.OLEDB.12.0.DATA Source=&Source=&App.PathApp.Path & &cityaqi.mdbcityaqi.mdb conn.Openconn.OpenSet Set rs.ActiveConnectionrs.ActiveConnection= =connconnrs.OpenSELECTrs.OpenSELECT* *FROM FROM aqiaqi Text1.Text=Text1.Text=rs.Fieldsrs.Fields(地区地区)Text2.Text=Text2.Text=rs.Field
18、s(aqirs.Fields(aqi)Text3.Text=Text3.Text=rs.Fieldsrs.Fields(等级等级)rs.Closers.Closeconn.Closeconn.CloseSet Set rsrs=Nothing=NothingSet Set connconn=Nothing=Nothing技术End SubEnd SubPrivate Sub Command2_Click()Private Sub Command2_Click()EndEndEnd SubEnd SubPrivate Sub Command3_Click()Private Sub Command
19、3_Click()rs.MoveNextrs.MoveNext移动到下一条记录移动到下一条记录If Not If Not rs.EOFrs.EOF Then Then判断是否已到记录集的最后一条记录判断是否已到记录集的最后一条记录Text1.Text=Text1.Text=rs.Fieldsrs.Fields(地区地区)Text2.Text=Text2.Text=rs.Fields(aqirs.Fields(aqi)Text3.Text=Text3.Text=rs.Fieldsrs.Fields(等级等级)ElseElseMsgBoxMsgBox(记录已全部显示完毕记录已全部显示完毕!)!)r
20、s.Closers.Closeconn.Closeconn.CloseSet Set rsrs=Nothing=NothingSet Set connconn=Nothing=NothingEnd IfEnd IfEnd SubEnd Sub技术典例典例3 (20153 (2015浙江省浙江省1010月选考题月选考题) )某数据加密方法描述如下某数据加密方法描述如下: :(1)(1)以字节为单位进行加密处理以字节为单位进行加密处理; ;(2)(2)将将1 1个字节的个字节的8 8位二进制数分割成前位二进制数分割成前4 4位与后位与后4 4位两个二进制数位两个二进制数; ;(3)(3)分别将上述
21、两个分别将上述两个4 4位二进制数转换为十进制数位二进制数转换为十进制数; ;(4)(4)将每个十进制数转换为将每个十进制数转换为1 1个加密字符个加密字符, ,对应的对应的“密码表密码表”如下如下: :值值( (十十进进制制) )0 01 12 23 34 45 56 67 78 89 9101011111212131314141515加加密密字字符符I Il li ik ke eC CH HN NP P0 0s st tc ca ar rd d技术小明按照上述方法小明按照上述方法, ,设计了一个字符串设计了一个字符串( (仅包含仅包含ASCIIASCII字符字符) )加密的加密的VBVB程
22、序程序, ,功功能如下能如下: :单击单击“加密加密”按钮按钮Command1,Command1,程序依次将文本框程序依次将文本框Text1Text1中每个字符的中每个字符的ASCIIASCII码值作为码值作为1 1个字节转换为两个加密字符个字节转换为两个加密字符, ,连接这些加密字符连接这些加密字符, ,最后在文最后在文本框本框Text2Text2中输出加密结果。下表显示了字符串中一个字符的加密过程中输出加密结果。下表显示了字符串中一个字符的加密过程: :技术程序运行效果如图程序运行效果如图5-75-7所示。所示。实现上述功能的实现上述功能的VBVB程序如下程序如下: :(1)(1)请在划线
23、处填入合适代码。请在划线处填入合适代码。Private Sub Command1_Click()Private Sub Command1_Click()Dim n As Dim n As Integer,sInteger,s As As String,iString,i As As Integer,ssInteger,ss As String As StringDim a As IntegerDim a As Integer存储加密前字符的存储加密前字符的ASCIIASCII码码Dim b1 As Integer,b2 As IntegerDim b1 As Integer,b2 As Int
24、eger分别存储分割、转换后的两个十进分别存储分割、转换后的两个十进制数制数技术s=Text1.Texts=Text1.TextFor i=1 To nFor i=1 To na=Asc(Mid(s,i,1)a=Asc(Mid(s,i,1)b1=a/16b1=a/16b2=a Mod 16b2=a Mod 16ssss=ss+Code2Char(b1)+Code2Char(b2)=ss+Code2Char(b1)+Code2Char(b2)Text2.Text=Text2.Text=ssssNext iNext iEnd SubEnd Sub十进制值转换为加密字符的函数十进制值转换为加密字符的
25、函数Function Code2Char(c As Integer) As StringFunction Code2Char(c As Integer) As StringDim s As StringDim s As Strings=s=IlikeCHNpostcardIlikeCHNpostcard Code2Char=Code2Char=End FunctionEnd Function技术(2)(2)若将若将“密码表密码表”中值为中值为“0”0”对应的加密字符对应的加密字符“I”I”改成改成“i”,i”,加密后的加密后的密文可能无法解密密文可能无法解密, ,原因是原因是。解析解析: :(
26、1)(1)加密过程的实质就是将英文字符内码转换成十六进制数。通过两加密过程的实质就是将英文字符内码转换成十六进制数。通过两条语句条语句“b1=a/16”“b2=a Mod 16”b1=a/16”“b2=a Mod 16”将每个将每个ASCIIASCII字符分成字符分成2 2个十六进制数个十六进制数, ,然后通过自定义函数然后通过自定义函数Code2Char,Code2Char,将十六进制数转换成对应的加密字符。将十六进制数转换成对应的加密字符。处代码表示为加密前字符串的长度处代码表示为加密前字符串的长度, ,因此应填入因此应填入n=n=Len(sLen(s););十六进制数包含十六进制数包含的
27、数字为的数字为0 015,15,对应字符串中字符的位置为对应字符串中字符的位置为1 116,16,因此处语句为因此处语句为Mid(s,c+1,1)Mid(s,c+1,1)。(2)(2)若将若将“密码表密码表”中值为中值为“0”0”对应的加密字符对应的加密字符“I”I”改成改成“i”,i”,这样加密这样加密字符字符i i就对应两个值就对应两个值0 0和和2,2,因此无法解密。因此无法解密。答案答案: :(1)(1)n=n=Len(sLen(s) )Mid(s,c+1,1)Mid(s,c+1,1)(2)(2)加密字符加密字符i i对应两个值对应两个值0,20,2。技术典例典例4 4 用用VBVB编
28、写一个字符串分行程序编写一个字符串分行程序, ,功能如下功能如下: :单击单击“分行分行”按钮按钮Command1,Command1,将文本框将文本框Text1Text1中的英文文本在列表框中的英文文本在列表框List1List1中分行显示中分行显示( (分行时分行时单词不得跨行单词不得跨行, ,每行字符尽可能多但不超过每行字符尽可能多但不超过4040个个),),并在标签并在标签Label1Label1中输出总中输出总行数行数, ,运行效果如图运行效果如图5-85-8所示。分行算法如下所示。分行算法如下: :(1)(1)将文本框中的字符串保存到变量将文本框中的字符串保存到变量s s中中; ;(
29、2)(2)当当s s中字符个数超过中字符个数超过4040时时, ,循环执行下列循环执行下列, , ,步步, ,否则跳转到否则跳转到(3):(3):如果第如果第4141个字符不是英文字母个字符不是英文字母, ,则分行位置则分行位置p=40;p=40;否则否则, ,向左逐个查找向左逐个查找, ,直直至找到第一个非英文字母至找到第一个非英文字母, ,将其位置作为分行位置将其位置作为分行位置p;p;截取截取s s的前的前p p个字符个字符, ,作为新增行显示在列表框作为新增行显示在列表框List1List1中中, ,同时总行数加同时总行数加1;1;将将s s中未分行部分重新赋值给变量中未分行部分重新赋
30、值给变量s s。技术(3)(3)将将s s作为新增行显示在列表框作为新增行显示在列表框List1List1中中, ,同时总行数加同时总行数加1 1。技术实现上述功能的实现上述功能的VBVB程序如下程序如下, ,请在划线处填入合适代码。请在划线处填入合适代码。Private Sub Command1_Click()Private Sub Command1_Click()Dim s As Dim s As String,cString,c As String As StringDim r As Integer,total As Integer,p As IntegerDim r As Integer,total As Integer,p As Integertotal=0total=0s=s=(1)(1)Do While Do While Len(sLen(s)40)40r=41r=41c=Mid(s,r,1)c=Mid(s,r,1)If If Not(cNot(c=aAndaAnd c= c=AAndAAnd c= c=a And c=a And c=A And c=A And c=Z)技术 r= r=(2)(2) c=Mid(s,r,1) c=Mid(s,r,1)LoopL
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 46791-2025应急预案情景构建方法
- 2026年建筑工程抵押合同
- 消防五实n岗责任制度
- 2025国考国家税务总局邳州市税务局面试题及答案实例
- 2025年《税务稽查工作规程》知识考试题库及答案解析
- 2025年医保工作者的年度工作总结(3篇)
- 2025医院医保工作汇报
- 宣传演讲方案
- 2025年中国科学院遗传与发育生物学研究所综合管理部交通助理岗位招聘备考题库及参考答案详解一套
- 2025年北京协和医院变态(过敏)反应科合同制科研助理招聘备考题库完整答案详解
- 2025云南省人民检察院招聘22人笔试考试备考试题及答案解析
- 2026年湖南中医药高等专科学校单招职业技能测试题库新版
- 骏马奔腾启新程盛世华章谱未来-2026年马年学校元旦主持词
- 剪刀式登高车专项施工方案
- 22863中级财务会计(一)机考综合复习题
- 安庆师范学院论文格式
- 专业技术指导委员会工作总结报告
- 2025-2030智慧消防系统远程监控平台与城市火灾防控效果规划研究
- 医疗器械经营企业培训试卷及答案
- 27米三角形屋架设计
- 2025年大学《老挝语》专业题库-老
评论
0/150
提交评论