VB 多条件查询

VB多条件的查询语句怎么写?条件相当多!~... VB 多条件的查询语句怎么写?
条件相当多!~
展开
 我来答
可以叫我表哥
2015-09-01 · 知道合伙人数码行家
可以叫我表哥
知道合伙人数码行家
采纳数:25897 获赞数:1464972
2010年毕业于北京化工大学北方学院计算机科学与技术专业毕业,学士学位,工程电子技术行业4年从业经验。

向TA提问 私信TA
展开全部

 隐带携举例说明,实现如下多条件查询:

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

geoxiong
2009-07-03 · TA获得超过507个赞
知道小有建树答主
回答量:293
采纳率:0%
帮助的人:182万
展开全部
以我的理解,你提的问题芹和可以分为下列几个小问题,不知是否符合你嫌野盯的要求
1、命名空间引用
Imports System.Data '***连接数据库的基本命名空间
Imports System.Data.Sql '***连接 Sql 数据库的命名空间
2、用 VB.Net 连接数据库
Dim Conn As New SqlClient.SqlConnection(strConn) '*** 声明并初始化连接对象
Dim Adapter As New SqlClient.SqlDataAdapter("select * from ChengJi", Conn) '*** 定义并初始化数据适配器
Dim dtTable As New DataTable '*** 数据集,用以绑定到 DataGridView
3、将取得的数据绑定到 DataGridView 控件
Adapter.Fill(dtTable) '*** 将数据适配器取得的数据填充到数据集
DataGridView.DataSource = dtTable '*** 将数据集的数据绑定到 控件
Conn.Open() '*** 打开连接,数据即显示在控件中
'*** 注意使用 Try......Catch 语句,并加入错误处理代码
4、查询语句编写
根据你列出的要求,应该是按用户 ID、用户名、部门ID中的一项或多项进行 And 或 Or 查询,则查询语句为
各字段单独查询:
Select * from Table where UserID='abc'
Select * from Table where UserName='abcd'
三个字段并列(And)查询
Select * from Table where UserID='abc' and UserName='abcd' and DepartMentID='abcde'
三个字段区分(脊此Or)查询
Select * from Table where UserID='abc' or UserName='abcd' or DepartMentID='abcde'
5、联合查询,即从多个表中找出符合条件的数据
假设有两个表
用户表(User):UserID,UserName,DepartMentID(表示所属的部门)
部门表(DepartMent):DepartMentID,DepartMentName
应该分多种情况设计查询语句(假设查询后要显示的字段都一样,为UserName、DepartMentName)
A、查询所有用户所属的部门(有可能有的用户所对应的部门编号不存在)
Select User.UserName,isnull(DepartMent.DepartMentName,'部门不存在') as DepartMentName from User left Join DepartMent
On User.DepartMentID=DepartMent.DePartMentID
'***注意:使用左连接,即从 User 表连向 DepartMent 表------由于 User 表在前
B、查询所有部门的用户(有可能有的部门没有用户)
Select isnull(User.UserName,'无用户') as UserName,DepartMent.DepartMentName from User right Join DepartMent
On User.DepartMentID=DepartMent.DePartMentID
'*** 注意:使用右连接,即从 DepartMent 表连向 User 表
C、查询部门中存在的用户(即用户表中的部门存在,部门中有用户)
Select User.UserName,DepartMent.DepartMentName from User Inner Join DepartMent On User.DepartMentID=DepartMent.DePartMentID
'*** 注意,使用自然连接,即用户表的 DepartMentID 在部门表中要存在,部门表中 DepartMentID要在用户表中存在,根据这两个条件过滤信息
D、使用全连接,你自己用试一试。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cwa9958
2009-07-03 · TA获得超过1884个赞
知道大有可为答主
回答量:2504
采纳率:0%
帮助的人:1991万
展开全部
200分的问困谨题有这么多人回答啊
我也写一个:
Private Sub Command1_Click()
Dim sqlStr As String, Str1 As String, Str2 As String

Str1 = " (录音日期 between #" & DTPicker1.Value & "# and #" & DTPicker2.Value & "#)"
Str2 = IIf(Text1.Text = "请汪枣基输入", "", " and 来电号码='" & Text1.Text & "'") & IIf(Text2.Text = "请输入", "", " and 去电号码='" & Text2.Text & "'") & IIf(Text3.Text = "请输入", "", " and 通道说明='" & Text3.Text & "'")
sqlStr = "select * from luyin where " & Str1 & Str2

For i = 0 To Check1.UBound
sqlStr = sqlStr & IIf(Check1(i).Value = 1, " or 通道号='" & Right(Check1(i).Caption, 1) & "'", "")
Next

Adodc1.RecordSource = sqlStr
Adodc1.Refresh

Text1 = "请输入"
Text2 = "请输入岩裤"
Text3 = "请输入"
End SubEnd Sub
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
炒饭ada
2009-07-03 · 超过14用户采纳过TA的回答
知道答主
回答量:115
采纳率:0%
帮助的人:43.8万
展开全部
if(判断条件)
{语尘锋句}
else if(判断条件)
{ 语句 }
else if(判断条件)
{语句}
。。。
if(判断条件)
{语句}

或者用switch语句
swith(表达式配兄亏)
{
case 表达式1:语句1
case 表达式2:语句2
。。。
case 表达式培神n:语句n
default:语句n+1
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
z_blue_b
2009-07-03 · TA获得超过199个赞
知道小有建树答主
回答量:279
采纳率:0%
帮助的人:294万
展开全部
适当的分开,把同类键键锋型的判断放到同亮吵一个函数里。如:稿晌

Private Function Check1() as Boolean
一部分判断
End Function

Private Function Check2() as Boolean
一部分判断
End Function

...
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(8)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式