vb实时错误3021
请帮我看看代码错哪里?挺乱的Public combo As String
Private Sub Command1_Click(Index As Integer)
Dim ConStr As String
Dim cn As Connection
Dim rs As Recordset
Dim rs1 As Recordset
Dim rs2 As Recordset
Dim rs3 As Recordset
Set cn = New ADODB.Connection
Set rs = New ADODB.Recordset
Set rs1 = New ADODB.Recordset
Set rs2 = New ADODB.Recordset
Set rs3 = New ADODB.Recordset
ConStr = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & App.Path & "\ttj02.Mdb"
cn.Open ConStr
cn.CursorLocation = adUseClient
rs.Open "Select * from zhuti", cn, adOpenStatic, adLockReadOnly
rs1.Open "Select * from keti", cn, adOpenStatic, adLockReadOnly
Dim s, o, level1, level2, depart1, depart2 As String
s = frmlogin.UserType
o = combo
rs2.Open "Select * From zhuti Where zhiwu= '" & s & "'", cn, adOpenStatic, adLockReadOnly
rs3.Open "Select * From keti Where ziliao= '" & o & "'", cn, adOpenStatic, adLockReadOnly
'level1 = "SELECT * FROM zhuti WHERE zhiwu='" & s & "'"
'level2 = "SELECT * FROM keti WHERE zhiliao='" & o & "'"
level1 = rs2("degree1")
level2 = rs3("degree1")
depart1 = rs2("bumen1")
depart2 = rs3("bumen1")
Do While Not rs.EOF
If depart1 <> depart2 Then
MsgBox "你没有权限!", vbExclamation + vbOKCancel, "错误"
ElseIf level1 < level2 Then
MsgBox "你没有权限!", vbExclamation + vbOKCancel, "错误"
If level1 >= level2 Then
MsgBox "你有权限!", vbExclamation + vbOKCancel, "提示"
Form2.Show
Unload Me
Exit Sub
End If
End If
Loop
rs.Close
rs1.Close
rs2.Close
rs3.Close
Set rs = Nothing
Set rs1 = Nothing
Set rs2 = Nothing
Set rs3 = Nothing
End Sub
Private Sub Command2_Click(Index As Integer)
Dim ConStr As String
Dim cn As Connection
Dim rs As Recordset
Dim rs1 As Recordset
Dim rs2 As Recordset
Dim rs3 As Recordset
Set cn = New ADODB.Connection
Set rs = New ADODB.Recordset
Set rs1 = New ADODB.Recordset
Set rs2 = New ADODB.Recordset
Set rs3 = New ADODB.Recordset
ConStr = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & App.Path & "\ttj02.Mdb"
cn.Open ConStr
cn.CursorLocation = adUseServer
rs.Open "Select * from zhuti", cn, adOpenStatic, adLockReadOnly
rs1.Open "Select * from keti", cn, adOpenStatic, adLockReadOnly
Dim s, o, level1, level2 As String
s = frmlogin.UserType
o = Form1.combo
rs2.Open "Select * From zhuti Where zhiwu= '" & s & "'", cn, adOpenStatic, adLockReadOnly
rs3.Open "Select * From keti Where ziliao= '" & o & "'", cn, adOpenStatic, adLockReadOnly
'level1 = "SELECT * FROM zhuti WHERE zhiwu='" & s & "'"
'level2 = "SELECT * FROM keti WHERE zhiliao='" & o & "'"
level1 = rs2("degree1")
level2 = rs3("degree1")
depart1 = rs2("bumen1")
depart2 = rs3("bumen1")
Do While Not rs.EOF
If depart1 <> depart2 Then
MsgBox "你没有权限!", vbExclamation + vbOKCancel, "错误"
ElseIf level2 < level1 Then
MsgBox "你没有权限!", vbExclamation + vbOKCancel, "错误"
If level2 >= level1 Then
MsgBox "你有权限!", vbExclamation + vbOKCancel, "提示"
Form2.Show
Unload Me
Exit Sub
End If
End If
Loop
rs.Close
rs1.Close
rs2.Close
rs3.Close
Set rs = Nothing
Set rs1 = Nothing
Set rs2 = Nothing
Set rs3 = Nothing
End Sub
Private Sub Form_Load()
With Combo2(0)
.AddItem "生产部交总经理资料"
.AddItem "生产部交经理资料"
.AddItem "生产部交主管资料"
.AddItem "生产部一般资料"
End With
With Combo3(1)
.AddItem "销售部交总经理资料"
.AddItem "销售部交经理资料"
.AddItem "销售部交主管资料"
.AddItem "销售部一般资料"
End With
With Combo4(2)
.AddItem "采购部交总经理资料"
.AddItem "采购部交经理资料"
.AddItem "采购部交主管资料"
.AddItem "采购部一般资料"
End With
With Combo5(3)
.AddItem "生产部交总经理资料"
.AddItem "生产部交经理资料"
.AddItem "生产部交主管资料"
.AddItem "生产部一般资料"
End With
combo = Left(Combo2(0).Text, 12)
combo = Left(Combo3(1).Text, 12)
combo = Left(Combo4(2).Text, 12)
combo = Left(Combo5(3).Text, 12)
End Sub
错误字段:level2 = rs3("degree1")
depart2 = rs3("bumen1")
--------------------编程问答-------------------- 赋值以前要判断记录集是否有数据返回 --------------------编程问答-------------------- 那要怎么写代码呢? --------------------编程问答-------------------- 错误提示在哪一句处?? --------------------编程问答-------------------- level2 = rs3("degree1") --------------------编程问答-------------------- 如果确是因为没有记录集返回造成的错误:
if not rs3.eof then
level2 = rs3("degree1")
depart2 = rs3("bumen1")
...
end if --------------------编程问答-------------------- if (not rs3.eof) and (not rs3.bof) then
level2 = rs3("degree1")
depart2 = rs3("bumen1")
'.......
end if --------------------编程问答-------------------- 新记录集尚未迁移,5 楼代码足矣。 --------------------编程问答-------------------- 如果我这么写了还是错呢?会不会有可能没连上数据库? --------------------编程问答-------------------- 已经没有那个错误了,可按下按键后一点反应都没有,是我循环语句错了吗? --------------------编程问答-------------------- level1 = rs2("degree1")
语句没错,就说明连接是成功的!
....
如果我这么写了还是错呢?会不会有可能没连上数据库?
你不试怎么知道!!!!! --------------------编程问答-------------------- If rs3.BOF And rs3.EOF Then '如果为空
level2 = 0
Else '如果不为空
level2 = rs3("degree1")
End If
我这样写现在不报错了,可是按按键怎么什么反应都没有?代码哪里错了 --------------------编程问答-------------------- lz要干嘛?
补充:VB , 数据库(包含打印,安装,报表)