




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
专题二十三VB数据库访问PART01VB访问Access数据库VB访问数据库步骤VB访问数据库方法VBADO数据库连接到文件4.0OLEDBConnectionstringRecordsource连接到数据表datesource(Text控件)datefield连接到字段数据库ADO对象的组成主要对象:ConnectionCommandRecordset主要集合:FieldsConnection对象是ADO的首要对象,它建立与数据源的连接、管理程序对数据的一切操作。通常声明为全局变量DimcnAsNewADODB.ConnectionConnectionString属性Open方法Close方法【例】使用Connection对象连接到数据库Scenic.accdb。PrivateSubForm_Load()DimconnAsNewADODB.Connection
'创建Connection对象connconn.ConnectionString=“Provider=Microsoft.ACE.OLEDB.12.0;DataSource=”+App.Path+“\Sdudent.accdb”
'连接数据库路径
conn.Open
'打开到数据库连接Ifconn.State=adStateOpenThenMsgBox“连接已打开”
'判断连接状态
conn.Close
'关闭数据库连接Ifconn.State=adstatecolsedThenMsgBox“连接已关闭”
EndSub其中,“Provider”用于指定连接的提供者(Microsoft.ACE.OLEDB.12.0可以访问Access2010数据库),“DATASource”用于指定数据库的文件名(含绝对路径)。App.Path返回当前应用程序所在的绝对路径。Recordset对象记录集对象:用来管理某个查询返回的记录集以及记录集中的游标。声明:对每一个需要操作的查询结构可以声明一个Recordset对象DimcnAsNewADODB.RecordsetRecordset对象RecordSet方法1、AddNew方法2、Delete方法3、Update方法4、Find方法5、Move方法6、MoveFirst、MoveLast、MoveNext和MovePrevious方法7、Open方法8、Close方法代表一个记录集中的一个列。通过该对象可以取得一个记录集内不同列的值。RecordSet对象数据的读取方法
Text1.Text=rst.Fields("sno")Text2.Text=rst.Fields(1)Text3.Text=rst("Sage")Text4.Text=rst(4)Fields集合①Select语句从数据库中查询数据,并以表格形式返回查询结果。
“Select*Frominfo”表示查询数据表“info”中的全部数据。②Delete语句的功能为删除表中指定的记录。【例】删除用户名为“donghan”的所有记录。DeleteFromUsersWhereUserName=“
donghan”;③Update语句功能为更新表中指定记录中指定字段的值。④Insert语句功能是向数据表中插入新的记录SQL语句【例】Recordset对象应用示例DimconnAsNewADODB.ConnectionDimrsAsNewADODB.Recordset
'创建Recordset对象DimstrSQLAsStringconn.ConnectionString=“Provider=Microsoft.ACE.OLEDB.12.0;DataSource=”
&App.Path&“\users1.accdb”strSQL=“SELECT*FROMusers”
'打开数据表(记录集)语句conn.OpenSetrs.ActiveConnection=conn
'将Recordset对象与实例Conn建立关联rs.LockType=adLockOptimistic
'打开Recordset对象锁定类型为乐观锁rs.CursorType=adOpenStatic
'设置Recordset对象游标为静态类型rs.OpenstrSQL
'打开数据表以获取表中数据
rs.AddNew
'数据表新建记录初始化
rs.Fields(1)=Text1.Text
'将文本框中的内容添加到记录字段1中
rs.Fields(2)=Text2.Text
'将文本框中的内容添加到记录字段2中
rs.Update
'更新数据表rs.close
‘关闭数据表连接
conn.Close
'关闭数据库连接
Setconn
Nothing说明:打开Recordset对象时,若Recordset非空,当前记录位于第一条记录。【例】将student.accdb数据中,家长数据表“jizhang”中的手机号码字段记录“cmcc”读取到数组phone中。程序代码如下:Dimphone(1To100)AsString'学生家长手机号码DimnumAsInteger
'统计班级人数变量PrivateSubForm_Load()
DimconnAsNewADODB.Connection,rsAsNewADODB.Recordset
DimstrSQLAsString
conn.ConnectionString=“Provider=Microsoft.ACE.OLEDB.12.0;DataSource=”+App.Path“\student.accdb”
conn.Open
strSQL=“SELECT*FROMjizhang”
Setrs.ActiveConnection=conn
rs.OpenstrSQL
num=0
DoWhileNotrs.EOFnum=num+1'cmcc字段存储的家长手机号码phone(num)=rs.Fields(“cmcc”)rs.MoveNext
Loop
rs.Close
'关闭数据表
conn.Close
'关闭数据库连接
MsgBox“家长手机号码读取完成,共有”+Str(num)+“个。”EndSub学生登记表数学所0122女张力010101数学所0122女张力010101首钢1630男李一鸣990116计算所0123女陈婷婷990129………………化学所0424男王朝011008物理所0223男林宏业010302BOF(BeginningofFile)ErrorsErrorsEOF(EndofFile)rst.Bof=falserst.Bof=truerst.Eof=truerst.Eof=false系统出错系统出错PART02典例分析(2016.10浙江选考,6分)小李与小王合作编写一个成绩统计的VB程序:小王编写一个过程,该过程从数据库读取某一指定科目的相关数据,存储在数组a中;小李编写一个过程,该过程依据数组a中的相关数据统计各班平均分。小李与小王约定的数组a各元素含义如表所示。数组元素数组元素的含义a(1)存储班级数na(2)从a(2)到a(n+1)依次存储第1、2、…第n个班级人数…a(n+1)a(n+2)从a(n+2)依次存储第1班每个学生的单科成绩、第2班每个学生的单科成绩、…第n班每个学生的单科成绩……1程序功能如下:在文本框Text1中输入科目名称,单击“读数据库”按钮Command1,程序从数据库读取数据;单击“开始统计”按钮Command2,程序进行统计处理,结果输出在列表框List1中。程序运行界面如图所示。实现上述功能的VB程序如下,请回答下列问题。1)根据程序运行界面中的数据以及数组a中各元素的含义,数组元素a(5)的值为________(填写数值)。2)分析程序,可知数据库的文件名为___________。3)请在划线处填入合适的代码。Dima(1to600)AsInteger ′数组大小满足处理要求PrivateSubCommand1_Click()′本过程由小王完成,从数据库读取指定科目的各相关数据,存储在数组a中DimconnAsNewADODB.ConnectionDimrsAsNewADODB.RecordSetConn.ConnectionString="Provider=Microsoft.ACE.OLEDB.12.0;DataSource="+"Score.accdb"Conn.OpenSetrs.ActiveConnection=conn′本过程的其他语句略EndSub33Score.accdb小提示数组中存储不同含义数据,应重点根据给定示例及描述,一要确定每部分元素的含义或功能,二要能够从中得出不同含义元素的起始元素位置。(对应的数组下标)PrivateSubCommand2_Click() ′依据数组a中的相关数据统计各班级平均分 DimiAsInteger,jAsInteger,nAsInteger DimpAsInteger,sumAsInteger,averAsSingle① p=n+2 Fori=1Ton sum=0 Forj=1Toa(i+1)
②
p=p+1 Nextj aver=sum/a(i+1) List1.AddItemStr(i)+""+Str(a(i+1))+""+Str(aver) NextiEndSubn=a(1)sum=sum+a(p)方法便笺易错提醒(2018改编,5分)Access数据库文件delfiles.accdb中,有按文件修改时间的顺序存储计算机中某磁盘的文件修改记录,小王编写VB程序,首先编写过程实现从数据库中读取文件名数据,并存储在数组fn中,编写过程实现删除文件名相同的数据,保留文件名相同的最后一个数据,删除方法是向前移动后面的数据,对数据进行覆盖;重新进行查找删除,直到没有文件名相同数据。程序功能如下:窗体加载时,程序从数据库中读取数据,并将数据在列表框List1中显示;单击“查找并删除”按钮Command1,程序进行查找并做删除处理,结果输出在列表框List2中。程序运行界面如图所示。实现上述功能的VB程序如下,请回答下列问题:21)分析程序,可知数据所在数据表的名称为_______。2)请在划线处填入合适的代码。Dimfn(1To1000)AsString ′存储文件名DimnAsInteger ′存储数据个数PrivateSubForm_Load()′本过程用于读取数据库中文件名,并存储在数组fn中 DimconnAsNewADODB.Connection,rsAsNewADODB.RecordSetfilesDimstrSQLAsStringConn.ConnectionString="Provider=Microsoft.ACE.OLEDB.12.0;DataSource="+App.Path+"\delfiles.accdb"IfConn.State=adstatecolsedThenConn.OpenstrSQL="select*fromfiles"Setrs.ActiveConnection=connrs.OpenstrSQLn=0DoWhileNotrs.EOF n=n+1 fn(n)=rs.Fields("filesna
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论