设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 16374|回复: 57
打印 上一主题 下一主题

[查询] [分享]两句代码实现多表不同字段数据联合模糊查询

[复制链接]
跳转到指定楼层
1#
发表于 2006-8-5 03:58:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这是我的:

游客,如果您要查看本帖隐藏内容请回复
(实现多表、不同字段联合查询,但只有and 运算,而且要按字段固定顺序)




  • 介绍另一个andymark的杰作,联合起来使用就更强了!


[url=http://www.office-cn.net/forum.php?mod=viewthread&tid=44687&extra=&page=1#27544<]http://www.office-cn.net/forum.php?mod=viewthread&tid=44687&extra=&page=1#27544<;/A>   (可以设定模糊的精度,好象不用按顺序)



sgrshh29的例子:<a href="http://www.office-cn.net/forum.php?mod=viewthread&tid=43833&replyID=&skin=1" target="_blank" >http://www.office-cn.net/forum.php?mod=viewthread&tid=43833&replyID=&skin=1<;/A>(<a href="http://www.office-cn.net/forum.php?mod=viewthread&tid=43833&replyID=24146&skin=1" target="_blank" >单字段多条件模糊查询[/url])



[此贴子已经被作者于2006-8-4 21:03:43编辑过]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2006-8-5 04:24:00 | 只看该作者
确实很精简,谢谢分享
3#
发表于 2006-8-5 04:30:00 | 只看该作者
这里有个转换模糊查询语句的where字句的函数,有一定的通用性,不妨一试:

用前段时间发表的模糊查询例子中的那个函数改的。

Public Const conAND As Integer = 1
Public Const conOR As Integer = 2

'===============================================================================
'-函数名称:     GetSQLWhere
'-功能描述:     将参数转换为模糊查询的SQL语句的Where子句
'-输入参数说明: 参数1: 可选 strField As String  字段名称
'               参数2: 可选 strKeyWords As String  查询关键字
'               参数3: 可选 intOperation As Integer  运算符(常量:conAND或者1,conOR或者2)
'-返回参数说明:
'-使用语法示例:
'-参考:
'-使用注意:     可使用中文的,;和英文的,和空格来作为关键的分隔符
'-兼容性:       2000,XP,2003
'-作者:         fan0217@163.com
'-更新日期:    2006-06-20
'===============================================================================
Public Function GetSQLWhere(Optional strField As String, _
                    Optional strKeyWords As String = "", _
                    Optional intOperation As Integer = 1) As String
On Error GoTo Err_GetSQLWhere
Dim strSqlWhere As String, varKWArray As Variant
Dim intMax As Integer, i As Integer, strOperation As String
Dim strKW As String

If intOperation <> conAND And intOperation <> conOR Then
    'MsgBox "intOperation参数设置不正确。", 16, "fan0217"
    Exit Function
End If

If strKeyWords = "" Then
    strSqlWhere = ""
Else
    strKeyWords = Replace(strKeyWords, ";", " ")    '将中文分号换成空格
    strKeyWords = Replace(strKeyWords, ";", " ")     '将英文分号换成空格
    strKeyWords = Replace(strKeyWords, ",", " ")    '将中文逗号换成空格
    strKeyWords = Replace(strKeyWords, ",", " ")     '将英文逗号换成空格
    strKeyWords = Trim(strKeyWords)                  '去处首尾的空格
   
    varKWArray = Split(strKeyWords)       '将字符串根据空格拆开,获得一个数组
    intMax = UBound(varKWArray)           '获取数组的最大下标
   
    If strKeyWords <> "" Then
        If intMax = 0 Then
            strSqlWhere = strSqlWhere & "([" & strField & "] Like '*" & varKWArray(0) & "*')"
        Else
            If intOperation = conAND Then
                strOperation = " And "
            ElseIf intOperation = conOR Then
                strOperation = " Or "
            End If
            For i = 0 To intMax
                 strKW = Trim(varKWArray(i))
                If i = 0 Then
                    strSqlWhere = strSqlWhere & "([" & strField & "] Like '*" & strKW & "*'" & strOperation
                ElseIf i = intMax Then
                    strSqlWhere = strSqlWhere & "[" & strField & "] Like '*" & strKW & "*')"
                Else
                    strSqlWhere = strSqlWhere & "[" & strField & "] Like '*" & strKW & "*'" & strOperation
                End If
            Next
        End If
    End If
End If

    GetSQLWhere = strSqlWhere

Exit_GetSQLWhere:
    Exit Function

Err_GetSQLWhere:
    MsgBox Err.Description
    Resume Exit_GetSQLWhere

End Function
4#
 楼主| 发表于 2006-8-5 04:37:00 | 只看该作者
谢谢,这样的话更灵活了,功能也多了很多。

不过还要回去消化一下。
5#
发表于 2006-8-5 04:44:00 | 只看该作者
  关于模糊查询方面现在有很多方法可以实现,论坛上也提供各种各样的例子

剩下的就是如何整合拼音模糊查询,实现多功能模糊
6#
发表于 2006-8-5 04:49:00 | 只看该作者
以下是引用andymark在2006-8-4 20:44:00的发言:


  关于模糊查询方面现在有很多方法可以实现,论坛上也提供各种各样的例子

剩下的就是如何整合拼音模糊查询,实现多功能模糊

拼音查询我弄了一个:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
7#
 楼主| 发表于 2006-8-5 05:06:00 | 只看该作者
太好了!
8#
发表于 2006-8-5 05:15:00 | 只看该作者
   如果能像万能五笔那样,同时支持模糊拼音多好,站长有个演示版,不知放在那了

9#
发表于 2006-8-5 05:19:00 | 只看该作者
以下是引用andymark在2006-8-4 21:15:00的发言:


   如果能像万能五笔那样,同时支持模糊拼音多好,站长有个演示版,不知放在那了





怎样的例子? 没有注意到。
10#
 楼主| 发表于 2006-8-5 05:22:00 | 只看该作者
不知道用ACCESS能不能做个五笔打字出来?

你们懂API的就可能有这个可能。怎么才能把ACCESS打出来的字填到WORD里面去呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-11-11 00:15 , Processed in 0.093632 second(s), 36 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表