|
本帖最后由 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 |
|