机房收费系统—组合查询
2013-11-16 20:05
309 查看
机房收费系统终于把最基本的完成了,“报表”一词早就听说了,但是一直都很好奇,确距离很远吗,因为自己进度慢了一大拍,今天完成了所有的组合窗体,因为逻辑搞不清楚,总是胡乱写一套,一个上机状态查询组合窗体,整整写了一周,但是庆幸的是,一个写完。另外几个也就很容易的完成了,只要稍加修改一下调用的数据库表和组合选项就OK了!
机房收费系统组合查询(例:上机状态查询)
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 "请选择首行操作符", vbOKOnly + vbExclamation, "警告" 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 "请选择字段!", vbOKOnly + vbExclamation, "警告" Combo_name2.SetFocus Exit Sub End If If Trim(ComboSign2.Text = "") Then MsgBox "请选择操作符", vbOKOnly + vbExclamation, "警告" ComboSign2.SetFocus Exit Sub End If If Trim(txtInquire2.Text = "") Then MsgBox "请输入要查询的内容!", vbOKOnly + vbExclamation, "警告" 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 "请选择字段!", vbOKOnly + vbExclamation, "警告" Combo_name3.SetFocus Exit Sub End If If Trim(ComboSign3.Text = "") Then MsgBox "请选择操作符", vbOKOnly + vbExclamation, "警告" ComboSign3.SetFocus Exit Sub End If If Trim(txtInquire3.Text = "") Then MsgBox "请输入要查询的内容!", vbOKOnly + vbExclamation, "警告" 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 "无记录", vbOKOnly + vbExclamation, "警告" 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,太马虎了!以后还是要细心!