VB数据库操作实例.docx

上传人:b****3 文档编号:10484428 上传时间:2023-05-26 格式:DOCX 页数:8 大小:72.11KB
下载 相关 举报
VB数据库操作实例.docx_第1页
第1页 / 共8页
VB数据库操作实例.docx_第2页
第2页 / 共8页
VB数据库操作实例.docx_第3页
第3页 / 共8页
VB数据库操作实例.docx_第4页
第4页 / 共8页
VB数据库操作实例.docx_第5页
第5页 / 共8页
VB数据库操作实例.docx_第6页
第6页 / 共8页
VB数据库操作实例.docx_第7页
第7页 / 共8页
VB数据库操作实例.docx_第8页
第8页 / 共8页
亲,该文档总共8页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

VB数据库操作实例.docx

《VB数据库操作实例.docx》由会员分享,可在线阅读,更多相关《VB数据库操作实例.docx(8页珍藏版)》请在冰点文库上搜索。

VB数据库操作实例.docx

VB数据库操作实例

VB数据库操作实例

2008年02月22日05:

49

  VB数据库操作对很多初学者朋友感到比较吃力,目前教材中的实例对数据库操作都比较单一,很多朋友提议我做一个包括浏览、添加、修改、删除功能的数据库操作实例,下面这个实例就是一个这样的数据库操作实例。

  《书库管理系统》是一个最简单的数据库操作实例,它包括浏览、添加、修改、删除功能的数据库操作,使用数据链接控件Adodc链接数据库、数据显示控件MSHFlexGrid显示数据库中的记录。

  在新建工程时工具箱中是没有Adodc控件和MSHFlexGrid控件的,我们必须点击菜单中的【工程】-【部件】,在对话框中勾选“MicrosoftADODataControl6.0(SP6)”和“MicrosoftHierarchicalFlexGridControl6.0(SP4)”,最后点击【确定】,这样Adodc控件和MSHFlexGrid控件就已经放置在工具箱中了。

  其中Adodc控件的ConnectionString属性值是:

"Provider=Microsoft.Jet.OLEDB.4.0;DataSource=家庭书架.mdb;PersistSecurityInfo=False",它设置链接了“家庭书架.mdb”这个Access数据库,RecordSourc属性值是:

"select图书登记表.ID,图书登记表.名称,图书登记表.书号,图书登记表.作者,图书登记表.出版社,图书登记表.出借状态,出借记录.借书人,出借记录.电话,出借记录.地址,图书登记表.备注,图书登记表.出借记录from图书登记表,出借记录where图书登记表.ID=出借记录.zhuIDORDERBY图书登记表.ID",因为在“家庭书架.mdb”数据库中包含"图书登记表"和"出借记录"二个数据表,这是多表链接的典型的SQL语句。

Adodc的这二个属性值在VB的属性窗口进行编辑,你可以将上述属性值直接输入到相应的属性中,设置Visible的值为False,目的是在运行中不显示这个控件,其他属性默认值即可。

  MSHFlexGrid控件的名称我们修改为MS1,它的属性设置稍稍比较麻烦:

  首先将它的DataSource属性在属性窗口设置为"Adodc1";

  然后在对象窗口右击控件,在下拉菜单中点击【属性】,在“通用”标签中修改行为3,修改列为11,修改固定行为0,修改固定列为0,如果数据链接没有问题,在属性的“带区”标签中可以看到列标题和列名称已经设置了,其他属性页的属性可以容许默认值,中点击【确定】即可。

  另外在属性窗口设置MSHFlexGrid控件的BackColorBkg属性为&H00FFE0E0&,这个属性是控件底色的设置,然后设置BackColorFixed属性为&H00C0FFFF&,这个属性是控件数据显示标题的底色。

其他默认值即可。

  最后放置三个按钮,一个标签,三个Frame控件,在Frame1、Frame2、Frame3控件中分别放置9个标签(数组),8个文本框,一个下拉选择框,一个按钮,在Frame2、Frame3控件中分别放置一个标签,设置这个标签的Visible值为False,其他设置参考下图:

  设置和调整控件如上图后,设置数据库,在程序目录新建一个Access数据库,修改数据库的名称为“家庭书架.mdb”,新建二个数据表,分别是:

“图书登记表”和“出借记录”:

  在“图书登记表”中添加字段:

“ID”为自动编号、主键,“名称”为文本、大小50,“书号”为文本、大小30,“作者”为文本、大小40,“出版社”为文本、大小60,“出借状态”为文本、大小20,“出借记录”为数字、长整型,“备注”为文本、大小50;

  在“出借记录”中添加字段:

“ID”为自动编号、主键,“zhuID”为数字、长整型,“名称”为文本、大小50,“借书人”为文本、大小20,“电话”为文本、大小20,“地址”为文本、大小50。

  数据库设置成功。

  最后点击【视图】-【代码窗口】输入下面的代码:

'模块级变量

DimZFCAsString

DimROSXAsInteger

'-------------------------------------

'添加记录事件

PrivateSubCommand1_Click()

'添加记录

DimFLAsString,XIDAsLong

FL=App.Path&"\家庭书架.mdb"

Setconn=OpenDatabase(FL)

strSQL="Select*From图书登记表"

Setrs=conn.OpenRecordset(strSQL)

rs.AddNew

rs!

名称=Text1(0).Text

rs!

书号=Text1

(1).Text

rs!

作者=Text1

(2).Text

rs!

出版社=Text1(3).Text

rs!

出借状态=Combo1.Text

rs!

备注=Text1(7).Text

IfCombo1.Text="出借"Thenrs!

出借记录=1

rs.Update

rs.Close

Setrs=Nothing

strSQL="Select*From图书登记表OrderByIDDesc"

Setrs=conn.OpenRecordset(strSQL)

XID=rs!

ID

rs.Close

Setrs=Nothing

strSQL="Select*From出借记录"

Setrs=conn.OpenRecordset(strSQL)

IfCombo1.Text="出借"Then

rs.AddNew

rs!

zhuID=XID

rs!

名称=Text1(0).Text

rs!

借书人=Text1(4).Text

rs!

电话=Text1(5).Text

rs!

地址=Text1(6).Text

rs.Update

Else

rs.AddNew

rs!

zhuID=XID

rs!

名称=""

rs!

借书人="没有出借"

rs!

电话="无"

rs!

地址="无"

rs.Update

EndIf

rs.Close

Setrs=Nothing

conn.Close

MsgBox"记录添加成功!

"

UnloadMe

书库管理.Show

EndSub

'-------------------------------------

'修改记录事件

PrivateSubCommand2_Click()

'修改记录

IfVal(Label4.Caption)=0Then

MsgBox"没有选择要修改的记录!

"

ExitSub

EndIf

DimFLAsString

FL=App.Path&"\家庭书架.mdb"

Setconn=OpenDatabase(FL)

strSQL="Select*From图书登记表WhereID="&Val(Label4.Caption)&""

Setrs=conn.OpenRecordset(strSQL)

rs.Edit

rs!

名称=Text2(0).Text

rs!

书号=Text2

(1).Text

rs!

作者=Text2

(2).Text

rs!

出版社=Text2(3).Text

rs!

出借状态=Combo2.Text

rs!

备注=Text2(7).Text

IfCombo2.Text="出借"Thenrs!

出借记录=1

rs.Update

rs.Close

Setrs=Nothing

strSQL="Select*From出借记录WherezhuID="&Val(Label4.Caption)&""

Setrs=conn.OpenRecordset(strSQL)

IfCombo2.Text="出借"Then

IfNotrs.EOFThen

rs.Edit

rs!

名称=Text2(0).Text

rs!

借书人=Text2(4).Text

rs!

电话=Text2(5).Text

rs!

地址=Text2(6).Text

rs.Update

Else

rs.AddNew

rs!

zhuID=Val(Label4.Caption)

rs!

名称=Text2(0).Text

rs!

借书人=Text2(4).Text

rs!

电话=Text2(5).Text

rs!

地址=Text2(6).Text

rs.Update

EndIf

Else

IfNotrs.EOFThen

rs.Edit

rs!

名称=Text2(0).Text

rs!

借书人="没有出借"

rs!

电话="无"

rs!

地址="无"

rs.Update

Else

rs.AddNew

rs!

zhuID=Val(Label4.Caption)

rs!

名称=Text2(0).Text

rs!

借书人="没有出借"

rs!

电话="无"

rs!

地址="无"

rs.Update

EndIf

EndIf

rs.Close

Setrs=Nothing

conn.Close

MsgBox"记录修改成功!

"

Label4.Caption=""

UnloadMe

书库管理.Show

EndSub

'-------------------------------------

'添加记录连接

PrivateSubCommand3_Click()

Frame1.Visible=True

Frame2.Visible=False

Frame3.Visible=False

ZFC="添加"

Fori=0To7

Text1(i).Text=""

Nexti

Combo1.Text=""

Command1.Visible=True

Label5.Caption="现在正在添加图书资料"

EndSub

'-------------------------------------

'修改记录连接

PrivateSubCommand4_Click()

Frame1.Visible=False

Frame2.Visible=True

Frame3.Visible=False

ZFC="修改"

Fori=0To7

Text2(i).Text=""

Nexti

Combo2.Text=""

Label4.Caption=""

Command2.Visible=True

Label5.Caption="现在正在修改图书资料"

EndSub

'-------------------------------------

'删除记录连接

PrivateSubCommand5_Click()

Frame1.Visible=False

Frame2.Visible=False

Frame3.Visible=True

ZFC="删除"

Fori=0To7

Text3(i).Text=""

Nexti

Combo3.Text=""

Label1.Caption=""

Command6.Visible=True

Label5.Caption="现在正在删除图书资料"

EndSub

'-------------------------------------

'删除记录事件

PrivateSubCommand6_Click()

'删除记录

DimSSAsInteger

SS=MsgBox("确实要删除这个记录吗?

",vbOKCancel,"删除确认!

")

IfSS=1Then

IfVal(Label1.Caption)=0Then

MsgBox"没有选择要修改的记录!

"

ExitSub

EndIf

DimFLAsString,XIDAsLong

FL=App.Path&"\家庭书架.mdb"

Setconn=OpenDatabase(FL)

strSQL="Select*From图书登记表WhereID="&Val(Label1.Caption)&""

Setrs=conn.OpenRecordset(strSQL)

rs.Delete

rs.Close

Setrs=Nothing

strSQL="Select*From出借记录WherezhuID="&Val(Label1.Caption)&""

Setrs=conn.OpenRecordset(strSQL)

rs.Delete

rs.Close

Setrs=Nothing

conn.Close

MsgBox"记录删除成功!

"

UnloadMe

书库管理.Show

Else

MsgBox"取消了删除记录!

"

EndIf

EndSub

'-------------------------------------

'页面启动事件

PrivateSubForm_Load()

DimstrSQLAsString

Frame1.Visible=False

Frame2.Visible=False

Frame3.Visible=False

Label5.Caption="现在正在浏览图书资料"

MS1.BackColorBkg=&HFFE0E0

EndSub

'-------------------------------------

'点击MSHFlexGrid控件中记录的事件

PrivateSubMS1_Click()

DimiAsInteger,COLXAsInteger

COLX=MS1.Col

ROSX=MS1.Row

IfZFC="添加"Then

Fori=0To7

Text1(i).Text=""

Nexti

Combo1.Text=""

ElseIfZFC="修改"Then

Text2(0).Text=MS1.TextMatrix(ROSX,1)

Text2

(1).Text=MS1.TextMatrix(ROSX,2)

Text2

(2).Text=MS1.TextMatrix(ROSX,3)

Text2(3).Text=MS1.TextMatrix(ROSX,4)

Combo2.Text=MS1.TextMatrix(ROSX,5)

Text2(4).Text=MS1.TextMatrix(ROSX,6)

Text2(5).Text=MS1.TextMatrix(ROSX,7)

Text2(6).Text=MS1.TextMatrix(ROSX,8)

Text2(7).Text=MS1.TextMatrix(ROSX,9)

Label4.Caption=MS1.TextMatrix(ROSX,0)

Label5.Caption="已经选择记录准备修改"

ElseIfZFC="删除"Then

Text3(0).Text=MS1.TextMatrix(ROSX,1)

Text3

(1).Text=MS1.TextMatrix(ROSX,2)

Text3

(2).Text=MS1.TextMatrix(ROSX,3)

Text3(3).Text=MS1.TextMatrix(ROSX,4)

Combo3.Text=MS1.TextMatrix(ROSX,5)

Text3(4).Text=MS1.TextMatrix(ROSX,6)

Text3(5).Text=MS1.TextMatrix(ROSX,7)

Text3(6).Text=MS1.TextMatrix(ROSX,8)

Text3(7).Text=MS1.TextMatrix(ROSX,9)

Label1.Caption=MS1.TextMatrix(ROSX,0)

Label5.Caption="已经选择记录准备删除"

ElseIfZFC=""Then

CL=MS1.Col

Fori=1ToMS1.Cols

   MS1.Col=i-1

   MS1.CellBackColor=vbWhite

Nexti

MS1.Col=CL

EndIf

     MS1.Col=C0LX

     MS1.CellBackColor=&H119911

EndSub

'-------------------------------------

'离开该行时将该行的颜色恢复为白色的事件

PrivateSubMS1_LeaveCell()

DimiAsInteger

DimCLAsInteger

'离开该行时将该行的颜色恢复为白色

CL=MS1.Col

Fori=1ToMS1.Cols

   MS1.Col=i-1

   MS1.CellBackColor=vbWhite

Nexti

MS1.Col=CL

EndSub

  下面是出现运行的情况:

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2