2012年12月17日 星期一
[SQL] 多欄位查詢
Dim str As String = "select * from [A010詢價單資料表-表頭] Where 1=1"
'選擇哪個查詢條件
Select Case frm詢價單search.TabControl1.SelectedIndex
Case 0 '一般
'SELECT 外調單號, 預訂交期
'FROM E010外調訂單資料表明細
'WHERE (DATEPART(yy, 預訂交期) = 2008) AND (DATEPART(mm, 預訂交期) = 8)
'ORDER BY 預訂交期
If frm詢價單search.TextBox1.Text <> "0" Then
'日期-年度
str = str + " and DATEPART(yy,日期) = " & _
frm詢價單search.TextBox1.Text.ToString & ""
End If
If frm詢價單search.ComboBox1.Text <> "0(全部)" Then
'日期-月份
str = str + " and DATEPART(mm,日期) = " & _
Microsoft.VisualBasic.Left(frm詢價單search.ComboBox1.Text, 2) & ""
End If
If frm詢價單search.ComboBox2.Text <> "0(全部)" Then
'業務員-編號
str = str + " and 業務員 = '" & _
Microsoft.VisualBasic.Left(frm詢價單search.ComboBox2.Text, InStr(frm詢價單search.ComboBox2.Text, "(") - 1) & "'"
End If
Case 1 '依客戶編號
If frm詢價單search.ComboBox3.Text <> "0(全部)" Then
'Dim 客戶編號() As String = frm詢價單search.ComboBox3.Text.Split(frm詢價單search.ComboBox3.Text.Split, "(")
'str = str + " and 客戶編號 = '" & _
' 客戶編號(0).Trim & "'"
str = str + " and 客戶編號 = '" & _
Microsoft.VisualBasic.Left(frm詢價單search.ComboBox3.Text, InStr(frm詢價單search.ComboBox3.Text, "(") - 1) & "'"
End If
'在之前有嚴格判別是否為日期格式 並且不是空白~~
If frm詢價單search.TextBox2.Text <> "" And frm詢價單search.TextBox3.Text <> "" Then
str = str + " and 日期 between '" & Format(CDate(frm詢價單search.TextBox2.Text), "yyyy/MM/dd") & "' and '" & Format(CDate(frm詢價單search.TextBox3.Text), "yyyy/MM/dd") & "'"
End If
Case 2 '依客戶訂號
If Not String.IsNullOrEmpty(frm詢價單search.TextBox4.Text) Then
If frm詢價單search.CheckBox1.Checked = True Then
str = str + " and 客戶訂號 = '" & _
frm詢價單search.TextBox4.Text & "'"
Else
str = str + " and 客戶訂號 like '%" & _
frm詢價單search.TextBox4.Text & "%'"
End If
End If
Case 3 '依單號
If Not String.IsNullOrEmpty(frm詢價單search.TextBox5.Text) Then
str = str + " and 詢價單號 = '" & _
frm詢價單search.TextBox5.Text & "'"
End If
End Select
'sqlQuery
MsgBox(str)
參考:
[習題]給初學者的範例,多重欄位搜尋引擎 for GridView #1
[MySQL Note.] 資料庫查詢抱怨(刪除線)優化筆記
多欄位的搜尋引擎
改善SQL效能的寫法
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言