กระทู้เก่าบอร์ด อ.สุภาพ ไชยา
396 1
URL.หัวข้อ /
URL
คำสั่งของ Check Box กับ Combo Box
ต้องการ เขียน Function search โดยให้ USER สามารถกำหนดได้ว่าต้องการ Search อะไรบ้าง เช่น Search หา Mr. A จาก Country USA ผู้ใช้จะต้องสามารถ Check ใน Check Box ในส่วนของ ชื่อ และ Check Country USA จาก Combo Box ไม่เข้าใจว่าจะต้องเขียน Code ในส่วนนี้ยังไงดี รบกวนช่วยตอบด้วยนะคะ
1 Reply in this Topic. Dispaly 1 pages and you are on page number 1
1 @R00093
ผมเคยทำตัวอย่างให้ท่านหนึ่ง ลักษณะจะคล้ายกับที่คุณได้ถามมา แต่เป็นการค้นหาจาก Text box 3 ตัว ลองศึกษาจากตัวอย่างข้างล่าง หรือจะไปเอาตัวอย่างจริงของไฟล์นี้ที่
http://members.mweb.co.th/specialvoa/download.htm
รายการที่ 31 ครับ
Private Sub cmdSQL_Click()
Dim dbs As Database, qdf As QueryDef
Dim strSQL As String
strSQL = ""
' Check if cmbMNType empty or not
If Me.cmbMNTYPE = "" Or IsNull(Me.cmbMNTYPE) Then
' Do nothing here
Else
strSQL = strSQL & " tblMT.MNType = '" & Me.cmbMNTYPE & "' "
End If
' Combo box ตัวใหม่
If Me.[ชื่อ Combo Box] = "" Or IsNull(Me.[ชื่อ Combo Box]) Then
' Do nothing here
Else
If strSQL = "" Then
strSQL = strSQL & " tblMT.[ชื่อฟีลด์ที่ต้องการเพิ่ม] = '" & Me.[ชื่อ Combo Box] & "' "
Else
strSQL = strSQL & " And tblMT.[ชื่อฟีลด์ที่ต้องการเพิ่ม] = '" & Me.[ชื่อ Combo Box] & "' "
End If
End If
' Check if txtStartDate empty or not
If Me.txtStartDate = "" Or IsNull(Me.txtStartDate) Then
' Do nothing here
Else
If Me.txtEndDate = "" Or IsNull(Me.txtEndDate) Then
If strSQL = "" Then
strSQL = strSQL & "tblMT.dteDate >= #" & Me.txtStartDate & "# "
Else
strSQL = strSQL & " And tblMT.dteDate >= #" & Me.txtStartDate & "# "
End If
Else
If strSQL = "" Then
strSQL = strSQL & " tblMT.dteDate Between #" & Me.txtStartDate & "# And #" & Me.txtEndDate & "# "
Else
strSQL = strSQL & " And tblMT.dteDate Between #" & Me.txtStartDate & "# And #" & Me.txtEndDate & "# "
End If
End If
End If
If Me.txtStartDate = "" Or IsNull(Me.txtStartDate) Then
If Me.txtEndDate <> "" Or Not IsNull(Me.txtEndDate) Then
If strSQL = "" Then
strSQL = strSQL & " tblMT.dteDate <= #" & Me.txtEndDate & "# "
Else
strSQL = strSQL & " And tblMT.dteDate <= #" & Me.txtEndDate & "# "
End If
Else
' Do nothing
End If
End If
If strSQL = "" Then
strSQL = "SELECT tblMT.ID, tblMT.MNType, tblMT.dteDate " _
& "FROM tblMT;"
Else
strSQL = "SELECT tblMT.ID, tblMT.MNType, tblMT.dteDate " _
& "FROM tblMT WHERE " & strSQL & ";"
End If
Set dbs = CurrentDb
' Check if the qrySQL query exists or not, if so, delete it
For Each qdf In dbs.QueryDefs
If qdf.Name = "qrySQL" Then
dbs.QueryDefs.Delete qdf.Name
End If
Next qdf
' Create the query named srySQL
Set qdf = dbs.CreateQueryDef("qrySQL", strSQL)
' Open the newly created query
DoCmd.OpenQuery "qrySQL", acViewNormal, acReadOnly
Set dbs = Nothing
End Sub
.....
ถ้าเป็นกรณีของคุณ จะต้องให้
If chkชื่อ CheckBox = True Then
...
ลองดูครับ
Time: 0.1437s