Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

关于多项查询的问题

qiecaiban  发表于:2016-01-26 07:54:56  
复制

现在有个表 里面分别有  

姓名 

性别  

民族

爱好

最终学历

家乡 

工作单位  

现住所 


现在在窗口里设置以下文本框

姓名 

性别  

民族

爱好

最终学历


希望在文本框中输入相关文字就在自窗口中调出结果。

假如我只在性别中输入男,其它文本框中未输入,希望调出性别为男的一览表。

假如我只在性别中输入男和民族中输入汉,其它文本框中未输入,希望调出性别为男和民族为汉的一览表。


也就是说在文本框中没有输入的时候,希望调出所有结果


请问这种情况VBA怎么写?



 

 

Top
仙来 发表于:2016-01-26 08:32:34
http://www.accessoft.com/article-show.asp?id=9066

qiecaiban 发表于:2016-01-26 08:36:49
那个文件坏掉了

qiecaiban 发表于:2016-01-26 09:56:30

自己写的程序

Private Sub com1_Click()

Dim strWhere As String


   
  If Not IsNull(Me.[姓名]) Then
    strWhere = strWhere & "[姓名] like '*" & Me.[姓名] & "*' and"
  End If
       
  If Not IsNull(Me.性別) Then
    strWhere = strWhere & "[性別] like '*" & Me.性別 & "*' and"
  End If
  
  If Not IsNull(Me.民族) Then
    strWhere = strWhere & "[民族] like '*" & Me.民族 & "*' and"
  End If
    
  If Not IsNull(Me.趣味) Then
    strWhere = strWhere & "[趣味] like '*" & Me.趣味 & "*' and"
  End If
  
  If Not IsNull(Me.学歴) Then
    strWhere = strWhere & "[学歴] like '*" & Me.学歴 & "*' "
  End If


   Me.AAA.Form.Filter = strWhere
   Me.AAA.Form.FilterOn = True
End Sub

老是说有错

不知道为什么

那位大神给看一下

谢谢



朱先生 发表于:2016-01-26 14:24:34

Dim strWhere As String  
    
   strWhere = ""         
     If Not IsNull(Me.[姓名]) Then
           strWhere = strWhere & "([姓名] like '*" & Me.[姓名] & "*') AND "
    End If
    

    If Not IsNull(Me.[性别]) Then
           strWhere = strWhere & "([性别] like '*" & Me.[性别] & "*') AND "
    End If
   
    If Not IsNull(Me.[民族]) Then
         strWhere = strWhere & "([民族] like '*" & Me.[民族] & "*') AND "
    End If
   
    If Not IsNull(Me.[爱好]) Then
         strWhere = strWhere & "([爱好] like '*" & Me.[爱好] & "*') AND "
    End If
   
     If Not IsNull(Me.[学历]) Then
         strWhere = strWhere & "([学历] like '*" & Me.[学历] & "*') AND "
    End If
   
    If Len(strWhere) > 0 Then
   
        strWhere = Left(strWhere, Len(strWhere) - 5)
    End If
   
    Me![人员资料子窗体].Form.Filter = strWhere
    Me![人员资料子窗体].Form.FilterOn = True

 

 我是这样写的,通过了



qiecaiban 发表于:2016-01-26 14:44:47

朱先生

我对你的敬仰犹如滔滔江水。

谢谢



总记录:5篇  页次:1/1 9 1 :