📄 frmqueryhouse.frm
字号:
VERSION 5.00
Begin VB.Form frmQueryHouse
Caption = "房屋资料查询"
ClientHeight = 4560
ClientLeft = 60
ClientTop = 345
ClientWidth = 8490
LinkTopic = "Form1"
ScaleHeight = 4560
ScaleWidth = 8490
StartUpPosition = 3 '窗口缺省
Begin VB.CommandButton cmdClose
Caption = "关 闭"
Height = 495
Left = 4680
TabIndex = 11
Top = 3840
Width = 1575
End
Begin VB.CommandButton cmdQuery
Caption = "查 询"
Height = 495
Left = 1920
TabIndex = 10
Top = 3840
Width = 1575
End
Begin VB.Frame Frame1
Caption = "请输入查询条件"
Height = 3375
Left = 360
TabIndex = 0
Top = 240
Width = 7815
Begin VB.ComboBox Combo2
Height = 300
Index = 2
Left = 3360
TabIndex = 26
Text = "Combo2"
Top = 2640
Width = 2775
End
Begin VB.ComboBox Combo2
Height = 300
Index = 1
Left = 3360
TabIndex = 25
Text = "Combo2"
Top = 1680
Width = 2775
End
Begin VB.ComboBox Combo2
Height = 300
Index = 0
Left = 3360
TabIndex = 24
Text = "Combo2"
Top = 720
Width = 2775
End
Begin VB.ComboBox Combo1
Height = 300
Index = 8
ItemData = "frmQueryHouse.frx":0000
Left = 6360
List = "frmQueryHouse.frx":000D
TabIndex = 9
Text = "Combo1"
Top = 2640
Width = 1095
End
Begin VB.ComboBox Combo1
Height = 300
Index = 7
ItemData = "frmQueryHouse.frx":001F
Left = 2040
List = "frmQueryHouse.frx":002C
TabIndex = 8
Text = "Combo1"
Top = 2640
Width = 1095
End
Begin VB.ComboBox Combo1
Height = 300
Index = 6
ItemData = "frmQueryHouse.frx":0039
Left = 600
List = "frmQueryHouse.frx":0055
TabIndex = 7
Text = "Combo1"
Top = 2640
Width = 1095
End
Begin VB.ComboBox Combo1
Height = 300
Index = 5
ItemData = "frmQueryHouse.frx":00A5
Left = 6360
List = "frmQueryHouse.frx":00B2
TabIndex = 6
Text = "Combo1"
Top = 1680
Width = 1095
End
Begin VB.ComboBox Combo1
Height = 300
Index = 4
ItemData = "frmQueryHouse.frx":00C4
Left = 2040
List = "frmQueryHouse.frx":00D1
TabIndex = 5
Text = "Combo1"
Top = 1680
Width = 1095
End
Begin VB.ComboBox Combo1
Height = 300
Index = 3
ItemData = "frmQueryHouse.frx":00DE
Left = 600
List = "frmQueryHouse.frx":00FA
TabIndex = 4
Text = "Combo1"
Top = 1680
Width = 1095
End
Begin VB.ComboBox Combo1
Height = 300
Index = 2
ItemData = "frmQueryHouse.frx":014A
Left = 6360
List = "frmQueryHouse.frx":0157
TabIndex = 3
Text = "Combo1"
Top = 720
Width = 1095
End
Begin VB.ComboBox Combo1
Height = 300
Index = 1
ItemData = "frmQueryHouse.frx":0169
Left = 2040
List = "frmQueryHouse.frx":0176
TabIndex = 2
Text = "Combo1"
Top = 720
Width = 1095
End
Begin VB.ComboBox Combo1
Height = 300
Index = 0
ItemData = "frmQueryHouse.frx":0183
Left = 600
List = "frmQueryHouse.frx":019F
TabIndex = 1
Text = "Combo1"
Top = 720
Width = 1095
End
Begin VB.Label Label12
Caption = "查找关系"
Height = 255
Left = 2160
TabIndex = 23
Top = 2280
Width = 855
End
Begin VB.Label Label11
Caption = "查找关系"
Height = 255
Left = 2160
TabIndex = 22
Top = 1320
Width = 855
End
Begin VB.Label Label10
Caption = "查找关系"
Height = 255
Left = 2160
TabIndex = 21
Top = 360
Width = 855
End
Begin VB.Label Label9
Caption = "逻辑关系"
Height = 255
Left = 6480
TabIndex = 20
Top = 2280
Width = 735
End
Begin VB.Label Label8
Caption = "查找值"
Height = 255
Left = 4560
TabIndex = 19
Top = 2280
Width = 615
End
Begin VB.Label Label7
Caption = "查找字段"
Height = 255
Left = 720
TabIndex = 18
Top = 2280
Width = 855
End
Begin VB.Label Label6
Caption = "逻辑关系"
Height = 255
Left = 6480
TabIndex = 17
Top = 1320
Width = 735
End
Begin VB.Label Label5
Caption = "查找值"
Height = 255
Left = 4560
TabIndex = 16
Top = 1320
Width = 615
End
Begin VB.Label Label4
Caption = "查找字段"
Height = 255
Left = 720
TabIndex = 15
Top = 1320
Width = 855
End
Begin VB.Label Label3
Caption = "逻辑关系"
Height = 255
Left = 6480
TabIndex = 14
Top = 360
Width = 735
End
Begin VB.Label Label2
Caption = "查找值"
Height = 255
Left = 4560
TabIndex = 13
Top = 360
Width = 615
End
Begin VB.Label Label1
Caption = "查找字段"
Height = 255
Left = 720
TabIndex = 12
Top = 360
Width = 855
End
End
End
Attribute VB_Name = "frmQueryHouse"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Dim rst As New ADODB.Recordset
Dim sql As String
Private Sub cmdClose_Click()
Unload Me
End Sub
Private Sub cmdQuery_Click()
'要求至少要有一个查询条件,而且查询条件要靠前写,即如果只有一个查询条件
'必须输在第一行,有2个查询条件,只能输在1,2两行上
If Combo2(0).Text = "" Then
MsgBox "请选择或输入至少一个查询条件!", vbOKOnly + vbInformation, "注意"
Combo2(0).SetFocus
Combo2(1).Text = ""
Combo2(2).Text = ""
Exit Sub
End If
If Combo2(1).Text = "" And Not Combo2(2).Text = "" Then
MsgBox "请把查询条件输入在前面的行上!", vbOKOnly + vbInformation, "注意"
'Text1(1).SetFocus
'Text1(2).Text = ""
Exit Sub
End If
'除建筑面积、使用面积和出租价位以外的查询字段其查询关系不能为> 或 <,判断之
'由于窗体上的控件使用的是数组,因此可以用下面的for循环节省代码
For i = 0 To 2
If Not Combo2(i).Text = "" And Not Combo1(3 * i).ListIndex = 0 And Not Combo1(3 * i).ListIndex = 5 And Not Combo1(3 * i).ListIndex = 6 And Not Combo1(3 * i).ListIndex = 7 And Not Combo1(3 * i + 1).ListIndex = 0 Then
MsgBox "该字段的查找关系不能为 > 或 < !", vbOKOnly + vbInformation, "注意"
Combo1(3 * i + 1).SetFocus
Exit Sub
End If
Next i
'设置查询判断变量为真
queryhouse = True
'使用全局变量sqlqh保存该查询表达式的sql 语句
'如果查询字段是数字型,则需要用Val函数转换text1.text的内容
For j = 0 To 2
'现判断该text框是否为空
If Not Combo2(j).Text = "" Then
'判断该查询字段是否为房屋编号、面积和价位等数字型
'combo1(3*j)为查询字段
If Combo1(3 * j).ListIndex = 0 Or Combo1(3 * j).ListIndex = 5 Or Combo1(3 * j).ListIndex = 6 Or Combo1(3 * j).ListIndex = 7 Then
'判断是否是第一个查询条件,只有第一个查询条件最前面需要用where
If j = 0 Then
'combo1(3*j+1) 为查询关系
sqlqh = " where " & Combo1(3 * j).Text & Combo1(3 * j + 1).Text & Val(Combo2(j).Text)
Else
'Combo1(3 * j - 1)为逻辑关系
sqlqh = sqlqh & " " & Combo1(3 * j - 1).Text & " " & Combo1(3 * j).Text & Combo1(3 * j + 1) & Val(Combo2(j).Text)
End If
'查询字段为非数字型,需要在text文本前后使用''
Else
If j = 0 Then
sqlqh = " where " & Combo1(3 * j).Text & Combo1(3 * j + 1).Text & "'" & Combo2(j).Text & "'"
Else
sqlqh = sqlqh & " " & Combo1(3 * j - 1).Text & " " & Combo1(3 * j).Text & Combo1(3 * j + 1) & "'" & Combo2(j).Text & "'"
End If
End If
End If
Next j
frmHouse.Show
Unload Me
End Sub
Private Sub Combo1_Click(Index As Integer)
For j = 0 To 2
If rst.State = adStateOpen Then
rst.Close
End If
Select Case Combo1(3 * j).Index
Case 0
sql = "select DISTINCT 房屋编号 from House"
rst.Open Trim(sql), conn, adOpenKeyset, adLockOptimistic
Do Until rst.EOF
Combo2(j).AddItem rst.Fields("房屋编号")
rst.MoveNext
Loop
Case 1
sql = "select DISTINCT 物业地址 from House"
rst.Open Trim(sql), conn, adOpenKeyset, adLockOptimistic
Do Until rst.EOF
Combo2(j).AddItem rst.Fields("物业地址")
rst.MoveNext
Loop
Case 2
sql = "select DISTINCT 房型 from House"
rst.Open Trim(sql), conn, adOpenKeyset, adLockOptimistic
Do Until rst.EOF
Combo2(j).AddItem rst.Fields("房型")
rst.MoveNext
Loop
Case 3
sql = "select DISTINCT 装修情况 from House"
rst.Open Trim(sql), conn, adOpenKeyset, adLockOptimistic
Do Until rst.EOF
Combo2(j).AddItem rst.Fields("装修情况")
rst.MoveNext
Loop
Case 4
sql = "select DISTINCT 目前状态 from House"
rst.Open Trim(sql), conn, adOpenKeyset, adLockOptimistic
Do Until rst.EOF
Combo2(j).AddItem rst.Fields("目前状态")
rst.MoveNext
Loop
Case 5
sql = "select DISTINCT 建筑面积from House"
rst.Open Trim(sql), conn, adOpenKeyset, adLockOptimistic
Do Until rst.EOF
Combo2(j).AddItem rst.Fields("建筑面积")
rst.MoveNext
Loop
Case 6
sql = "select DISTINCT 使用面积 from House"
rst.Open Trim(sql), conn, adOpenKeyset, adLockOptimistic
Do Until rst.EOF
Combo2(j).AddItem rst.Fields("使用面积")
rst.MoveNext
Loop
Case 7
sql = "select DISTINCT 出租价位 from House"
rst.Open Trim(sql), conn, adOpenKeyset, adLockOptimistic
Do Until rst.EOF
Combo2(j).AddItem rst.Fields("出租价位")
rst.MoveNext
Loop
End Select
Next j
End Sub
Private Sub Form_Load()
'让窗体居中
Dim X0 As Long
Dim Y0 As Long
X0 = Screen.Width
Y0 = Screen.Height
X0 = (X0 - Me.Width) / 2
Y0 = (Y0 - Me.Height) / 2
Me.Move X0, Y0
'设置缺省值
For i = 0 To 8
Combo1(i).ListIndex = 0
Next i
For i = 0 To 2
Combo2(i).Text = ""
Next i
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -