组合查询

本文介绍了一种基于Visual Basic的组合查询实现方法,通过定义数组简化数据库属性,利用不同逻辑符号进行多条件组合查询。文章详细解释了如何通过判断条件的填充情况来决定执行哪一种查询逻辑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



      当看到机房程序的时候,感觉就是无从下手。多亏有博客呀!看了大家的博客,才知道怎么回事!博客真的是一个强大的工具。

      看了好几篇关于组合查询的博客。感觉大家写的非常好!也有看不懂的,我敲得组合查询没有使用布尔值。

      首先定义数组,用于简化,数据库属性。

      进入判断,首先判断第一行条件是否填写完整!然后再判断第一个逻辑符号。如果为空直接直接查询第一行条件,如果没有,判断第二个逻辑符合是否为空,并且查询第二行是否为空。如果第二个逻辑符合为空则,查询两行条件。如果第二个逻辑符合不为空,判断第三行条件是否为空,进行三行条件查询!

   '一共分4种情况
  '首先将数据库属性赋值简化
  Dim i As Integer '做为循环赋值combol
  Dim j As Integer '做为循环赋值combo3
  '赋值数组
 学生基本信息维护

  '一共分4种情况
  '首先将数据库属性赋值简化
  Dim i As Integer '做为循环赋值combol
  Dim j As Integer '做为循环赋值combo3
  '赋值数组
  Dim str1(3)  '对应combo1
  Dim str3(2)  '对于combo3
 
  
     For i = 0 To 2
       Select Case Combo1(i).Text
         Case "卡号"
         str1(i) = "cardno"
         Case "学号"
         str1(i) = "studentNo"
         Case "姓名"
         str1(i) = "studentName"
         Case "性别"
         str1(i) = "sex"
          Case "系别"
         str1(i) = "department"
          Case "年级"
         str1(i) = "grade"
          Case "班级"
         str1(i) = "class"
       End Select
      Next i
      '对于combo3
      For j = 0 To 1
        Select Case Combo3(j).Text
          Case "与"
          str3(j) = "and "
          Case "或"
          str3(j) = "or"
        End Select
      Next j
      
      Dim txtSQL As String
      Dim Msgtext As String
      
      txtSQL = "select * from student_Info where "
      
      '第一步先判断第一行是否为空
      If Combo1(0).Text = "" Or Combo2(0).Text = "" Or Text1.Text = "" Then
         MsgBox "请将第一行内容填写完整!", vbOKOnly + vbExclamation, "警告"
         Exit Sub
      End If
     
       '全部判断,判断是否选择第一个combo3
      If Combo3(0).Text <> "" Then
       '如果判断combo3(0)不为空,在判断
             If Combo1(1).Text = "" Or Combo2(1).Text = "" Or Text2.Text = "" Then
               MsgBox "请将第二行填写完整!", vbOKOnly + vbExclamation, "警告!"
             Exit Sub
             Else
              '在判断第二个逻辑关系
               If Combo3(1).Text <> "" Then
                 '进行下一轮判断
                 If Combo1(2).Text = "" Or Combo2(2).Text = "" Or Text3.Text = "" Then
                   MsgBox "请将第三行条件填写完整", vbOKOnly + vbExclamation, "警告!"
                 Exit Sub
                 Else
                   '查询三行条件
                    txtSQL = txtSQL & str1(0) & Combo2(0).Text & "'" & Trim(Text1.Text) & " ' "
                    txtSQL = txtSQL & str3(0) & " " & str1(1) & Trim(Combo2(1).Text) & "'" & Trim(Text2.Text) & " ' "
                    txtSQL = txtSQL & str3(1) & " " & str1(2) & Trim(Combo2(2).Text) & "'" & Trim(Text3.Text) & " ' "
                       Set mrc = ExecuteSQL(txtSQL, Msgtext)
                       Call vieWdate   '定义函数用于表格
                 End If
               Else
                
                txtSQL = txtSQL & str1(0) & Combo2(0).Text & "'" & Trim(Text1.Text) & " ' "
                txtSQL = txtSQL & str3(0) & " " & str1(1) & Trim(Combo2(1).Text) & "'" & Trim(Text2.Text) & " ' "
                 Set mrc = ExecuteSQL(txtSQL, Msgtext)
                    Call vieWdate
               End If
            End If
      Else

      txtSQL = txtSQL & str1(0) & Combo2(0).Text & "'" & Trim(Text1.Text) & " ' "
      Set mrc = ExecuteSQL(txtSQL, Msgtext)
      
        Call vieWdate
       End If
        '运行MSHFlexGrid1表

 
  

评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值