数据库操作问题,困扰许久!感谢有心人帮忙!
--------------------------------------------------------第一种·····
这是个将数据保存到数据库的命令,有没有On Error Resume Next,都不会出现实时错误3705 对象打开时,不允许操作!
Private Sub Command8_Click()
'On Error Resume Next
Set Rcset = New ADODB.Recordset
If = 1 Then
Sqlstr = "select * from 第一环节 where 题目编号=" + + ""
ElseIf = 2 Then
Sqlstr = "select * from 第二环节 where 题目编号=" + + ""
End If
Rcset.Open Sqlstr, Con, adOpenStatic, adLockOptimistic
If Rcset.RecordCount > 0 Then
Rcset.MoveFirst
For i = 1 To 6
Rcset(CStr(i) & "选项(%)") = Me.Text10(i).Text
Rcset(CStr(i) & "选项(票)") = Me.Text4(i).Text
Next i
Rcset("yx") = Me.Text4(1).Text
Rcset("bchz") = Me.Text4(4).Text
Rcset("chz") = Me.Text4(2).Text
Rcset("jbcz") = Me.Text4(3).Text
Rcset("qquan") = Me.Text4(5).Text
Rcset.Update
Else
Rcset.AddNew
Rcset("题目编号") =
For i = 1 To 6
Rcset(CStr(i) & "选项(%)") = Me.Text10(i).Text
Rcset(CStr(i) & "选项(票)") = Me.Text4(i).Text
Next i
Rcset("yx") = Me.Text4(1).Text
Rcset("bchz") = Me.Text4(4).Text
Rcset("chz") = Me.Text4(2).Text
Rcset("jbcz") = Me.Text4(3).Text
Rcset("qquan") = Me.Text4(5).Text
Rcset.Update
End If
End Sub
’模块的
Public Con As ADODB.Connection
Public Rcset As ADODB.Recordset
Public Sqlstr As String '查询字符串
Public ConStr As String
Sub Main()
Set Con = New ADODB.Connection
ConStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\表决数据.mdb" & ";Persist Security Info=False"
Con.Open ConStr
Form1.Show
End Sub
----------------------------------------------
第二种情况·····
下面的哦!!!!!!
'''模块的
Public myrst As New ADODB.Recordset
Public mycon As New ADODB.Connection
//////////////////
Private Sub Command2_Click() '本过程用来加载数据
Set mycon = New ADODB.Connection''''如果隐掉此句,第一次单机按钮显示数据,第二次时就会出现
实时错误3705 对象打开时,不允许操作!不隐去则不会出现,这是为什么?????请师傅赐教
mycon.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & App.Path & "\fay.mdb;"
mycon.Open
Set myrst = New ADODB.Recordset
stron = "select * from 基本情况" '可以理解为从某中选择所有(即*)的记录
myrst.Open stron, mycon, adOpenDynamic, adLockOptimistic
'MsgBox myrst.Fields(3)
'下面用循环语句把myrst这个记录集中的数据写进flexgrid表格
With MSf
.ColWidth(0) = 200
.Row = 1
.Rows = 2
Do While Not myrst.EOF '这个循环来完成把记录集中的数据输出到mshflexgrid控件。
For i = 1 To myrst.Fields.Count - 1
.TextMatrix(.Row, i) = myrst.Fields(i) '.row用来确定是“这一行”。然后for循环写入这一行的这一行的每一个字段
Next i
.Rows = .Rows + 1
.Row = .Row + 1 '下一条记录写在msf的下一行,所以这里要把row加1
myrst.MoveNext '移动到下一条记录。
Loop
End With
End Sub
-----------------------------------------------------------------------
第三种情况······
Private Sub ConnectDatabase()
If mycon.State = 0 Then
mycon.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & App.Path & "\fay.mdb;"
mycon.Open
End If
End Sub
-----
Private Sub Command2_Click() '本过程用来加载数据
ConnectDatabase
stron = "select * from 基本情况" '可以理解为从某中选择所有(即*)的记录
If myrst.State = 1 Then '这里和mycon的判断同理
myrst.Close
End If '''''如果隐掉此if-end if句,第一次单机按钮显示数据,第二次时就会出现
实时错误3705 对象打开时,不允许操作!不隐去则不会出现,这是为什么?????请师傅赐教
myrst.Open stron, mycon, adOpenDynamic, adLockOptimistic
MsgBox myrst.Fields(3)
'下面用循环语句把myrst这个记录集中的数据写进flexgrid表格
With MSf
.ColWidth(0) = 200
.Row = 1
.Rows = 2
Do While Not myrst.EOF '这个循环来完成把记录集中的数据输出到mshflexgrid控件。
For i = 1 To myrst.Fields.Count - 1
.TextMatrix(.Row, i) = myrst.Fields(i) '.row用来确定是“这一行”。然后for循环写入这一行的这一行的每一个字段
Next i
.Rows = .Rows + 1
.Row = .Row + 1 '下一条记录写在msf的下一行,所以这里要把row加1
myrst.MoveNext '移动到下一条记录。
Loop
End With
End Sub
----------这三种情况,数据库的打开 与关闭都是怎样哦,会出现这种情况了?第一个怎么没问题啊?请各位同仁相助,不胜感激!谢谢!