📄 frmfindbr.frm
字号:
Select Case grdHow.Col
Case 1
cboHow.AddItem "And"
cboHow.AddItem "Or"
Case 2
On Error GoTo err1
For i = 0 To number - 1
cboHow.AddItem chkRS(i).Caption
Next
Case 3
cboHow.AddItem "="
cboHow.AddItem "<"
cboHow.AddItem ">"
cboHow.AddItem "<="
cboHow.AddItem ">="
Case 4
v = grdHow.TextMatrix(grdHow.Row, 2)
If v <> "" Then
Call fillValue(v)
End If
End Select
err1:
End Sub
Private Sub cboHow_LostFocus()
cboHow.Visible = False
End Sub
Private Sub cboHow_Validate(Cancel As Boolean)
'grd控件过滤cmbobox 和 textbox 的返回值
'取and or
If grdHow.Col = 1 Then
If LCase(cboHow.Text) <> "and" And LCase(cboHow.Text) <> "or" Then Exit Sub
grdHow.Text = cboHow.Text
End If
'取> < = >= <=
If grdHow.Col = 3 Then
If cboHow.Text <> ">" And cboHow.Text <> "<" And cboHow.Text <> "=" And cboHow.Text <> ">=" And cboHow.Text <> "<=" And cboHow.Text <> "" Then Exit Sub
grdHow.Text = cboHow.Text
End If
'是不是字段名
If grdHow.Col = 2 Then
For i = 0 To number - 1
If cboHow.Text = chkRS(i).Caption Then
grdHow.Text = cboHow.Text
Exit For
End If
Next
End If
If grdHow.Col = 4 Then
grdHow.Text = cboHow.Text
End If
If cboHow.Text = "" Then
grdHow.Text = cboHow.Text
End If
End Sub
Private Sub fillValue(ByVal rsname As String)
If rsname = "性别" Then
cboHow.AddItem "男"
cboHow.AddItem "女"
End If
If rsname = "健康状况" Then
cboHow.AddItem "健康"
cboHow.AddItem "生病"
End If
If rsname = "婚姻状况" Then
cboHow.AddItem "已婚"
cboHow.AddItem "未婚"
End If
End Sub
Private Sub chkRS_Click(Index As Integer)
If Index = 0 Then
chkRS(0).Value = 1
End If
End Sub
Private Sub cmdBefore_Click()
SSTab1.Tab = 0
cmdTitle.Caption = SSTab1.Caption
End Sub
Private Sub cmdBf_Click()
SSTab1.Tab = 1
cmdTitle.Caption = SSTab1.Caption
End Sub
Private Sub cmdClear_Click()
For i = 1 To grdHow.Rows - 1
For j = 1 To 4
grdHow.TextMatrix(i, j) = ""
Next
Next
End Sub
Private Sub cmdE_Click()
Unload Me
End Sub
Private Sub cmdExit0_Click()
Unload Me
End Sub
Private Sub cmdFisish_Click()
frmRS.sqlRefreshGrid (txtSQL.Text)
Unload Me
End Sub
Private Sub cmdNext_Click()
'一定要有工号
chkRS(0).Value = 1
ReDim putRs(number)
Dim w As Integer
w = 0
For i = 0 To number - 1
If chkRS(i).Value = 1 Then
putRs(w) = chkRS(i).Caption
w = w + 1
End If
Next
SSTab1.Tab = 1
cmdTitle.Caption = SSTab1.Caption
End Sub
Private Sub cmdQuery_Click()
'生成sql语句
Call makeSql
On Error Resume Next
Dim rs As ADODB.Recordset
Dim strSql As String
Dim strMsg As String
If txtSQL.Text <> "" Then
strSql = txtSQL.Text
Set rs = ExecuteSQL(strSql, strMsg)
Call FillData(rs, grdShow)
rs.Close
Set rs = Nothing
End If
SSTab1.Tab = 2
cmdTitle.Caption = SSTab1.Caption
End Sub
Private Sub cmdSelAll_Click()
If cmdSelAll.Caption = "输出全部" Then
Dim i As Integer
For i = 1 To number - 1
chkRS(i).Value = 1
Next
cmdSelAll.Caption = "取消全部"
Else
For i = 1 To number - 1
chkRS(i).Value = 0
Next
cmdSelAll.Caption = "输出全部"
End If
End Sub
Private Sub CommandButton1_Click()
makeSql
End Sub
Private Sub makeSql()
Dim s As String
Dim strSql As String
Dim SQLoriginal As String
Dim SQLrs As String
Dim SQlsel As String
Dim st As String
Dim sqlb As String
Dim tp As Integer
For i = 0 To UBound(putRs) - 1
If putRs(i) <> "" Then
st = st & putRs(i) & ","
End If
Next
st = Left(st, Len(st) - 1)
SQlsel = "select "
SQLoriginal = " from " & strTbName & " where "
sqlb = SQlsel & st & SQLoriginal
If grdHow.TextMatrix(1, 2) = "" Or grdHow.TextMatrix(1, 3) = "" Or grdHow.TextMatrix(1, 4) = "" Then
Exit Sub
End If
For i = 1 To grdHow.Rows - 1
If grdHow.TextMatrix(i, 2) <> "" And grdHow.TextMatrix(i, 3) <> "" And grdHow.TextMatrix(i, 4) <> "" Then
If i = 1 Then
For j = 1 To 3
s = s + " " + grdHow.TextMatrix(i, j)
Next
'处理不同类型的字段
For w = 0 To number - 1
If grdHow.TextMatrix(i, 2) = chkRS(w).Caption Then
tp = chkRS(w).Tag
Exit For
End If
Next
Select Case tp
Case 202 '文本
s = s + " " + "'" + grdHow.TextMatrix(i, j) + "'"
Case 135 '日期
s = s + " " + "#" + grdHow.TextMatrix(i, j) + "#"
Case 3 '数字
s = s + " " + grdHow.TextMatrix(i, j)
End Select
Else
If grdHow.TextMatrix(i, 1) <> "" Then
For j = 1 To 3
s = s + " " + grdHow.TextMatrix(i, j)
Next
'处理不同类型的字段
For w = 0 To number - 1
If grdHow.TextMatrix(i, 2) = chkRS(w).Caption Then
tp = chkRS(w).Tag
Exit For
End If
Next
Select Case tp
Case 202 '文本
s = s + " " + "'" + grdHow.TextMatrix(i, j) + "'"
Case 135 '日期
s = s + " " + "#" + grdHow.TextMatrix(i, j) + "#"
Case 3 '数字
s = s + " " + grdHow.TextMatrix(i, j)
End Select
End If
End If
End If
Next
strSql = sqlb & s
txtSQL.Text = strSql
End Sub
Private Sub Form_Load()
'Call DarkMe(Me, 255)
' Me.Refresh
'blnDark = False
strTbName = "t_br"
Call subload(strTbName)
End Sub
Private Sub subload(strTbName As String)
If strTbName = "" Then Exit Sub
txtSQL.Text = "select * from " & strTbName
'2
'txtHow.Visible = False
cboHow.Visible = False
'1创建check组
number = CreateCT(strTbName)
'全部选中
Dim i As Integer
For i = 0 To number - 1
chkRS(i).Value = 1
Next
cmdSelAll.Caption = "取消全部"
'在MSFlexGrid控件中填入数据
setHow
SSTab1.Tab = 0
cmdTitle.Caption = SSTab1.Caption
End Sub
'在MSFlexGrid控件中填入数据
Private Function setHow()
With grdHow
.Clear
.Cols = 5
.Rows = 10
'设置各列的对齐方式
For i = 0 To .Cols - 1
.ColAlignment(i) = 0
Next i
'表头项居中
.FillStyle = flexFillRepeat
If .Rows > 1 Then
.RowSel = 1
End If
.ColSel = .Cols - 1
'.CellAlignment = 4
'设置单元大小
.ColWidth(0) = 250
.ColWidth(1) = 2000
.ColWidth(2) = 2000
.ColWidth(3) = 2000
.ColWidth(4) = 2100
.TextMatrix(0, 1) = "与或"
.TextMatrix(0, 2) = "字段"
.TextMatrix(0, 3) = "逻辑"
.TextMatrix(0, 4) = "取值"
End With
End Function
Private Sub grdHow_Click()
' txtHow.Visible = False
cboHow.Visible = False
'txtHow.Text = ""
cboHow.Text = ""
If grdHow.Row = 1 And grdHow.Col = 1 Then Exit Sub
cboHow.Move grdHow.Left + grdHow.CellLeft, grdHow.Top + grdHow.CellTop, grdHow.CellWidth
cboHow.Visible = True
cboHow.SetFocus
End Sub
Private Sub MSFlexGrid2_Click()
MsgBox MSFlexGrid2.Row
End Sub
Private Sub txtSQL_Change()
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -