Office中国论坛/Access中国论坛
标题:
这些代码如何在Access2007中运行?
[打印本页]
作者:
xyz66z
时间:
2012-11-27 16:39
标题:
这些代码如何在Access2007中运行?
本帖最后由 xyz66z 于 2012-11-27 16:42 编辑
下面的代码在Access2003中运行正常。
目的是把名为“autoNum.mdb”的数据库中一个叫“商品单价”的表的“单价”全部九折计算。
然而用Access2007,数据库文件名为:“autoNum.accdb”,其他数据表、窗体等相同,
只是把下面的代码中的“strConn = CurrentProject.Path & "\autoNum.mdb"”改成:
“strConn = CurrentProject.Path & "\autoNum.accdb"”,即出现“不可识别的数据库类型”提示。
因此,特请教各位老师:
一、下面的代码如何更改才能在Access2007中运行?
二、执行这些代码,要在VB编辑界面——“工具”——“引用”中选择哪些内容?
谢谢
' 声明1个事件过程,当命令按钮单击时执行
Private Sub Command0_Click()
' 声明1个Connection对象变量,用来连接数据库
Dim cn As New ADODB.Connection
' 声明1个Recordset对象变量,用来获取数据库数据
Dim rs As New ADODB.Recordset
' 声明1个Field对象变量,用来读取表字段
Dim fd As ADODB.Field
' 声明1个字符串变量,用来存储数据库文件路径
Dim strConn As String
' 声明1个字符串变量,用来存储SQL语句
Dim strSql As String
' 读取数据库路径,CurrentProject.Path表示当前路径
strConn = CurrentProject.Path & "\autoNum.mdb"
' 引用调用数据库方法
cn.Provider = "Microsoft.Jet.OLEDB.4.0"
' 打开数据库连接
cn.Open strConn
' 赋予SQL语句
strSql = "select 单价 from 商品单价"
' 从Recordset对象中打开数据库
rs.Open strSql, cn, adOpenDynamic, adLockOptimistic, adCmdText
' 读取Recordset对象中的“单价”字段
Set fd = rs.Fields("单价")
' 循环读取“单价”字段所有的值
Do While Not rs.EOF
' 修改“单价”字段所有的值
fd = fd * 0.9
' 修改成功
rs.Update
' 读取下一条记录
rs.MoveNext
Loop
' 关闭Recordset对象
rs.Close
' 关闭Connection对象
cn.Close
End Sub
作者:
tmtony
时间:
2012-11-27 16:53
只要引用ADO 即可(2.1 2.5 2.7 2.8均可)
作者:
xyz66z
时间:
2012-11-27 17:15
谢谢你对我第二个问题的解答。
还想麻烦你们帮我解答第一个问题:
把代码中的“strConn = CurrentProject.Path & "\autoNum.mdb"”改成:
“strConn = CurrentProject.Path & "\autoNum.accdb"”,即出现“不可识别的数据库类型”的提示。
如何更改才能在Access2007中运行?
作者:
yodong
时间:
2012-11-27 19:39
autoNum.accdb
数据库不用改名
作者:
yodong
时间:
2012-11-27 19:39
除非你用2007打开.另存为ACCdb格式
作者:
xyz66z
时间:
2012-11-28 10:11
本帖最后由 xyz66z 于 2012-11-28 10:15 编辑
有老师提出把:cn.Provider = "Microsoft.Jet.OLEDB.4.0"
更改为:
cn.Provider = "Microsoft.ACE.OLEDB.12.0;Data Source=..\\db.accdb
ersist Security Info=False;"
经测试,更改后,可以在access2007中运行。
作者:
xyz66z
时间:
2012-11-28 10:24
现在的问题是,下面的语句还不够完善:
cn.Open strConn
因为时常出现“运行时错误'-2147467259(80004005)':数据库被用户设置为锁定或不能打开的状态”。
再次请求各位老师指点,谢谢!
欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/)
Powered by Discuz! X3.3