vba mysql查询数组中_VBA中典型的查询数据库及相关命令代码 | 雷雨博客

本文介绍了如何使用VBA进行MySQL数据库查询,包括获取记录总数、筛选查询、登陆验证、窗体间数据传递以及添加新记录的操作。示例代码详细展示了不同场景下的应用,如设置RecordSource、DLookup函数的使用以及ADODB对象的交互。
摘要由CSDN通过智能技术生成

请参考:https://docs.microsoft.com/zh-cn/office/vba/api/overview/access

1.下述代码可以查询读者表里总记录条数

Dim cnn As Object

Dim rs As Object

Set cn = CreateObject("ADODB.Connection")

Set rs = CreateObject("ADODB.Recordset")

Set cnn = CurrentProject.Connection

rs.Open "select * from 读者表", cnn, 1, 3

Debug.Print "教师共" & rs.RecordCount '在立即窗口中显示结果

rs.Filter = "文化程度='高中' " '添加了筛选条件

Do Until rs.EOF

Debug.Print rs("姓名"), rs("文化程度")

rs.MoveNext

Loop

Debug.Print "男教师共" & rs.RecordCount '在立即窗口中显示结果

rs.Close

cnn.Close

Set rs = Nothing

Set cnn = Nothing

2.如果一个表两个字段分别是用户名和密码,想制作登陆界面,如下,登陆按钮代码:

If Me.txtPassword = DLookup("密码", "读者表", "用户名='" & Me.txtUserName & "'") Then

Me.Visible = False '隐藏登录窗体

DoCmd.OpenForm "管理系统界面" '打开主窗体

Else

MsgBox "密码不正确,请重新输入!", vbInformation '提示重新输入密码

Me.txtPassword.SetFocus '将焦点移到密码框

End If

3.关闭当前窗体,且打开另一个窗体

Private Sub Com_Btn_Click()

DoCmd.Close

DoCmd.OpenForm "主窗体"

End Sub

4.一个文本框,一个按钮,查询出相应内容,在文本框输入一个姓名,可以查询到该姓名对应的记录

Private Sub Btn_So_Click()

strNewRecord="select * from [读者表] where [姓名]='"& Me!Text0.value & "' "

Me.RecordSource=strNewRecord

End Sub

如果仅使登录的用户打开的窗体,看到的是自己的记录的话,需要在窗体间传递参数,可以这样实现,

第一,在数据库中创建一个模块,在模块中定义一个全局变量:

Public x$

第二,在登录成功的代码中为X赋值:

x=Me.user

第三,在将要打开的窗体的加载事件中设置新的记录源:

Me.RecordSource="select * from [读者表] where [姓名]='" & x & "'"

5.通过两个文本框向图书表中添加一条记录

Dim cnn As Object

Dim rs As Object

Set cn = CreateObject("ADODB.Connection")

Set rs = CreateObject("ADODB.Recordset")

Set cnn = CurrentProject.Connection

rs.Open "select * from 图书表", cnn, 1, 3

If Me.Text2 <> "" And Me.Text4 <> "" Then

rs.AddNew

rs("编号") = Me.Text2

rs("书名") = Me.Text4

rs.Update

MsgBox "添加成功"

Else

MsgBox "编号或者书名没有填写"

End If

'释放系统数据集

rs.Close

cnn.Close

Set rs = Nothing

Set cnn = Nothing

建立运行环境-Excel Vba,可移植到VB环境(需修改一些代码) '仿制简单的SQL查询语句,用于对二维数组查询 '参照SQL语句:Select * From array [Where conditions] [Distinct fields] [ResultWithTitle] ' '实现功能: ' 依条件设置查询数组,返回包含查询字段(或全部字段)的数组,可多条件组合。 ' 条件运算符包括:> = < >= <= <> , like(正则表达式) ' '附注: ' 使用此函数,需要在文件引用正则表达式脚本 Microsoft VBScript Regular Expressions x.x ' (根据不同的电脑配置和环境此处会有差异) '算法简要: ' 1、查询条件运算符:仅有 >, =, <, >=, <=, <> , like(正则表达式) ' 本函数仅有上述运算符。原因在于,更多的运算符编制逻辑过于复杂,又不太常用。 ' 为了尽可能多地容纳各种运算关系,添加了正则表达式匹配运算, ' 在某个单一条件,正则几乎可以容纳绝大部分的比对运算关系了。 ' 2、数字比较: ' 采用了将数字型字符串类型转换为数字之后再比较的方法,结果更为准确。 ' 3、其他算法和运算速度: ' 编制过程,试验过使用 正则+逻辑分支+表达式引用 的方法, ' 可以实现几乎等同于SQL查询语句的复杂功能,而且代码更简捷。 ' 但运算速度相差过于悬殊(大概几十到上百倍 - "一闪而过"和"一袋烟"的差距!),最后不得不放弃。 ' 所以现在的版本相当于一个简化了的select语句,但对于大多数查询情况而言够用了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值