Option Explicit
Dim mrc As ADODB.Recordset
Dim TxtSQL As String
Dim MsgText As String
Private Sub CmdOK_Click()
'确保查询内容对话框有内容
If Trim(Combo_name1.Text = "") Then
MsgBox "请选择首行字段符!",vbOKOnly + vbExclamation,"警告"
Combo_name1.SetFocus
Exit Sub
End If
If Trim(ComboSign1.Text = "") Then
MsgBox "请选择首行操作符","警告"
ComboSign1.SetFocus
Exit Sub
End If
If Trim(txtInquire1.Text = "") Then
MsgBox "请输入要查询的内容",vbOKOnly + vbExclamation
Exit Sub
End If
'******************************************************************************
'调用正在上机状态表
TxtSQL = "select * from Online_info where(" & Combo_name1.Tag & ComboSign1.Text & "'" & txtInquire1.Text & "'"
If ComboRelation1.Text <> "" Then '第一个条件已经选择不能为空,第二个组合字段开始
If Trim(Combo_name2.Text = "") Then '第二个组合字段若为空,则提醒
MsgBox "请选择字段!","警告"
Combo_name2.SetFocus
Exit Sub
End If
If Trim(ComboSign2.Text = "") Then
MsgBox "请选择操作符","警告"
ComboSign2.SetFocus
Exit Sub
End If
If Trim(txtInquire2.Text = "") Then
MsgBox "请输入要查询的内容!","警告"
txtInquire2.SetFocus
Exit Sub
End If
'第二个组合字段不为空,则前两个字段相互连接,都满足时才能查询出来
TxtSQL = TxtSQL & " " & ComboRelation1.Tag & " " & Combo_name2.Tag & ComboSign2.Text & "'" & txtInquire2.Text & "'"
End If
If ComboRelation2.Text <> "" Then '第一个条件已经选择不能为空,第二个组合字段开始
If Trim(Combo_name3.Text = "") Then '第二个组合字段若为空,则提醒
MsgBox "请选择字段!","警告"
Combo_name3.SetFocus
Exit Sub
End If
If Trim(ComboSign3.Text = "") Then
MsgBox "请选择操作符","警告"
ComboSign3.SetFocus
Exit Sub
End If
If Trim(txtInquire3.Text = "") Then
MsgBox "请输入要查询的内容!","警告"
txtInquire3.SetFocus
Exit Sub
End If
'第三个组合字段不为空,则三个字段相互连接,都满足时才能查询出来
TxtSQL = TxtSQL & " " & ComboRelation2.Tag & " " & Combo_name3.Tag & ComboSign3.Text & "'" & txtInquire3.Text & "'"
End If
TxtSQL = TxtSQL & ")"
Set mrc = ExecuteSQL(TxtSQL,MsgText)
If mrc.RecordCount = 0 Then
myFlexGrid.Clear
MsgBox "无记录","警告"
Exit Sub
End If
With myFlexGrid
.Rows = 1
.CellAlignment = 4
.TextMatrix(0,0) = "卡号"
.TextMatrix(0,1) = "姓名"
.TextMatrix(0,2) = "上机日期"
.TextMatrix(0,3) = "上机时间"
.TextMatrix(0,4) = "机房号"
Do While Not mrc.EOF
.Rows = .Rows + 1
.CellAlignment = 4
.TextMatrix(.Rows - 1,0) = mrc.Fields(0)
.TextMatrix(.Rows - 1,1) = mrc.Fields(3)
.TextMatrix(.Rows - 1,2) = mrc.Fields(6)
.TextMatrix(.Rows - 1,3) = mrc.Fields(7)
.TextMatrix(.Rows - 1,4) = mrc.Fields(8)
mrc.MoveNext
Loop
End With
End Sub
Private Sub Combo_name1_Click()
If Combo_name1.Text = "卡号" Then Combo_name1.Tag = "cardno"
If Combo_name1.Text = "姓名" Then Combo_name1.Tag = "studentname"
If Combo_name1.Text = "上机日期" Then Combo_name1.Tag = "ondate"
If Combo_name1.Text = "上机时间" Then Combo_name1.Tag = "ontime"
If Combo_name1.Text = "机房号" Then Combo_name1.Tag = "computer"
End Sub
Private Sub Combo_name2_Click()
If Combo_name2.Text = "卡号" Then Combo_name2.Tag = "cardno"
If Combo_name2.Text = "姓名" Then Combo_name2.Tag = "studentname"
If Combo_name2.Text = "上机日期" Then Combo_name2.Tag = "ondate"
If Combo_name2.Text = "上机时间" Then Combo_name2.Tag = "ontime"
If Combo_name2.Text = "机房号" Then Combo_name2.Tag = "computer"
End Sub
Private Sub Combo_name3_Click()
If Combo_name3.Text = "卡号" Then Combo_name3.Tag = "cardno"
If Combo_name3.Text = "姓名" Then Combo_name3.Tag = "studentname"
If Combo_name3.Text = "上机日期" Then Combo_name3.Tag = "ondate"
If Combo_name3.Text = "上机时间" Then Combo_name3.Tag = "ontime"
If Combo_name3.Text = "机房号" Then Combo_name3.Tag = "computer"
End Sub
Private Sub ComboRelation1_Click()
If ComboRelation1.Text = "与" Then ComboRelation1.Tag = "and"
If ComboRelation1.Text = "或" Then ComboRelation1.Tag = "or"
Combo_name1.Visible = True
ComboSign1.Visible = True
txtInquire1.Visible = True
ComboRelation1.Visible = True
End Sub
Private Sub ComboRelation2_Click()
If ComboRelation2.Text = "与" Then ComboRelation2.Tag = "and"
If ComboRelation2.Text = "或" Then ComboRelation2.Tag = "or"
Combo_name2.Visible = True
ComboSign2.Visible = True
txtInquire1.Visible = True
ComboRelation2.Visible = True
End Sub
Private Sub Form_Load()
'输入ComboBox控件里的内容
Combo_name1.AddItem "卡号"
Combo_name1.AddItem "姓名"
Combo_name1.AddItem "上机日期"
Combo_name1.AddItem "上机时间"
Combo_name1.AddItem "机房号"
Combo_name2.AddItem "卡号"
Combo_name2.AddItem "姓名"
Combo_name2.AddItem "上机日期"
Combo_name2.AddItem "上机时间"
Combo_name2.AddItem "机房号"
Combo_name3.AddItem "卡号"
Combo_name3.AddItem "姓名"
Combo_name3.AddItem "上机日期"
Combo_name3.AddItem "上机时间"
Combo_name3.AddItem "机房号"
ComboSign1.AddItem "="
ComboSign1.AddItem "<"
ComboSign1.AddItem ">"
ComboSign1.AddItem "<>"
ComboSign2.AddItem "="
ComboSign2.AddItem "<"
ComboSign2.AddItem ">"
ComboSign2.AddItem "<>"
ComboSign3.AddItem "="
ComboSign3.AddItem "<"
ComboSign3.AddItem ">"
ComboSign3.AddItem "<>"
ComboRelation1.AddItem "与"
ComboRelation1.AddItem "或"
ComboRelation2.AddItem "与"
ComboRelation2.AddItem "或"
End Sub
写完以后,自己总是遇到一个问题,就是实时错误'91',对象变量或with 块变量未设置
困扰了很久,还是找同学给看了一下,原来是Private Sub ComboRelation1_Click()等Click事件写成了Change,太马虎了!以后还是要细心!