每一步的作法如下: 一、 创建数据源名
先进行定义:DIM DB AS DATABASE
Set db = OpenDatabase(\图书馆管理系统\\sjhdb.mdb\也可以直接在DATA控件的属性中的DATABASENAME直接进行连接。
二、创建数据对象(Record Set)
ADO中的数据对象通常保存的是查询结果。Record Set是ADO中最复杂的对象,有许多属性和方法。Record Set保存的是一行行的记录,并标有一个当前记录。以下是创建方法:
可以直接利用DATA控件直接绑定,在DATA控件的属性中的RECORDSOURCE对数据表进行连接。
Set Record Set=DB.Openrecordset(sqtStr)
这条语句创建并打开了对象Record Set,其中db是先前创建的链接对象,sqtStr是一个字串,代表一条标准的SQL语句。例如:
sqlStr=“SELECT * FROM tab1” Set Record Set=DB.Openrecordset(sqtStr)
这条语句执行后,对象Record Set中就保存了表tab1中的所有记录。
三、操作数据库
我们通过调用链接对象的openrecordset方法来将查询结果返回给一个数据对象或进行插入、删除等操作。例如:
修改:
sql1 = \图书总表 where 条形码号='\\
If sql1 <> \
Set rec = db.OpenRecordset(sql1) rec.Edit
rec.Fields(8).Value = CDate(DTPicker3.Value) rec.Fields(5).Value = CBool(a)
20
rec.Fields(6).Value = Text3(8).Text rec.Update rec.Close End If 删除:
Data2.Recordset.MoveFirst
Data2.Recordset.Move MSFlexGrid2.RowSel - 1 Dim s As Integer
s = MsgBox(\确定删除这组记录吗?删除后将不能恢复数据!\vbYesNo + vbQuestion, \删除确定\
If s = 6 Then
Data2.Recordset.Delete Data2.Refresh
Data2.Recordset.MoveNext 增加:
Set rs = db.OpenRecordset(\借书流水表\rs.AddNew a = False
rs.Fields(0).Value = Trim(Text1(0).Text) rs.Fields(1).Value = Trim(Text1(1).Text) rs.Update rs.Close
四、关闭数据对象和链接对象
在使用了ADO对象之后要关闭它,因为它使用了一定的服务器资源。通过调用方法close实现关闭,然后再释放它。
Record Set.close Set Record Set=Nothing /关闭创建的数据对象
21
mConn.close Set mConn=Nothing /关闭创建的链接对象
3.5.显示数据库中的内容
我利用MSFLEGRID控件来显示数据库中的内容,可以直接通过DATA控件来实现操作,也可以利用代码来完成相关的操作。
第一种方法:
设置MSFLGRID控件的属性Datasource属性 第二种方法:
sql = \* from 借书流水表 where 借书证号='\& Text1(0).Text & \
If sql <> \
Set rs = db.OpenRecordset(sql) End If
If Not (rs.BOF And rs.EOF) Then Do While Not rs.EOF
MSFlexGrid1.TextMatrix(0, 0) = \MSFlexGrid1.TextMatrix(0, 1) = \借书证号\MSFlexGrid1.TextMatrix(0, 2) = \姓名\
MSFlexGrid1.AddItem vbTab & rs.Fields(0).Value & vbTab & rs.Fields(1).Value & vbTab & rs.Fields(2)
rs.MoveNext Loop End If
rs.Close/以上是完成查询结果的数据显示
3.6下面举例对SQL语句进行详细说明:
一个访问数据库的程序段,对于不同的用户以及一个用户的不同行为,
22
要其执行的SQL语句是不同的,其不同主要表现在查询、插入或更新时的参数不同,于是我们将SQL语句定义为含变量的字符串(dim sql as string),通过赋予变量不同的值便产生出适合的SQL语句串,再通过数据对象的相应方法来执行它,完成所需的数据操作。这一方法的运用详见下面部分。
第一.对登录界面进行简单介绍(我在这段程序中使用ADODB数据源)
/用SQL语句从数据库中的密码表中取得用户名称和相应的密码 sql = \密码 where 用户名称='\& \密码= '\
Set rs = conn.Execute(sql)
/用一个循环语句将密码表中的所有用户名显示在登录界面的用户名称下拉列表框中供用户选择
conn.Open connstr
rs.Open \用户名称 from 密码\conn, adOpenStatic, adLockReadOnly
Dim i As String
For t = 0 To Val(rs.RecordCount) - 1 i = Trim(rs.Fields(\用户名称\ rs.MoveNext
txtUserName.AddItem i Next t rs.Close
第二.对查询界面进行简单介绍 Private Sub Command1_Click() strSQl = \
/以下语句实现或者查询模式
23
If Option2.Value = True Then If Check1.Value = vbChecked Then
strSQl = \图书总表.编号='\ End If
If Check2.Value = vbChecked Then If strSQl = \
strSQl = \图书分表.类别='\ Else
strSQl = strSQl & \图书分表.类别='\ End If End If End if
'make the search、
/以下是用SQL语句对图书分表和图书总表按编号相同进行查询:
sql1 = \图书总表.*,图书分表.试卷代号,图书分表.试卷名称,图书分表.页号\
sql1 = sql1 & \图书总表,图书分表\
sql1 = sql1 & \图书总表.编号 = 图书分表.编号\
End If
'show the found records /对查询结果创建数据RECORDSET对象:
If sql1 <> \
Set rs = db.OpenRecordset(sql1) Set Data1.Recordset = rs
24
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库图书馆管理系统流通催还论文(6)在线全文阅读。
相关推荐: