
常用软件类: |
|杀毒安全 | |联络聊天 | |网络软件 | |多媒体类 | |系统工具 | |图形图像 | |系统工具 | |应用软件 | |行业软件 |
开发设计类: |
|动画制作 | |图像处理 | |3D设计 | |操作系统 | |站长学院 | |网络相关 | |WEB设计 | |数据库类 | |程序开发 |
9.2 数据库管理器
1. 数据库管理器介绍
在VB中可以通过“外接程序”菜单中的“可视化数据管理器”调出“VisData”数据库管理器窗口。
|
菜单选项 |
功能描述 | |
|
文件 |
打开数据库 |
打开指定的数据库 |
|
新建 |
根据所选类型建立新数据库 | |
|
导入/导出 |
从其他数据库导入数据表,或导出数据表及SQL查询结果 | |
|
工作空间 |
显示注册对话框注册新工作空间,用新输入的用户名和密码从新的工作空间重新打开当前数据库。 | |
|
压缩MDB |
压缩指定的Access数据库,创建一个加密或解密文件。 | |
|
修复MDB |
修复指定的Access数据库 | |
|
实用程序 |
查询生成器 |
建立、查看、执行和存储SQL查询 |
|
数据窗口设计器 |
创建数据窗体并将其添加到VB工程中 | |
|
全局替换 |
创建SQL表达式并更新所选数据表中满足条件的记录 | |
|
附加 |
显示当前Access数据库中所有附加数据表及连接条件 | |
|
用户组/用户 |
查看和修改用户组、用户、权限等设置 | |
|
System.mda |
创建System.mda文件,以便为每个文件设置安全机制 | |
|
性能选项 |
设置超时值 | |
2. 建立数据库
| 数据库的基本操作: |
创建数据表: |
设计表名和表结构 |
| 输入记录 | ||
| 建立索引 | ||
|
数据维护: |
增加记录 | |
| 修改记录 | ||
| 删除记录 |
创建数据表的主要步骤: 设计表结构 → 输入记录 → 建立索引 → 数据维护
(1)设计表结构
启动可视化数据管理器 → 在database窗口中右击,从菜单中选择“新表” → 在表结构窗口中输入表名→ 添加字段 → 确定字段名称和属性、有效性规则 → 建立索引 →生成表结构。
“添加字段”对话框各选项说明
|
选项名 |
描述 |
|
名称 |
即每个字段的名字(对所用字符没有什么限制) |
|
类型 |
指该字段的数据特征,包括:Boolean、Byte、Integer、Long、Currency、Single、Double、Date/Time、Text、Binary(二进制型,存放图片)、Memo(备注型,存放长文本) |
|
大小 |
字段宽度,指该字段所能容纳数据的的最大字节数 |
|
固定字段 |
字段宽度固定不变 |
|
可变字段 |
字段宽度可变 |
|
允许零长度 |
表示空字符串可作为有效的字段值 |
|
必要的 |
表示该字段值不可缺少 |
|
顺序位置 |
字段在表中的顺序位置 |
|
验证文本 |
当向表中输入无效值时系统显示的提示信息 |
|
验证规则 |
验证输入字段值的简单规则,目的是使所输数据符合设定的条件 |
|
默认值 |
在输入时设置的字段初始值,以减少输入重复性数据时的工作量 |
(2)输入记录
在database窗口中选中表名并右击,从菜单中选择“打开” →在数据表窗口输入记录(注意窗口样式)→ 单击“新增”→ 在窗口中输入记录并“更新” →重复……
(3) 维护记录
在database窗口中选中表名并右击,从菜单中选择“打开” →单击“编辑”/“删除”/“新增”,即可完成对记录的修改、删除、添加操作。
3. 建立查询
建立查询就是在数据表中找到符合特定条件的记录并组成一张新表。
在database窗口中选中表名并右击,从菜单中选择“新查询” →在查询生成器中构造查询条件→单击“运行” →单击“保存”,给出查询结果文件名→“关闭”。
查询生成器说明
|
各选项 |
描述 |
|
查询表达式 |
设置查询应该满足的基本条件,可以用and /or来设置应满足的多个条件 |
|
表/字段名 |
设置查询结果中将显示的字段名,单击一个加亮便选中了 |
|
前百分之几条 |
只显示查询结果中的前若干条记录 |
|
前N条记录 |
只显示查询结果中的前N条记录 |
|
“运行”按钮 |
执行查询命令,并显示出查询结果 |
|
“显示”按钮 |
用消息框显示SQL命令 |
|
“复制”按钮 |
将SQL命令复制到SQL窗口 |
|
“保存”按钮 |
将查询结果取个名并保存到数据库中 |
|
“清除”按钮 |
清除条件列表框中的查询条件 |
|
分组条件 |
将查询结果分组,一般每组只有一个记录 |
|
排序条件 |
将查询结果按顺序显示出来,ASC(升序)、DESC(降序) |
|
连接条件 |
设置相关表之间的连接字段 |
9.3 数据控件
1. 数据控件的建立
从VB工具箱中单击Data控件,在窗体上画出数据控件即可。
2. 数据控件的属性
|
属性名称 |
作用 |
|
Connect |
指定数据控件所要连接的数据库类型,VB默认的是Access的MDB数据库,也可以连接DBF、XLS、ODBC等数据库 |
|
DatabaseName |
指定具体使用的数据库文件名,包括路径名 |
|
RecordSource |
指定具体可访问的数据,这些数据构成记录集对象Recordset对象,可以是数据库中的单个表名、一个存储查询,也可以是SQL查询命令 |
|
RecordsetType |
确定记录集类型,有三种: 0——Table(表); 1——Dynaset(动态,默认的) ;2——Snapshot(快照) |
|
BofAction |
当记录指针指向记录集的开始时,确定数据控件该采取的操作: 0——控件重定位到第一个记录 1——移过记录集开始位,定位到一个无效记录,触发数据控件对第一个记录的无效事件Validate |
|
EofAction |
当记录指针指向记录集的结束时,确定数据控件该采取的操作: 0——控件重定位到最后一个记录 1——移过记录集结束位,定位到一个无效记录,触发数据控件对最后一个记录的无效事件Validate 2——向记录集加入新的空记录,可以对新记录进行编辑,移动记录指针新记录写入数据库 |
绑定控件、数据控件、数据库之间的关系:
绑定控件的属性:
DataSource——通过一个有效的数据控件连接到一个数据库上。
DataField——将数据库中的有效字段连接到绑定控件上。
除了常规控件外,可以与Data数据控件绑定的控件有:
|
控件名称 |
部件名称 |
常用属性 |
|
MSFlexGrid |
Microsoft FlexGrid Control 6.0(OLE DB) |
DataSourse |
|
DBCombo |
Microsoft Data Bound List Controls 6.0 |
DataField、DataSource、ListField、RowSource、BoundColumn |
|
DBList | ||
|
DBGrid |
Microsoft Data Bound Grid Control 5.0(SP3) |
DataSourse |
3. 数据控件的事件
|
事件名称 |
触发时间 |
|
Reposition |
发生在一条记录成为当前记录后。只要将记录指针从一条记录移动到另一条记录就会触发。 |
|
Validate |
在一条不同的记录成为当前记录之前,Update 方法之前(用 UpdateRecord 方法保存数据时除外);以及 Delete、Unload 或 Close 操作之前会发生该事件。它检查被数据控件绑定的控件内的数据是否发生变化。 语法:Private Sub Data_Validate(Action As Integer, Save As Integer) …… End Sub |
Validate事迹的 Action参数
|
Action值 |
描述 |
Action值 |
描述 |
|
0 |
取消对数据控件的操作 |
6 |
Update 操作 |
|
1 |
MoveFirst 方法 |
7 |
Delete 方法 |
|
2 |
MovePrevious 方法 |
8 |
Find 方法 |
|
3 |
MoveNext 方法 |
9 |
设置Bookmark 属性 |
|
4 |
MoveLast 方法。 |
10 |
Close 的方法 |
|
5 |
AddNew 方法 |
11 |
卸载窗体 |
4. 数据控件的常用方法
|
方法名称 |
作用 |
示例 |
|
Refresh |
激活数据控件,使各用户对数据库的操作有效。 |
Data1.Refresh |
|
UpdateControls |
将数据从数据库中重新读到数据控件绑定的控件内,通过它可以终止用户对绑定控件内数据的修改。 |
放弃修改按钮代码: Data1. UpdateControls |
|
UpdateRecord |
强制数据控件将绑定控件内的数据写入到数据库中,不再触发Validate事件 |
确认修改按钮代码: Data1. UpdateRecord |
5. 记录集的属性与方法
|
名称 |
作用 | |
|
属性 |
AbsolutePostion |
返回当前指针值,如果是第一条记录,其值为0;是只读属性 |
|
Bof / Eof |
Bof判断记录指针是否在首记录之前,若是则为True;Eof判断记录指针是否在末记录之后,若是则为True | |
|
Bookmark |
用于设置或返回当前指针的标签,可以用在在程序中重定位记录集的指针,其值采用字符串类型。 | |
|
NoMatch |
在记录集中进行查找时,如果找到相匹配的记录,则为Falue,找不到则为True。 | |
|
RecordCount |
对Recordset对象中的记录记数,为了准确起见,在记数前用MoveLast方法将记录指针移到最后一条记录上;是只读属性。 | |
|
方法 |
Move |
用于移动记录指针,共有5种方法: MoveFirst——将指针移到第1条记录 MoveLast——将指针移到最后一条记录 MoveNext——将指针移到下一条记录 MovePrevious——将指针移到上一条记录 Move n——将指针向前或向后移动n条记录 |
|
Find |
在指定的Dynaset或 Snapshop类型的Recordset对象中查找与指定条件相符的一条记录,并使之成为当前记录,共有4种方法: FindFirst——从记录集的开始查找满足条件的第1条记录 FindLast——从记录集的尾部向前查找满足条件的第1条记录 FindNext——从当前记录开始查找满足条件的下一条记录 FindPrevious——从当前记录开始查找满足条件的上一条记录 语法格式举例: Data1.Recordset.FindFirst "课程名='计算机基础' " Find方法支持通配符,默认情况下忽略大小写,可以添加说明改变默认设置: Option Compare Text (与大小写无关) Option Compare Binary (与大小写有关) 如果找不到相匹配的记录,当前记录保持在查找的始发处;如果找到了,则指针定位到该记录。 | |
|
Seek |
使用该方法必需打开表的索引,它在Table表中查找与指定索引规则相符的第一条记录,并使其成为当前记录。 语法格式举例: Data1.Recordset.Index= "课程名" Data1.Recordset.Seek "=", "计算机基础" | |
6. 利用数据控件对数据库进行增、删、改操作
|
操作项目 |
操作方法 |
注意事项 |
|
增加记录 |
1) 调用AddNew方法:Data1.Recordset. AddNew 2) 给各字段赋值:Recordset.Fields("字段名")=值或在绑定控件中直接输入内容 3) 调用Update方法,将缓冲区内的数据写入数据库: Data1.Recordset. Update 4) 调用MoveLast方法显示新记录: Data1.Recordset. MoveLast |
如果缺少第3)步而将指针移动到其他记录或关闭了记录,则所做的输入全部丢失;若没有第4)步。虽然加入了新记录,但记录指针自动返回到添加新记录前的位置上,并不显示新记录。 |
|
删除记录 |
1) 定位被删除记录使之成为当前记录(用Move或Find方法) 2) 调用Delete方法:Data1.Recordset. Delete 3) 调用MoveNext方法移动记录指针 |
使用Delete方法时,当前记录立即删除,但被数据库约束的绑定控件仍旧显示该记录的内容,故必须用第3)步刷新绑定控件。 |
|
修改记录 |
1) 调用Edit方法:Data1.Recordset. Edit 2) 给各字段赋值:在绑定控件中直接修改 3) 调用Update方法,确定所做的修改: Data1.Recordset. Update |
如果要放弃对数据的所有修改,可在第3)步之前用Refresh方法,重读数据库,刷新记录。 |