這個只能是一一判斷的:
創新互聯建站堅持“要么做到,要么別承諾”的工作理念,服務領域包括:網站設計制作、網站建設、企業官網、英文網站、手機端網站、網站推廣等服務,滿足客戶于互聯網時代的托里網站設計、移動媒體設計的需求,幫助企業找到有效的互聯網解決方案。努力成為您成熟可靠的網絡建設合作伙伴!
為了敘述簡單,假設有兩個可選條件,內容在: TextBox1(姓名)、TextBox2(部門)
主要是構造 Sql的Where子句,那么:
Dim MySqlWhere As String
MySqlWhere=""
If TextBox1.Text"" Then
MySqlWhere= " Where 姓名 = '" TextBox1.Text "'"
End If
If TextBox2.Text"" Then
if MySqlWhere="" Then
MySqlWhere= " Where 部門 = '" TextBox1.Text "'"
Else
MySqlWhere= MySqlWhere " And 部門 = '" TextBox1.Text "'"
End If
End If
'如果還有第3,第4,那只能這樣了:
If TextBox3.Text"" Then
if MySqlWhere="" Then
MySqlWhere= " Where 字段3 = '" TextBox3.Text "'"
Else
MySqlWhere= MySqlWhere " And 字段3 = '" TextBox3.Text "'"
End If
End If
......
If TextBoxn.Text"" Then
if MySqlWhere="" Then
MySqlWhere= " Where 字段n = '" TextBoxn.Text "'"
Else
MySqlWhere= MySqlWhere " And 字段n = '" TextBoxn.Text "'"
End If
End If
注意:對于字符類型的字段,當然要用單引號,上面那樣的,但是對于數值類型,就不要這個單引號的;但是對于日期類型,那么與字符類型不同的是,把前后的2個單引號,改為井號就是“#”, 這是很多初學者容易忽略的,也是很多教科書上不提的問題。
對于文本框,由于.NET不提供控件數組,但是還是可以用語句來實現類似數組的操作,這樣以上IF語句,就可以簡化。
舉例說明,實現如下多條件查詢:
Private Sub Command1_Click() Dim jsql jsql = ""
Dim smyregion As String If Check1.Value = 1 Then
jsql = "圖書名稱 like '%" + Text1.Text + "%'" End If
If Check2.Value = 1 Then ? ?If jsql = "" Then
jsql = "作者姓名 like'%" + Text2.Text + "%'" ? ?Else
jsql = jsql "and 作者姓名 like'%" + Text2.Text + "%'" ? ? End If End If
If Check3.Value = 1 Then ? ?If jsql = "" Then
jsql = "出版社名稱 like'%" + Text3.Text + "%'" ? ? Else
jsql = jsql "and 出版社名稱 like '%" + Text3.Text + "%'" ? ? End If End If
If Check4.Value = 1 Then ? If jsql = "" Then
jsql = "出版時間 like '%" + Text4.Text + "%'" ? ? Else
?jsql = jsql "and 出版時間 like '%" + Text3.Text + "%'" ? ? End If End If
If Check5.Value = 1 Then ? ?If jsql = "" Then
jsql = "圖書類別 like '%" + Text5.Text + "%'"
Else
?jsql = jsql "and 圖書類別 like '%" + Text5.Text + "%'" ? ? End If End If
If jsql = "" Then
MsgBox "請選擇查詢條件!", vbInformation, "圖書音像管理系統" ? Exit Sub Else
Adodc1.RecordSource = "select * from book where " jsql ? Adodc1.Refresh End If
If Adodc1.Recordset.RecordCount 0 Then ? Set DataGrid1.DataSource = Adodc1 End If ? ?End Sub
Private Sub Command2_Click() Unload Me End Sub
911 X + 1 916 還有 704 Y +? 1 709,沒有這么連續判斷的。
是比較運算符,是運算符!+、-、*、/ 是算術運算符,也是運算符!
既然是運算符,就得按照運算優先級(所謂優先級,就是 * 運算比 + 運算要優先)從左到右依次計算,顯然 911 X + 1 916 里兩個 的運算優先級是相同的。
那么從左至右依次計算,先算 911 X + 1,得到結果 True(-1) 或者 False(0)(不要問我為什么True=-1,False=0,.NET里就是這么規定的),再計算 True / False 916,結果始終為 True。704 Y + 1 709 也是同理,兩個 True 之間 And 了還是 True,結果當然是條件一直成立。
正確寫法:
If?(911??X?+?1?And?X?+?1??916)?And?(704??Y?+?1?And?Y?+?1??709)?Then
本文名稱:vb.net多條件判斷 vba多條件判斷語句
文章位置:http://m.2m8n56k.cn/article40/doggeeo.html
成都網站建設公司_創新互聯,為您提供、標簽優化、服務器托管、品牌網站建設、外貿建站、網站營銷
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:[email protected]。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯