我想修改数据库中的记录,但是提示我的连接记录类型不支持update,我试过用
rs.open str,conn,3,3代替Set rs = conn.Execute(str),但是系统报:时实错误91,对象变量或with块变量未设置,我不知道为何,请高手帮我看看!如何修改!!最好代码!!!谢谢!!
'修改数据库记录
Private Sub Modification(ByVal itemno As String)
Dim conn As ADODB.Connection '定义ADO链接conn
Dim rs As ADODB.Recordset '定义ADO记录集rs
Dim str As StringIf CheckInput = True Then '检查输入是否合乎要求Set conn = New ADODB.Connection '初始化conn,否则会出错
conn.Open "driver={Microsoft Access Driver (*.mdb)};pwd='';dbq=d:\shcandle\shcandle"str = "select * from candle where ItemNo = '" & itemno & "'"Set rs = conn.Execute(str)rs("Description") = Text_Description.Text
。。
。
。
rs("PicLink") = Text_PicLink.Text
rs.Updaters.Close
conn.Close
Unload Me
rs.open str,conn,3,3代替Set rs = conn.Execute(str),但是系统报:时实错误91,对象变量或with块变量未设置,我不知道为何,请高手帮我看看!如何修改!!最好代码!!!谢谢!!
'修改数据库记录
Private Sub Modification(ByVal itemno As String)
Dim conn As ADODB.Connection '定义ADO链接conn
Dim rs As ADODB.Recordset '定义ADO记录集rs
Dim str As StringIf CheckInput = True Then '检查输入是否合乎要求Set conn = New ADODB.Connection '初始化conn,否则会出错
conn.Open "driver={Microsoft Access Driver (*.mdb)};pwd='';dbq=d:\shcandle\shcandle"str = "select * from candle where ItemNo = '" & itemno & "'"Set rs = conn.Execute(str)rs("Description") = Text_Description.Text
。。
。
。
rs("PicLink") = Text_PicLink.Text
rs.Updaters.Close
conn.Close
Unload Me
rs.open trim(str), conn, adOpenKeyset, adLockBatchOptimistic, 1建立楼主要定义变量时最好不要用函数名。str()这个函数是将number转换成string.
提示为:时实错误91,对象变量或with块变量未设置请大家帮忙给我看看,可能问题处在哪里?是哪里没有设置好吗?着急!!!!
这里出错
应该是具体的数据库,不支持 *.mdb
Dim StrConnect As String
StrConnect = "Provider=Microsoft.Jet.OLEDB.4.0; " _
& "Data Source=" & App.Path & "\dbName.mdb;Persist " _
& "Security Info=False;Jet OLEDB:Database Password=abc"
Set Conn = New ADODB.Connection
Conn.Open StrConnect
Dim rs As ADODB.Recordset '定义ADO记录集rs
Dim str As String
dim DatabasePath as string
If CheckInput = True Then '检查输入是否合乎要求
DatabasePath ="d:\shcandle\shcandle.MDB"
Set conn = New ADODB.Connection '初始化conn,否则会出错
'密码为空
conn.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & DatabasePath &";Persist Security Info=False"str = "select * from candle where ItemNo = '" & itemno & "'"rst.Open Trim$(str), conn, adOpenKeyset, adLockOptimisticrs("Description") = Text_Description.Text
。。
。
。
rs("PicLink") = Text_PicLink.Text
rs.Updaters.Close
conn.Close
Unload Me
运行VB,选择“工程\引用”命令,引用“Microsoft AetiveX Date 2.x Library”。将以下代码贴到按钮事件中试试:Private Sub cmdUpdate_Click()
Dim conn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim Str As String Set conn = New ADODB.Connection
Str = "Provider=Microsoft.Jet.OLEDB.4.0; " _
& "Data Source = d:\shcandle\shcandle.mdb;Persist " _
& "Security Info=False;Jet OLEDB:Database Password=abc"
Set Conn = New ADODB.Connection
Conn.Open Str Str = "Select * From candle Where ItemNo = '" & itemno & "'"
Set rs = New ADODB.Recordset
rs.Open Str, Conn, adOpenKeyset, adLockOptimistic If rs.RecordCount = 0 Then
MsgBox "没有相关数据"
Exit Sub
End if
rs!Description = Trim(Text_Description.Text)
......
rs!PicLink = Text_PicLink.Text
rs.Update rs.Close
conn.Close
End sub
Private Sub Modification(ByVal itemno As String)
Dim conn As ADODB.Connection '定义ADO链接conn
Dim rs As ADODB.Recordset '定义ADO记录集rs
Dim strSQL As StringIf CheckInput = True Then '检查输入是否合乎要求Set conn = New ADODB.Connection '初始化conn,否则会出错
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\shcandle\shcandle"strSQL = "select * from candle where ItemNo = '" & itemno & "'"Set rs = New ADODB.Recordset '建立对象rs.Open strSQL, conn
'Set rs = conn.Execute(str) '这样得到的行集合是不能更新的rs.Fields("Description") = Text_Description.Text
。。
。
。
rs.Fields("PicLink") = Text_PicLink.Text
rs.Updaters.Close
conn.Close
Unload Me