Office中国论坛/Access中国论坛

标题: [分享]两句代码实现多表不同字段数据联合模糊查询 [打印本页]

作者: qlm    时间: 2006-8-5 03:58
标题: [分享]两句代码实现多表不同字段数据联合模糊查询
这是我的:

(实现多表、不同字段联合查询,但只有and 运算,而且要按字段固定顺序)





[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编辑过]

作者: andymark    时间: 2006-8-5 04:24
确实很精简,谢谢分享
作者: fan0217    时间: 2006-8-5 04:30
这里有个转换模糊查询语句的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

作者: qlm    时间: 2006-8-5 04:37
谢谢,这样的话更灵活了,功能也多了很多。

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

剩下的就是如何整合拼音模糊查询,实现多功能模糊
作者: fan0217    时间: 2006-8-5 04:49
以下是引用andymark在2006-8-4 20:44:00的发言:


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

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

拼音查询我弄了一个:[attach]19479[/attach]

作者: qlm    时间: 2006-8-5 05:06
太好了!
作者: andymark    时间: 2006-8-5 05:15
   如果能像万能五笔那样,同时支持模糊拼音多好,站长有个演示版,不知放在那了


作者: fan0217    时间: 2006-8-5 05:19
以下是引用andymark在2006-8-4 21:15:00的发言:


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





怎样的例子? 没有注意到。
作者: qlm    时间: 2006-8-5 05:22
不知道用ACCESS能不能做个五笔打字出来?

你们懂API的就可能有这个可能。怎么才能把ACCESS打出来的字填到WORD里面去呢?
作者: fan0217    时间: 2006-8-5 05:23
以下是引用qlm在2006-8-4 21:22:00的发言:

你们懂API的就可能有这个可能。怎么才能把ACCESS打出来的字填到WORD里面去呢?

创建Word对象后很容易实现的。
作者: xjliyuehua    时间: 2008-1-9 09:38
标题: xie xie
xie xie
作者: yiwancn    时间: 2008-7-19 16:55
好东东,谢谢![
作者: 13555609005    时间: 2008-8-22 08:59
学习吓
作者: hxt1971    时间: 2008-10-5 11:09
[:17]
作者: huangxiuwen    时间: 2008-10-21 09:15
[:50]
作者: sunwrsun    时间: 2008-11-23 04:06
谢谢分享
作者: meloncash    时间: 2008-12-22 09:22
的确是一个强大的东西
作者: isbanker    时间: 2008-12-27 13:08
多谢分享,学习中....[:50]
作者: linag516    时间: 2009-1-19 12:29
[:50] [:50] [:50]
作者: aalons    时间: 2009-2-16 02:28
发个广告各国国歌各国国歌
作者: yanwei82123300    时间: 2009-7-20 12:13
确实很精简,谢谢分享
作者: lyc283    时间: 2009-7-29 08:45
ffffffffffffffffff
作者: chaojianan    时间: 2009-10-18 21:28
谢谢分享,看看
作者: wjsfeng    时间: 2009-10-28 12:47
学习学习,好东西!
作者: muning2009    时间: 2009-11-17 20:02
看看大大分享的啊,谢谢咯先
作者: luoliping986    时间: 2009-11-18 15:41
学习!
作者: yuchengzh    时间: 2009-12-4 13:34
顶顶
作者: fcghw    时间: 2009-12-16 11:16
太好了!!1
作者: beenet    时间: 2010-1-3 10:32
let me see see
作者: xyh2732    时间: 2010-6-11 13:27
学习
作者: scccx8106    时间: 2010-6-17 10:34
喜欢ACCESS
网络上精彩的网站很多,但在这里感觉最温暖。
作者: jiayinlb    时间: 2010-7-11 22:03
好好好
作者: yihesmxx    时间: 2010-7-12 13:08
学习下学习
作者: yihesmxx    时间: 2010-7-15 14:54
学习学习
作者: ZHENGLIAN    时间: 2010-8-18 16:06
实现多表、不同字段联合查询,但只有and 运算,而且要按字段固定顺序
作者: cnffmso    时间: 2010-12-25 12:15
谢谢分享
作者: dlchenfeng    时间: 2011-4-1 21:13
谢谢分享
作者: HOCKHE    时间: 2011-11-14 14:29
RHF FDJKLODOW
作者: 大懒猫68    时间: 2011-11-15 14:11
{:soso_e130:}
作者: 浩天    时间: 2011-11-15 14:54
使用
作者: littlekey    时间: 2011-11-20 15:23
学习一下。
作者: 周末生活    时间: 2011-12-3 14:56
thanks
作者: kpsimon    时间: 2012-2-9 01:53
谢谢分享


作者: liumporite    时间: 2012-2-25 09:21
DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
作者: jhonlone    时间: 2013-1-25 14:19
晕,看不见啊
作者: 5574916    时间: 2013-3-13 19:20
学习一下,谢谢
作者: yuayua23    时间: 2013-3-29 15:01
{:soso_e183:}
作者: 喝多野兔    时间: 2014-4-26 18:37
很有用 学习下
作者: chenwine    时间: 2014-4-28 13:50
进来看一看
作者: xu115    时间: 2014-4-30 08:46
学习下

作者: stanley_fyy    时间: 2014-8-8 19:41
谢谢分享

作者: aodou51899    时间: 2014-11-4 20:21
非常支持
作者: huang3128601    时间: 2015-3-4 14:17
看看学习

作者: 717818    时间: 2017-1-16 21:37

作者: Dtsan    时间: 2017-12-27 17:53
谢谢楼主的无私分享
作者: ahdyxlc    时间: 2018-4-27 08:43
谢谢分享 我先看看
作者: GLaDOS    时间: 2018-6-9 09:09
的点点滴滴




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3