第一步:
我定义了数据库查询代码中的三个变量(where 后面的全部定义成了变量,就避免一直写不同的条件了)
①字段名
②操作符
③要查询的内容
第二步:
定义好了之后,把他们定义成函数,封装,在代码中直接调用
第三步:
代码部分:
(call add 这个代码是数据的显示)
Public mrc As ADODB.Recordset
Public txtsql As String
Public msgtext As String
Private Sub cmdInquiry_Click()
Dim c(2) As Boolean '判断条件中的格子中是否有数据
'判断三个条件对应的框中是否为空
If cobField1.Text = "" Or cobSymbol1.Text = "" Or txtContent1.Text = "" Then
Else
c(0) = True
If cobField2.Text = "" Or cobSymbol2.Text = "" Or txtContent2.Text = "" Then
Else
c(1) = True
If cobField3.Text = "" Or cobSymbol3.Text = "" Or txtContent3.Text = "" Then
Else
c(2) = True
End If
End If
End If
txtsql = "select * from student_Info where "
'组合查询所有的情况
If c(2) Then
If cobRelation2.Text = "或" Then
'0 or 1 or 2
txtsql = txtsql & CField(cobField1.Text) & CSymbol(cobSymbol1.Text) & "'" & CContent(txtContent1.Text) & "'" & "or " & CField(cobField2.Text) & CSymbol(cobSymbol2.Text) & " '" & CContent(txtContent2.Text) & "'" & "or " & CField(cobField3.Text) & CSymbol(cobSymbol3.Text) & " '" & CContent(txtContent3.Text) & "'"
Set mrc = ExecuteSQL(txtsql, msgtext)
Call add
mrc.Close
Else
If cobRelation2.Text = "与" Then
'0 and 1 and 2
txtsql = txtsql & CField(cobField1.Text) & CSymbol(cobSymbol1.Text) & "'" & CContent(txtContent1.Text) & "'" & "and " & CField(cobField2.Text) & CSymbol(cobSymbol2.Text) & " '" & CContent(txtContent2.Text) & "'" & "and " & CField(cobField3.Text) & CSymbol(cobSymbol3.Text) & " '" & CContent(txtContent3.Text) & "'"
Set mrc = ExecuteSQL(txtsql, msgtext)
Call add
mrc.Close
Exit Sub
Else
MsgBox "请输入第二个组合条件"
End If
End If
Else
If c(1) Then
If cobRelation1.Text = "或" Then
'0 or 1
txtsql = txtsql & CField(cobField1.Text) & CSymbol(cobSymbol1.Text) & "'" & CContent(txtContent1.Text) & "'" & "or " & CField(cobField2.Text) & CSymbol(cobSymbol2.Text) & " '" & CContent(txtContent2.Text) & "'"
Set mrc = ExecuteSQL(txtsql, msgtext)
Call add
mrc.Close
Else
If cobRelation1.Text = "与" Then
'0 and 1
txtsql = txtsql & CField(cobField1.Text) & CSymbol(cobSymbol1.Text) & "'" & CContent(txtContent1.Text) & "'" & "and " & CField(cobField2.Text) & CSymbol(cobSymbol2.Text) & " '" & CContent(txtContent2.Text) & "'"
Set mrc = ExecuteSQL(txtsql, msgtext)
Call add
mrc.Close
Else
MsgBox "请选择组合关系"
End If
End If
Else
If c(0) Then
'0
txtsql = txtsql & CField(cobField1.Text) & CSymbol(cobSymbol1.Text) & "'" & CContent(txtContent1.Text) & "'"
Set mrc = ExecuteSQL(txtsql, msgtext)
Call add
mrc.Close
Else
MsgBox "请输入第一条件"
End If
End If
End If
End Sub
定义的函数部分:
①这是要查询内容的定义
Public Function CContent(Content As String)
If Content = txtContent1.Text Then
CContent = txtContent1.Text
Else
If Content = txtContent2.Text Then
CContent = txtContent2.Text
Else
If Content = txtContent3.Text Then
CContent = txtContent3.Text
End If
End If
End If
End Function
②这是要查询字段名的定义:
Public Function CField(FieldName As String)
Select Case FieldName
Case "卡号"
CField = "cardno"
Case "学号"
CField = "studentno"
Case "姓名"
CField = "studentname"
Case "性别"
CField = "sex"
Case "系别"
CField = "department"
Case "年级"
CField = "grade"
Case "班级"
CField = "class"
End Select
End Function
③这是操作符的定义
ublic Function CSymbol(Symbol As String)
Select Case Symbol
Case "="
CSymbol = "="
Case ">"
CSymbol = ">"
Case "<"
CSymbol = "<"
Case "<>"
CSymbol = "<>"
End Select
End Function