最近在帮同学写数据库的课程设计,顺手整理了一些VB编程与连接数据库的笔记。
新手入门,请多包涵。
目录
ADO控件连接数据库
使按钮不可用
加载隐藏显示关闭窗体
调用其他窗体的对象
文本框输入密码变 *
退出程序
弹出消息框
判断语句
强制跳转
全局变量
一、ADO控件连接数据库
- 加载ADO部件
“工程”->“部件”(或者Ctrl+T),然后选择以下插件,然后“应用”+“确定”
- 添加引用
“工程”->“引用”,选择插件Microsoft ActiveX Data Object 2.5 Library,“应用”+“确认”
- 生成链接命令
部件添加成功后,左侧的控件栏就能看到这个图标
用这个控件在界面任意一处画出一个控件实例
右键该实例,选择Adobc属性,点击生成,选择“Microsoft OLE DB Provider for SQL Server”->“下一步”,服务器名称在刷新之后可以直接选择(我的是本地的数据库,远程的不太懂),可以直接选择连接到某个数据库(如图),测试链接通过后“确定”,最后把“连接字符串”全部拷贝出来,然后把控件删了。是的,我们仅仅是要那个字符串而已。
- 代码链接部分
然后,在代码连接部分可以粘贴上如下代码,注意注释
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim strCon As String
Set cn = New ADODB.Connection
strCon = "。。。" '填写连接字符串,可选将 Data Source=127.0.0.1 换进去
cn.ConnectionString = strCon
cn.Open '数据库打开成功
Dim SQL As String
SQL = "。。。" '填写SQL查询命令
rs.Open SQL, cn, 1, 1
解释一下:
cn(ADODB.Connection)代表数据库对象,rs(ADODB.Recordset)代表查询结果的游标(即查询结果中的一行记录)。如果需要查询行数,游标必须是静态的,即rs.Open SQL, cn, 1, 1
中的第一个1必学改为3(1是只读,2是动态,3是静态)
补充:
- 直接执行SQL命令
cn.Execute (SQL)
- 若添加了DataGrid控件,并在窗体中画出了一个实例,则可以将Recordset对象实例(rs)中的内容直接显示在其中。
rs.Open SQL, cn, 3, 1
Set DataGrid1.DataSource = rs
DataGrid1.Refresh
- DataGrid对象调整列宽
For Col = 0 To DataGrid1.Columns.Count - 1
DataGrid1.Columns(Col).Width = 2300
Next Col
- DataGrid对象隐藏某列(0列)
DataGrid1.Columns(0).Visible = False
附上Recordset的基本操作表
rs.RecordCount:查询结果的行数
rs(i).Name:第i个字段的名称,i为0至rs.Fields.Count-1
rs(i):第i个字段的数据,i为0至rs.Fields.Count-1
rs(“字段名”):指定字段的数据。
rs.EOF:是否最后一条记录。
rs.MoveFirst:指向第一条记录。
rs.MoveLast:指向最后一条记录。
rs.MovePrev:指向上一条记录。
rs.MoveNext:指向下一条记录。
rs.Move n:跳转n行,n大于0向下,n小于0向上
rs.GetRows:将数据放入数组中。
rs.Properties.Count:ADO的ResultSet或Connection的属性个数。
rs.Properties(item).Name:ADO的ResultSet或Connection的名称。
rs.Properties:ADO的ResultSet或Connection的值。
rs.close():关闭连接。
二、使按钮不可用
若Form中有一个按钮实例名为Button
则使其不可用(变灰)的方式为Button.Enable = False
将其回复为可用(可点击)的方式为Button.Enable = True
三、加载隐藏显示关闭窗体
操作 | 命令 | 备注 |
---|---|---|
加载窗体 | Load Form1 | 窗体会被加载,但是不会被显示 |
卸载窗体 | Unload Form1 | 窗体会被关闭 |
显示窗体 | Form1.Show | 窗体会被显示出来 |
隐藏窗体 | Form1.Hide | 窗体会被隐藏,但是还在内存中 |
四、调用其他窗体的对象
若想调用其他窗体中的实例,前提条件是窗体必须已经加载,但是不必显示出来。
调用其他窗体中的实例的方式和调用本窗体中的方式类似,只需要在实例名前加上窗体名。
例如From1
窗体中有一个Button
,则可以有类似
Form1.Button.Enable = True
和Form1.Button.Enable = False
等方式。
五、文本框输入密码变*
如图红色箭头处,可填任意字符
六、退出程序
代码中调用End
,即可结束程序。
七、弹出消息框
语法MsgBox "内容",样式,"标题"
- 普通消息框
MsgBox("内容",,"标题")
- 判断型标题栏
Dim msg As Integer
msg = MsgBox("内容", vbYesNo, "标题")
If msg = vbYes Then
'...
End If
附消息框样式参数对应列表
按钮类型 | 对应数值 | 描述 |
---|---|---|
vbOKOnly | 0 | 只显示 OK 按钮。 |
VbOKCancel | 1 | 显示 OK 及 Cancel 按钮。 |
VbAbortRetryIgnore | 2 | 显示 Abort、Retry 及 Ignore 按钮。 |
VbYesNoCancel | 3 | 显示 Yes、No 及 Cancel 按钮。 |
VbYesNo | 4 | 显示 Yes 及 No 按钮。 |
VbRetryCancel | 5 | 显示 Retry 及 Cancel 按钮。 |
VbCritical | 16 | 显示 Critical Message 图标。 |
VbQuestion | 32 | 显示 Warning Query 图标。 |
VbExclamation | 48 | 显示 Warning Message 图标。 |
VbInformation | 64 | 显示 Information Message 图标。 |
八、判断语句
If ... Then
...
Else If
...
End If
九、强制跳转
标记Ending:
跳转命令Goto Ending
十、全局变量
将代码书写区域调为通用,将声明变量的Dim换为Public键入即可
例如Public k As Integer
———————————————–
项目比较小,没有用多少高级的东西。
非专业VB编程人士,望高手谅解。