level 1
mrhomesicks
楼主
以下是窗体和代码

代码
Dim fld
Dim rs As New ADODB.Recordset
Private Sub Command1_Click()
Dim myval As String
If Combo1.Text = "" Then
MsgBox "系统不允许字段名称为空!", , "提示窗口"
Exit Sub
End If
If Combo2.Text = "" Then
MsgBox "系统不允许运算符为空!", , "提示窗口"
Exit Sub
End If
If Text1.Text = "" Then
MsgBox "系统不允许关键字为空", , "提示窗口"
Exit Sub
End If
rs.Open tb1, cnn, adOpenKeyset, adLockOptimistic
Select Case rs.Fields(Combo1.ListIndex).Type
Case 202, 200
If Combo2.Text = "like" Then
myval = "like+*%*+*" & Text1 & "*+*%*"
Else
myval = Combo2 & "*" + Text1 + "*"
End If
Case 7, 135
If Combo2.Text = "like" Then
MsgBox "日期型数据不能选用“Like”作为运算符!", , "提示窗口"
Combo2.ListIndex = 1
End If
If IsDate(Text1) = False Then
MsgBox "请输入正确日期!", , "提示窗口"
rs.Close
Exit Sub
End If
myval = Combo2 & "*" + Text1 + "*"
Case 131, 3, 6
If IsNumeric(Text1) = False Then
MsgBox "请输入正确数据!", , "提示窗口"
rs.Close
Exit Sub
End If
If Combo2.Text = "like" Then
MsgBox "数字数据不能选“Like”作为运算符!"
Combo2.ListIndex = 1
End If
myval = Combo2 & Text1
Case 11
If Text1 <> 0 Or Text1 <> 1 Then
MsgBox "只能输入0 或 1!", , "提示窗口"
rs.Close
Exit Sub
End If
End Select
If List1.ListCount > 0 Then
If Option1.Value = False And Option2.Value = False Then
MsgBox "必须选择一个逻辑值!", , "提示窗口"
Option1.Value = True
End If
If Option1.Value = True Then
List1.AddItem Option1.Tag & " " & tb1 & "." & Combo1 & " " & myval
End If
If Option2.Value = True Then
List1.AddItem Option2.Tag & " " & tb1 & "." & Combo1 & " " & myval
End If
Else
List1.AddItem tb1 & "." & Combo1 & " " & myval
End If
Command3.Enabled = True
Command2.Enabled = True
rs.Close
End Sub
Private Sub form_load()
rs.Open tb1, cnn, adOpenKeyset, adLockOptimistic
Set fld = rs.Fields
For Each fld In rs.Fields
Combo1.AddItem fld.Name
Next
rs.Close
Combo1.ListIndex = 0
Combo2.AddItem ("like")
Combo2.AddItem (">")
Combo2.AddItem ("=")
Combo2.AddItem ("<")
Combo2.AddItem (">=")
Combo2.AddItem ("<=")
Combo2.AddItem ("<>")
Combo2.ListIndex = 0
End Sub
Private Sub List1_Click()
Command2.Enabled = True
End Sub
Private Sub Command3_Click()
Dim intX As Integer
For intX = 1 To List1.ListCount
txtsql = txtsql & " " & List1.List(intX)
Next intX
Select Case Left(List1.List(0), 3)
Case "and"
sql1 = tb1 & "where" & Right(List1.List(0), Len(List1.List(0)) - 3) & Trim(txtsql)
Case "or"
sql1 = tb1 & "where" & Right(List1.List(0), Len(List1.List(0)) - 2) & Trim(txtsql)
Case Else
sql1 = tb1 & " where" & List1.List(0) & Trim(txtsql)
End Select
Unload Me
End Sub
Private Sub Command4_Click()
sql1 = tb1
Unload Me
End Sub
Private Sub Command2_Click()
List1.Clear
Command2.Enabled = False
If List1.ListCount = 0 Then Command3.Enabled = False
End Sub
Private Sub Command5_Click()
Unload Me
End Sub
2014年10月16日 05点10分
1

代码Dim fld
Dim rs As New ADODB.Recordset
Private Sub Command1_Click()
Dim myval As String
If Combo1.Text = "" Then
MsgBox "系统不允许字段名称为空!", , "提示窗口"
Exit Sub
End If
If Combo2.Text = "" Then
MsgBox "系统不允许运算符为空!", , "提示窗口"
Exit Sub
End If
If Text1.Text = "" Then
MsgBox "系统不允许关键字为空", , "提示窗口"
Exit Sub
End If
rs.Open tb1, cnn, adOpenKeyset, adLockOptimistic
Select Case rs.Fields(Combo1.ListIndex).Type
Case 202, 200
If Combo2.Text = "like" Then
myval = "like+*%*+*" & Text1 & "*+*%*"
Else
myval = Combo2 & "*" + Text1 + "*"
End If
Case 7, 135
If Combo2.Text = "like" Then
MsgBox "日期型数据不能选用“Like”作为运算符!", , "提示窗口"
Combo2.ListIndex = 1
End If
If IsDate(Text1) = False Then
MsgBox "请输入正确日期!", , "提示窗口"
rs.Close
Exit Sub
End If
myval = Combo2 & "*" + Text1 + "*"
Case 131, 3, 6
If IsNumeric(Text1) = False Then
MsgBox "请输入正确数据!", , "提示窗口"
rs.Close
Exit Sub
End If
If Combo2.Text = "like" Then
MsgBox "数字数据不能选“Like”作为运算符!"
Combo2.ListIndex = 1
End If
myval = Combo2 & Text1
Case 11
If Text1 <> 0 Or Text1 <> 1 Then
MsgBox "只能输入0 或 1!", , "提示窗口"
rs.Close
Exit Sub
End If
End Select
If List1.ListCount > 0 Then
If Option1.Value = False And Option2.Value = False Then
MsgBox "必须选择一个逻辑值!", , "提示窗口"
Option1.Value = True
End If
If Option1.Value = True Then
List1.AddItem Option1.Tag & " " & tb1 & "." & Combo1 & " " & myval
End If
If Option2.Value = True Then
List1.AddItem Option2.Tag & " " & tb1 & "." & Combo1 & " " & myval
End If
Else
List1.AddItem tb1 & "." & Combo1 & " " & myval
End If
Command3.Enabled = True
Command2.Enabled = True
rs.Close
End Sub
Private Sub form_load()
rs.Open tb1, cnn, adOpenKeyset, adLockOptimistic
Set fld = rs.Fields
For Each fld In rs.Fields
Combo1.AddItem fld.Name
Next
rs.Close
Combo1.ListIndex = 0
Combo2.AddItem ("like")
Combo2.AddItem (">")
Combo2.AddItem ("=")
Combo2.AddItem ("<")
Combo2.AddItem (">=")
Combo2.AddItem ("<=")
Combo2.AddItem ("<>")
Combo2.ListIndex = 0
End Sub
Private Sub List1_Click()
Command2.Enabled = True
End Sub
Private Sub Command3_Click()
Dim intX As Integer
For intX = 1 To List1.ListCount
txtsql = txtsql & " " & List1.List(intX)
Next intX
Select Case Left(List1.List(0), 3)
Case "and"
sql1 = tb1 & "where" & Right(List1.List(0), Len(List1.List(0)) - 3) & Trim(txtsql)
Case "or"
sql1 = tb1 & "where" & Right(List1.List(0), Len(List1.List(0)) - 2) & Trim(txtsql)
Case Else
sql1 = tb1 & " where" & List1.List(0) & Trim(txtsql)
End Select
Unload Me
End Sub
Private Sub Command4_Click()
sql1 = tb1
Unload Me
End Sub
Private Sub Command2_Click()
List1.Clear
Command2.Enabled = False
If List1.ListCount = 0 Then Command3.Enabled = False
End Sub
Private Sub Command5_Click()
Unload Me
End Sub