造梦西游3龙脊山在哪:access+ado+flexgrid实例
来源:百度文库 编辑:九乡新闻网 时间:2024/04/27 19:04:15
access+ado+flexgrid实例 本文欢迎非商业用途的转载,但需要注明出自“编程入门网”及相应的网址链接。 我用的是Access 2003,因为需要讲解的仅仅是数据的添加、修改及删除,因此单数据库、单表就够了。如果以后您要编写更复杂一些的信息管理系统而涉及到多表操作,则您还需要补充一些关系数据库方面的知识,比如实体、一对一联系、一对多联系等等;此外,对sql语言也需要有所了解。具体您可以参考:数据库基础知识ABC。 首先,在“我的电脑”的e盘新建一个名为vb文件夹,先打开Access,新建一个名为Access_db的数据库(Access数据库文件的扩展名是.mdb(2007不是)),保存到刚才建立的文件夹中,则以后在程序中调用数据源的位置为E:\vb\Access_db.mdb。 然后在Access_db.mdb中建立一个名为wzdz的表(wzdz是“网站地址”的首字母缩写), 然后在wzdz表中添加网站名称、网站地址及网站描述三个字段,三个字段的属性是相同的,如下: ▲数据类型:文本。 ▲字段大小:50 ▲有效性规则:无。 ▲必填字段:否 ▲允许空字符串:否 ▲索引:无 “编号”这个字段使用的是Access的自动编号,并将其作为主键。也就是说,您在表中设置以上三个字段即可,设置完毕保存表时,按Access的提示添加主键,Access会自动为您搞定。具体操作您可以参考:vb神童教程(续)--vb连接Access数据库实例 这样在建立了数据库及表结构之后,即使是调用没有记录的空库,系统也可以无差错运行,可以在运行时通过“添加记录”按钮向数据库中添加记录。不过由于数据库是空的,系统第一次运行时数据显示控件没有数据可显示,显得空荡荡的,不太美观哦。为了方便起见,我们在Access中给wzdz表中预先添加两条初始记录: 二、设计界面本系统是一个很简单的数据库操作实例,能够对数据库的添加、修改及删除记录这几个基本的操作。系统使用数据显示控件MSHFlexGrid显示数据库中的记录,使用数据链接控件Adodc链接数据库作为MSHFlexGrid的数据源,使用文本框来接收系统运行时用户输入的数据。 步骤如下: 一、启动vb6,新建一个标准exe工程,并将工程中的form1的caption属性设置为“编程入门网网址管理系统”,width属性值设为7950,height属性值设为4620。 二、向窗体中添加一个Adodc控件。如果在工具箱中找不到Adodc控件,可以右击工具箱,选择“部件...”菜单项,然后在“部件”窗口的“控件”选项卡中选中“Microsoft ADO Data Control6.0(OLEDB)”。(ADODC)) 在VB的属性窗口我们对Adodc控件的三个个属性值进行编辑,其余属性值使用默认的即可: 1、ConnectionString属性值设为:Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\vb\Access_db.mdb;Persist Security Info=False 这个属性设置了连接Access_db.mdb这个数据库。 2、RecordSourc属性值设为:select * from wzdz 这个属性值中的sql语句的作用是查询出wzdz表中的所有记录。 3、Visible属性值设为False,作用是使其在运行时不可见。 三、向窗体添加一个MSHFlexGrid控件,(延伸)如果工具箱中没有MSHFlexGrid控件,可以右击工具箱,选择“部件...”菜单项,然后在“部件”窗口的“控件”选项卡中选中“Microsoft Hierarchical FlexGrid Control 6.0 ”。然后在vb的属性窗口中将MSHFlexGrid控件的名称修改为MS1,如下图: 然后对MSHFlexGrid控件进行如下设置: 1、DataSource属性:在vb的属性窗口中将其值设为Adodc1,即使用Adodc控件作为MSHFlexGrid控件数据源。 2、BackColorBkg属性:在vb的属性窗口中将其值设为&H00FFE0E0&,这是设置的MSHFlexGrid控件的底色。 3、BackColorFixed属性:在vb的属性窗口中将其值设为&H00C0FFFF&,这是设置的MSHFlexGrid控件的显示标题的底色。 4、width属性:在vb的属性窗口中将其值设为7695. 5、Height属性:在vb的属性窗口中将其值设为2175. 6、右击MSHFlexGrid控件,在弹出的菜单中选“属性”,在弹出的“属性页”对话框的在“通用”选项卡中修改行为4,修改列为4,修改固定行为0,修改固定列为0。如果数据链接正常,在“属性页”对话框的“带区”选项卡中可以看到列标题和列名称已经设置了,这里注意应该将“带区”选项卡中的“列标头”选项勾选上,否则运行时无法显示列标题,如下图。“属性页”对话框的其它部分使用默认值即可。 四、向窗体中添加4个Label控件(标签),在vb的属性窗口为它们设置以下属性: 1、caption属性:分别设置为网站名称、网站地址、网站描述及编号。 2、Alignment属性:均设为“2-Center”。 3、AutoSize属性:均设为True。 五、向窗体中添加4个TextBox控件(文本框),并调整它们的位置成一排与4个标签相对应,即:网站名称→Text1,网站地址→Text2,网站描述→Text3,编号→Text4。 六、向窗体中添加4个CommandButton控件(命令按钮),将它们的caption属性分别设置为“添加记录”、“修改记录”、“删除记录”和“退出系统”,并调整它们的位置成一排,放在文本框的下方。 七、在两排文本框和命令按钮中间,添加一个Line控件,适当拖动其两端的控制点将长短调整至适当,并将其BorderColor属性性设为&H00C00000&,作用是把文本框和命令按钮隔开,这样在视觉上似乎能好看些。 八、所有控件设置完毕后,界面如下图所示: 三、为对象添加事件代码。 一、form1的load事件代码:Private Sub Form_Load() Form1.MS1.ColWidth(0) = 600 ' 控件名.ColWidth(I) 控件的第(I+1)列宽
Form1.MS1.ColWidth(1) = 1000
Form1.MS1.ColWidth(2) = 2300
Form1.MS1.ColWidth(3) = 4000
Form1.Text1.Text = ""
Form1.Text2.Text = ""
Form1.Text3.Text = ""
Form1.Text4.Text = ""
End Sub 主要是在系统初始化时设置MSHFlexGrid控件的列宽,并将文本框置空。 二、“添加记录”按钮(command1)的click事件代码:Private Sub Command1_Click()Dim sc As IntegerIf Text1.Text = "" Or Text2.Text = "" Or Text3.Text = "" Then '即网站名称、网站地址和网站描述的内容必须填全了才打开数据库连接写入数据
'由于系统数据库设计为“编号”字段采用的是Access的自动编号
'因此在添加记录时不接收编号的数据,由Access自动加编号 MsgBox ("请输入完整的网站信息")Else sc = MsgBox("确实要添加这条记录吗?", vbOKCancel, "提示信息")
If sc = 1 Then
'运行时如果用户点击的是MsgBox提示框的“确定”按钮,返回值是1 /*定义ADODB的二个属性*/
Dim conn As New ADODB.Connection /*为什么不是ADODC?而是ADODB?*/ Dim rs As New ADODB.Recordset
/*下面是定义connection属性*/
Dim Str1 As String
Dim Str2 As String
Dim Str3 As String
Str1 = "Provider=Microsoft.Jet.OLEDB.4.0;"
Str2 = "Data Source=E:\vb\Access_db.mdb;"
Str3 = "Jet OLEDB:Database Password=" ‘带密码的库写法 conn.Open Str1 & Str2 & Str3 /*用打开方法打开数据库*/ strSQL = "select * from wzdz" rs.Open strSQL, conn, 3, 3 /*写法格式*/3行,3列? rs.AddNew rs!网站名称 = Text1.Text /*!*/
rs!网站地址 = Text2.Text
rs!网站描述 = Text3.Text
rs.Update
rs.Close
conn.Close MsgBox ("添加记录成功!") Adodc1.Refresh
'刷新数据源,MSHFlexGrid控件会实时刷新显示数据 End If
'以下四条语句的作用是在操作完成后将文本框置空Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""End IfEnd Sub 三、“修改记录”按钮(command2)的click事件代码:Private Sub Command2_Click()If Not IsNumeric(Text4.Text) Or Val(Text4.Text) = 0 Then'编号字段是Access的自动编号,为自然数
'因此对text4的内容进行校验,如果不是数值或为0则跳出sub过程 MsgBox "记录号是大于0的自然数,请输入正确的编号!" Exit SubEnd IfIf Text1.Text = "" Or Text2.Text = "" Or Text3.Text = "" Then'对三个文本框的内容进行校验,不接收空值 MsgBox "请输入完整的网站信息!" Exit SubEnd IfDim sc As Integer
sc = MsgBox("确实修改这条记录吗?", vbOKCancel, "提示信息")If sc = 1 Then '运行时如果用户点击的是MsgBox提示框的“确定”按钮,返回值是1
Dim conn As New ADODB.Connection Dim rs As New ADODB.Recordset Dim Str1 As String
Dim Str2 As String
Dim Str3 As String
Str1 = "Provider=Microsoft.Jet.OLEDB.4.0;"
Str2 = "Data Source=E:\vb\Access_db.mdb;"
Str3 = "Jet OLEDB:Database Password=" conn.Open Str1 & Str2 & Str3
strSQL = "select * from wzdz where 编号=" & Val(Text4.Text) & "" rs.Open strSQL, conn, 3, 3 If rs!编号 = Val(Text4.Text) Then
'由于系统数据库使用的是自动编号作为主键
'因此以编号字段的内容作为判断的依据
'如果rs!编号 = Val(Text4.Text)说明数据库中有此记录,
'才会修改其它三个字段的内容
'否则给出“不存在此记录”的提示信息并关闭数据连接 rs!网站名称 = Text1.Text
rs!网站地址 = Text2.Text
rs!网站描述 = Text3.Text rs.Update rs.Close conn.Close MsgBox ("修改记录成功!") Adodc1.Refresh '刷新数据源,MSHFlexGrid控件会实时刷新显示数据 Else
MsgBox ("不存在此记录!")
Text1.Text = ""
Text2.Text = ""
Text3.Text = "" Text4.Text = "" rs.Close conn.Close Exit Sub End IfEnd If'以下四条语句的作用是在操作完成后将文本框置空Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""End Sub 四、“删除记录”按钮(command3)的click事件代码:Private Sub Command3_Click()If Not IsNumeric(Text4.Text) Or Val(Text4.Text) = 0 Then'编号字段是Access的自动编号,为自然数
'因此对text4的内容进行校验,如果不是数值或为0则跳出sub过程
MsgBox "编号是大于0的自然数,请输入正确的编号!" Exit SubEnd IfDim sc As Integersc = MsgBox("确实要删除这个记录吗?", vbOKCancel, "删除确认!")If sc = 1 Then'运行时如果用户点击的是MsgBox提示框的“确定”按钮,返回值是1 Dim conn As New ADODB.Connection Dim rs As New ADODB.Recordset Dim Str1 As String
Dim Str2 As String
Dim Str3 As String
Str1 = "Provider=Microsoft.Jet.OLEDB.4.0;"
Str2 = "Data Source=E:\vb\Access_db.mdb;"
Str3 = "Jet OLEDB:Database Password=" conn.Open Str1 & Str2 & Str3 strSQL = "select * from wzdz where 编号=" & Val(Text4.Text) & "" rs.Open strSQL, conn, 3, 3 If rs!编号 = Val(Text4.Text) Then
'由于系统数据库使用的是自动编号作为主键
'因此以编号字段的内容作为判断的依据
'如果rs!编号 = Val(Text4.Text)说明数据库中有此记录并进行删除操作
'否则给“不存在此记录”的提示信息并关闭数据连接
rs.Delete rs.Close conn.Close MsgBox ("删除记录成功!") Adodc1.Refresh '刷新数据源,MSHFlexGrid控件会实时刷新显示数据 Else MsgBox ("不存在此记录!") Text4.Text = "" rs.Close conn.Close Exit Sub End IfEnd If
'以下四条语句的作用是在操作完成后将文本框置空
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
End Sub 五、“退出系统”按钮(command4)的click事件代码:Private Sub Command4_Click()Dim sc As Integersc = MsgBox("确实要退出系统吗?", vbOKCancel, "提示信息")If sc = 1 Then'运行时如果用户点击的是MsgBox提示框的“确定”按钮,返回值是1 End
End If
End Sub 六、添加完事件代码之后,我们这个实例至此完成,运行一下吧!
Form1.MS1.ColWidth(1) = 1000
Form1.MS1.ColWidth(2) = 2300
Form1.MS1.ColWidth(3) = 4000
Form1.Text1.Text = ""
Form1.Text2.Text = ""
Form1.Text3.Text = ""
Form1.Text4.Text = ""
End Sub 主要是在系统初始化时设置MSHFlexGrid控件的列宽,并将文本框置空。 二、“添加记录”按钮(command1)的click事件代码:Private Sub Command1_Click()Dim sc As IntegerIf Text1.Text = "" Or Text2.Text = "" Or Text3.Text = "" Then '即网站名称、网站地址和网站描述的内容必须填全了才打开数据库连接写入数据
'由于系统数据库设计为“编号”字段采用的是Access的自动编号
'因此在添加记录时不接收编号的数据,由Access自动加编号 MsgBox ("请输入完整的网站信息")Else sc = MsgBox("确实要添加这条记录吗?", vbOKCancel, "提示信息")
If sc = 1 Then
'运行时如果用户点击的是MsgBox提示框的“确定”按钮,返回值是1 /*定义ADODB的二个属性*/
Dim conn As New ADODB.Connection /*为什么不是ADODC?而是ADODB?*/ Dim rs As New ADODB.Recordset
/*下面是定义connection属性*/
Dim Str1 As String
Dim Str2 As String
Dim Str3 As String
Str1 = "Provider=Microsoft.Jet.OLEDB.4.0;"
Str2 = "Data Source=E:\vb\Access_db.mdb;"
Str3 = "Jet OLEDB:Database Password=" ‘带密码的库写法 conn.Open Str1 & Str2 & Str3 /*用打开方法打开数据库*/ strSQL = "select * from wzdz" rs.Open strSQL, conn, 3, 3 /*写法格式*/3行,3列? rs.AddNew rs!网站名称 = Text1.Text /*!*/
rs!网站地址 = Text2.Text
rs!网站描述 = Text3.Text
rs.Update
rs.Close
conn.Close MsgBox ("添加记录成功!") Adodc1.Refresh
'刷新数据源,MSHFlexGrid控件会实时刷新显示数据 End If
'以下四条语句的作用是在操作完成后将文本框置空Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""End IfEnd Sub 三、“修改记录”按钮(command2)的click事件代码:Private Sub Command2_Click()If Not IsNumeric(Text4.Text) Or Val(Text4.Text) = 0 Then'编号字段是Access的自动编号,为自然数
'因此对text4的内容进行校验,如果不是数值或为0则跳出sub过程 MsgBox "记录号是大于0的自然数,请输入正确的编号!" Exit SubEnd IfIf Text1.Text = "" Or Text2.Text = "" Or Text3.Text = "" Then'对三个文本框的内容进行校验,不接收空值 MsgBox "请输入完整的网站信息!" Exit SubEnd IfDim sc As Integer
sc = MsgBox("确实修改这条记录吗?", vbOKCancel, "提示信息")If sc = 1 Then '运行时如果用户点击的是MsgBox提示框的“确定”按钮,返回值是1
Dim conn As New ADODB.Connection Dim rs As New ADODB.Recordset Dim Str1 As String
Dim Str2 As String
Dim Str3 As String
Str1 = "Provider=Microsoft.Jet.OLEDB.4.0;"
Str2 = "Data Source=E:\vb\Access_db.mdb;"
Str3 = "Jet OLEDB:Database Password=" conn.Open Str1 & Str2 & Str3
strSQL = "select * from wzdz where 编号=" & Val(Text4.Text) & "" rs.Open strSQL, conn, 3, 3 If rs!编号 = Val(Text4.Text) Then
'由于系统数据库使用的是自动编号作为主键
'因此以编号字段的内容作为判断的依据
'如果rs!编号 = Val(Text4.Text)说明数据库中有此记录,
'才会修改其它三个字段的内容
'否则给出“不存在此记录”的提示信息并关闭数据连接 rs!网站名称 = Text1.Text
rs!网站地址 = Text2.Text
rs!网站描述 = Text3.Text rs.Update rs.Close conn.Close MsgBox ("修改记录成功!") Adodc1.Refresh '刷新数据源,MSHFlexGrid控件会实时刷新显示数据 Else
MsgBox ("不存在此记录!")
Text1.Text = ""
Text2.Text = ""
Text3.Text = "" Text4.Text = "" rs.Close conn.Close Exit Sub End IfEnd If'以下四条语句的作用是在操作完成后将文本框置空Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""End Sub 四、“删除记录”按钮(command3)的click事件代码:Private Sub Command3_Click()If Not IsNumeric(Text4.Text) Or Val(Text4.Text) = 0 Then'编号字段是Access的自动编号,为自然数
'因此对text4的内容进行校验,如果不是数值或为0则跳出sub过程
MsgBox "编号是大于0的自然数,请输入正确的编号!" Exit SubEnd IfDim sc As Integersc = MsgBox("确实要删除这个记录吗?", vbOKCancel, "删除确认!")If sc = 1 Then'运行时如果用户点击的是MsgBox提示框的“确定”按钮,返回值是1 Dim conn As New ADODB.Connection Dim rs As New ADODB.Recordset Dim Str1 As String
Dim Str2 As String
Dim Str3 As String
Str1 = "Provider=Microsoft.Jet.OLEDB.4.0;"
Str2 = "Data Source=E:\vb\Access_db.mdb;"
Str3 = "Jet OLEDB:Database Password=" conn.Open Str1 & Str2 & Str3 strSQL = "select * from wzdz where 编号=" & Val(Text4.Text) & "" rs.Open strSQL, conn, 3, 3 If rs!编号 = Val(Text4.Text) Then
'由于系统数据库使用的是自动编号作为主键
'因此以编号字段的内容作为判断的依据
'如果rs!编号 = Val(Text4.Text)说明数据库中有此记录并进行删除操作
'否则给“不存在此记录”的提示信息并关闭数据连接
rs.Delete rs.Close conn.Close MsgBox ("删除记录成功!") Adodc1.Refresh '刷新数据源,MSHFlexGrid控件会实时刷新显示数据 Else MsgBox ("不存在此记录!") Text4.Text = "" rs.Close conn.Close Exit Sub End IfEnd If
'以下四条语句的作用是在操作完成后将文本框置空
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
End Sub 五、“退出系统”按钮(command4)的click事件代码:Private Sub Command4_Click()Dim sc As Integersc = MsgBox("确实要退出系统吗?", vbOKCancel, "提示信息")If sc = 1 Then'运行时如果用户点击的是MsgBox提示框的“确定”按钮,返回值是1 End
End If
End Sub 六、添加完事件代码之后,我们这个实例至此完成,运行一下吧!
access+ado+flexgrid实例
ADO连接ACCESS详解
vb神童教程(续)--使用ADO Data控件连接Access的简单实例
ADO ACCESS 懒人的开发简单指南
VB利用ADO控件连接access数据库
Access教程 第六章 数据库实例分析
ADO
ASP和Access结合实现编写目录树的程序实例_深度学习 特首空间
ADO.NET
ADO优化
Access概述
oracle access
OCI与ADO
ADO.NET对象模型
用Access 2000进行班级管理 [Access]
Access教程 第一章 Access数据库基础1
ADO.NET结构图解 - ADO.NET教程 - 新客网
转载:ADO连接SQL数据库
ADO Connection对象连接数据库
ADO.NET 对象模型 专业性
VB ADO treeview代码(转)
net 连接Access数据库
ACCESS编程(3)
加密Access数据库