当前位置: 首页 > article >正文

vb6与access数据库交互常见问题——未完待续

vb6.0作为一款已经过时的编程语言,虽然使用的人不多,但是还是要总结下一些常见错误:


以vb6.0中文企业版与access数据库的交互为例子来讲解其中可能会碰到的坑↓↓↓

目录

    • 1.连接access数据库
    • 2.Dim Rs As New ADODB.Recordset用户定义类型未定义
    • 3.combox组件怎么添加选项以及获取当前选项
    • 4.insert into语法错误问题
    • 5.未定义的变量错误
    • 6.两个窗口之间的切换和传递数据
    • 7.access数据库使用模糊搜索
    • 8.执行sql语句错误
    • 9.vb6与access交互时不能使用模糊查询
    • 10.在access中使用sql命令执行
    • **未完待续**

1.连接access数据库

以DataGrid组件显示为例(添加组件方法:左边工具栏右键添加组件,找到并添加)

	Dim Cnn As New ADODB.ConnectionDim Rs As New ADODB.RecordsetDim ConnStr As StringConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= C:\Users\st21\Desktop\plane_v3.mdb"Cnn.Open ConnStrCnn.CursorLocation = adUseClientsql = "select * from plane_v3 order by [" & Combobox1.Text & "] desc"Rs.Open sql, Cnn, adOpenKeyset, adLockPessimisticSet DataGrid1.DataSource = Rs

2.Dim Rs As New ADODB.Recordset用户定义类型未定义

直接在“工程|引用”中添加“Microsoft ActiveX Data Object [版本号,比如2.8等] Library”就可以了

3.combox组件怎么添加选项以及获取当前选项

(1)添加选项:

combox.ADDItem("第二个选项")

(2)获取当前选项

combox.text

4.insert into语法错误问题

解决办法:
查看字段名,查看字段类型
在vb中与access交互,字符类型需要加上‘(单引号)
eg:(上未修改,下修改后)

If t1.Text = "" Or t2.Text = "" Or t3.Text = "" Thena = MsgBox("不能为空!", 0, "提示")ElseIf t2.Text = t3.Text Thensql = "insert into users(user_name,pwd) values(" + t1.Text + ",'" + t2.Text + "')"Set Rs = Cnn.Execute(sql)a = MsgBox("注册成功!", 0, "提示")Elsea = MsgBox("两次输入的密码不同,请重新输入!", 0, "提示")End IfEnd If

If t1.Text = "" Or t2.Text = "" Or t3.Text = "" Thena = MsgBox("不能为空!", 0, "提示")ElseIf t2.Text = t3.Text Thensql = "insert into users(user_name,user_pwd) values('" + t1.Text + "','" + t2.Text + "')"Set Rs = Cnn.Execute(sql)a = MsgBox("注册成功!", 0, "提示")Elsea = MsgBox("两次输入的密码不同,请重新输入!", 0, "提示")End IfEnd If

5.未定义的变量错误

eg:

a =  MsgBox("注册成功!", 0, "提示")

以上会出现错误,通常解决办法时在上面定义下使用的变量,如下

dim a as string
a =  MsgBox("注册成功!", 0, "提示")

6.两个窗口之间的切换和传递数据

(1)切换

eg:
窗口一:form1
窗口二:form2


窗口一切换窗口二

'from1
me.hide
form2.show

(2)传递数据

①在模块文件(Module)中声明一个全局公共变量,然后在其他窗体中就可以通过这个变量来存取数据了,如:
在模块文件中声明变量a
Public a as string
在Form1中给a赋值
a="您好!"
在Form2中读取a
msgbox a
②在要传递数据的那个窗口声明一个模块级的全局变量,然后在其他窗体中就可以通过这个变量(要加上窗体名的引用)来存取数据了,如:
在Form1中声明变量a及赋值
Public a As String
Private Sub Form_Load()
a = "你好!"
End Sub
在Form2中读取a
msgbox Form1.a
③利用各个窗体中的控件属性来传递数据,如:
让Form2的Label1的显示内容和Form1的Label1一样
Form2.Label1.Caption = Form1.Label1.Caption

7.access数据库使用模糊搜索

与mysql数据库不同,access数据库使用*来作为通配符
eg:

sql = "select * from plane_v3 where [系列] like " + "'*" & Text2.Text & "*'"

8.执行sql语句错误

一般提示,未找到数据或是报错
解决方法:
查看access数据表中的字段名(有些为保留字段,例如user),1.修改字段名,2.加上[]
eg:(上为修改前,下为修改后)

sql = "select * from plane_v3 where user like " + "'*" & Text2.Text & "*'"
sql = "select * from plane_v3 where [user] like " + "'*" & Text2.Text & "*'"

9.vb6与access交互时不能使用模糊查询

access支持的模糊语句:

select * from xxx where id like *12* ;

sql-server支持的模糊语句:

select * from xxx where id like %12% ;
select * from xxx where name like "%tom%" ;

问题描述,在access数据表中可以运行sql命令,但是在vb中无法显示结果:
解决办法:将access数据表的搜索模式改成 支持ANSI-92模式

以access为例:
单击文件–选项–对象设计器–设置成支持ANSI-92
在选择文件—压缩并修复即可在vb6中使用模糊查询
在这里插入图片描述

10.在access中使用sql命令执行

以access2010为例:
选中一个数据表单击上方的查询设计–选择表–单击右下角的sql—点击运行即可
在这里插入图片描述


暂时只能想到这些问题,有问题的同志可以在评论下留言,我会帮忙解答。

未完待续

http://www.lryc.cn/news/2413885.html

相关文章:

  • activity 的requestCode和resultCode
  • 我的感想十二
  • 能上QQ不能上网的解决方法
  • 实习技术员的基本功(二)
  • 微信表白神秘代码!快发给ta!
  • WIN2003通用GHOST封装教程详解
  • 51单片机学习:独立按键实验
  • android 7.0 iso下载地址,iOS 7.0固件 全系列官方正式版下载地址
  • QQ第三方登录的详细教程
  • Linux操作系统——类UNIX系统
  • 知识付费网课项目有什么好处?
  • 常用网址
  • Smtp/POP3邮箱服务器地址和端口总结(163/126/QQ)
  • java实战demo_JAVA实战
  • pointer(指针)- 重置版
  • 热门的网络营销需求人才
  • Dalvik 和 ART 有什么区别?深扒 Android 虚拟机发展史,真相却出乎意料!
  • 五笔输入法学习
  • Outlook express 报错
  • 完整网页下载,使用webzip
  • 《天引》读书笔记——由新月形面积引发的人类长达2000年的探索。
  • ubuntu在线音乐播放器
  • 新版全图、T人工具 过 浩方 VS 掌门人 三大平台 即Breeze's MH V2.0正式版 0917 发布
  • 计算机毕业设计 jsp通用权限管理系统mysql 毕设
  • QQ被盗的自救、事故分析
  • 拓扑--代数拓扑1
  • NPN PNP SS8050 SS8550 S8050
  • linux下查看chm文件
  • 解决Warning: Cannot modify header information - headers already sent by的方法
  • win10关闭445端口