平台查询支持文字、拼音模糊查询-yuhong
Access软件网QQ交流学习群(群号码198465573),欢迎您的加入!
首页 >技术文章> Access开发平台


平台查询支持文字、拼音模糊查询

发表时间:2019/1/3 15:48:51 评论(3) 浏览(10714)  评论 | 加入收藏 | 复制
   
摘 要:平台查询支持文字、拼音模糊查询
正 文:

前一段时间有人问我平台查询支持文字、拼音模糊查询是怎么弄的,其实就是把别人的代码拿来,加到平台里了。

一、新建一个模块,复制加进如下代码(用了两个拼音函数):

Option Compare Database
Option Explicit
Public Function Getpyszm(ByVal Chs As String, Optional bList As Boolean = True) As String
    Dim ardata(-20319 To -10247) As String
    ardata(-20319) = " a"
    ardata(-20317) = " ai"
    ardata(-20304) = " an"
    ardata(-20295) = " ang"
    ardata(-20292) = " ao"
    ardata(-20283) = " ba"
    ardata(-20265) = " bai"
    ardata(-20257) = " ban"
    ardata(-20242) = " bang"
    ardata(-20230) = " bao"
    ardata(-20051) = " bei"
    ardata(-20036) = " ben"
    ardata(-20032) = " beng"
    ardata(-20026) = " bi"
    ardata(-20002) = " bian"
    ardata(-19990) = " biao"
    ardata(-19986) = " bie"
    ardata(-19982) = " bin"
    ardata(-19976) = " bing"
    ardata(-19805) = " bo"
    ardata(-19784) = " bu"
    ardata(-19775) = " ca"
    ardata(-19774) = " cai"
    ardata(-19763) = " can"
    ardata(-19756) = " cang"
    ardata(-19751) = " cao"
    ardata(-19746) = " ce"
    ardata(-19741) = " ceng"
    ardata(-19739) = " cha"
    ardata(-19728) = " chai"
    ardata(-19725) = " chan"
    ardata(-19715) = " chang"
    ardata(-19540) = " chao"
    ardata(-19531) = " che"
    ardata(-19525) = " chen"
    ardata(-19515) = " cheng"
    ardata(-19500) = " chi"
    ardata(-19484) = " chong"
    ardata(-19479) = " chou"
    ardata(-19467) = " chu"
    ardata(-19289) = " chuai"
    ardata(-19288) = " chuan"
    ardata(-19281) = " chuang"
    ardata(-19275) = " chui"
    ardata(-19270) = " chun"
    ardata(-19263) = " chuo"
    ardata(-19261) = " ci"
    ardata(-19249) = " cong"
    ardata(-19243) = " cou"
    ardata(-19242) = " cu"
    ardata(-19238) = " cuan"
    ardata(-19235) = " cui"
    ardata(-19227) = " cun"
    ardata(-19224) = " cuo"
    ardata(-19218) = " da"
    ardata(-19212) = " dai"
    ardata(-19038) = " dan"
    ardata(-19023) = " dang"
    ardata(-19018) = " dao"
    ardata(-19006) = " de"
    ardata(-19003) = " deng"
    ardata(-18996) = " di"
    ardata(-18977) = " dian"
    ardata(-18961) = " diao"
    ardata(-18952) = " die"
    ardata(-18783) = " ding"
    ardata(-18774) = " diu"
    ardata(-18773) = " dong"
    ardata(-18763) = " dou"
    ardata(-18756) = " du"
    ardata(-18741) = " duan"
    ardata(-18735) = " dui"
    ardata(-18731) = " dun"
    ardata(-18722) = " duo"
    ardata(-18710) = " e"
    ardata(-18697) = " en"
    ardata(-18696) = " er"
    ardata(-18526) = " fa"
    ardata(-18518) = " fan"
    ardata(-18501) = " fang"
    ardata(-18490) = " fei"
    ardata(-18478) = " fen"
    ardata(-18463) = " feng"
    ardata(-18448) = " fo"
    ardata(-18447) = " fou"
    ardata(-18446) = " fu"
    ardata(-18239) = " ga"
    ardata(-18237) = " gai"
    ardata(-18231) = " gan"
    ardata(-18220) = " gang"
    ardata(-18211) = " gao"
    ardata(-18201) = " ge"
    ardata(-18184) = " gei"
    ardata(-18183) = " gen"
    ardata(-18181) = " geng"
    ardata(-18012) = " gong"
    ardata(-17997) = " gou"
    ardata(-17988) = " gu"
    ardata(-17970) = " gua"
    ardata(-17964) = " guai"
    ardata(-17961) = " guan"
    ardata(-17950) = " guang"
    ardata(-17947) = " gui"
    ardata(-17931) = " gun"
    ardata(-17928) = " guo"
    ardata(-17922) = " ha"
    ardata(-17759) = " hai"
    ardata(-17752) = " han"
    ardata(-17733) = " hang"
    ardata(-17730) = " hao"
    ardata(-17721) = " he"
    ardata(-17703) = " hei"
    ardata(-17701) = " hen"
    ardata(-17697) = " heng"
    ardata(-17692) = " hong"
    ardata(-17683) = " hou"
    ardata(-17676) = " hu"
    ardata(-17496) = " hua"
    ardata(-17487) = " huai"
    ardata(-17482) = " huan"
    ardata(-17468) = " huang"
    ardata(-17454) = " hui"
    ardata(-17433) = " hun"
    ardata(-17427) = " huo"
    ardata(-17417) = " ji"
    ardata(-17202) = " jia"
    ardata(-17185) = " jian"
    ardata(-16983) = " jiang"
    ardata(-16970) = " jiao"
    ardata(-16942) = " jie"
    ardata(-16915) = " jin"
    ardata(-16733) = " jing"
    ardata(-16708) = " jiong"
    ardata(-16706) = " jiu"
    ardata(-16689) = " ju"
    ardata(-16664) = " juan"
    ardata(-16657) = " jue"
    ardata(-16647) = " jun"
    ardata(-16474) = " ka"
    ardata(-16470) = " kai"
    ardata(-16465) = " kan"
    ardata(-16459) = " kang"
    ardata(-16452) = " kao"
    ardata(-16448) = " ke"
    ardata(-16433) = " ken"
    ardata(-16429) = " keng"
    ardata(-16427) = " kong"
    ardata(-16423) = " kou"
    ardata(-16419) = " ku"
    ardata(-16412) = " kua"
    ardata(-16407) = " kuai"
    ardata(-16403) = " kuan"
    ardata(-16401) = " kuang"
    ardata(-16393) = " kui"
    ardata(-16220) = " kun"
    ardata(-16216) = " kuo"
    ardata(-16212) = " la"
    ardata(-16205) = " lai"
    ardata(-16202) = " lan"
    ardata(-16187) = " lang"
    ardata(-16180) = " lao"
    ardata(-16171) = " le"
    ardata(-16169) = " lei"
    ardata(-16158) = " leng"
    ardata(-16155) = " li"
    ardata(-15959) = " lia"
    ardata(-15958) = " lian"
    ardata(-15944) = " liang"
    ardata(-15933) = " liao"
    ardata(-15920) = " lie"
    ardata(-15915) = " lin"
    ardata(-15903) = " ling"
    ardata(-15889) = " liu"
    ardata(-15878) = " long"
    ardata(-15707) = " lou"
    ardata(-15701) = " lu"
    ardata(-15681) = " lv"
    ardata(-15667) = " luan"
    ardata(-15661) = " lue"
    ardata(-15659) = " lun"
    ardata(-15652) = " luo"
    ardata(-15640) = " ma"
    ardata(-15631) = " mai"
    ardata(-15625) = " man"
    ardata(-15454) = " mang"
    ardata(-15448) = " mao"
    ardata(-15436) = " me"
    ardata(-15435) = " mei"
    ardata(-15419) = " men"
    ardata(-15416) = " meng"
    ardata(-15408) = " mi"
    ardata(-15394) = " mian"
    ardata(-15385) = " miao"
    ardata(-15377) = " mie"
    ardata(-15375) = " min"
    ardata(-15369) = " ming"
    ardata(-15363) = " miu"
    ardata(-15362) = " mo"
    ardata(-15183) = " mou"
    ardata(-15180) = " mu"
    ardata(-15165) = " na"
    ardata(-15158) = " nai"
    ardata(-15153) = " nan"
    ardata(-15150) = " nang"
    ardata(-15149) = " nao"
    ardata(-15144) = " ne"
    ardata(-15143) = " nei"
    ardata(-15141) = " nen"
    ardata(-15140) = " neng"
    ardata(-15139) = " ni"
    ardata(-15128) = " nian"
    ardata(-15121) = " niang"
    ardata(-15119) = " niao"
    ardata(-15117) = " nie"
    ardata(-15110) = " nin"
    ardata(-15109) = " ning"
    ardata(-14941) = " niu"
    ardata(-14937) = " nong"
    ardata(-14933) = " nu"
    ardata(-14930) = " nv"
    ardata(-14929) = " nuan"
    ardata(-14928) = " nue"
    ardata(-14926) = " nuo"
    ardata(-14922) = " o"
    ardata(-14921) = " ou"
    ardata(-14914) = " pa"
    ardata(-14908) = " pai"
    ardata(-14902) = " pan"
    ardata(-14894) = " pang"
    ardata(-14889) = " pao"
    ardata(-14882) = " pei"
    ardata(-14873) = " pen"
    ardata(-14871) = " peng"
    ardata(-14857) = " pi"
    ardata(-14678) = " pian"
    ardata(-14674) = " piao"
    ardata(-14670) = " pie"
    ardata(-14668) = " pin"
    ardata(-14663) = " ping"
    ardata(-14654) = " po"
    ardata(-14645) = " pu"
    ardata(-14630) = " qi"
    ardata(-14594) = " qia"
    ardata(-14429) = " qian"
    ardata(-14407) = " qiang"
    ardata(-14399) = " qiao"
    ardata(-14384) = " qie"
    ardata(-14379) = " qin"
    ardata(-14368) = " qing"
    ardata(-14355) = " qiong"
    ardata(-14353) = " qiu"
    ardata(-14345) = " qu"
    ardata(-14170) = " quan"
    ardata(-14159) = " que"
    ardata(-14151) = " qun"
    ardata(-14149) = " ran"
    ardata(-14145) = " rang"
    ardata(-14140) = " rao"
    ardata(-14137) = " re"
    ardata(-14135) = " ren"
    ardata(-14125) = " reng"
    ardata(-14123) = " ri"
    ardata(-14122) = " rong"
    ardata(-14112) = " rou"
    ardata(-14109) = " ru"
    ardata(-14099) = " ruan"
    ardata(-14097) = " rui"
    ardata(-14094) = " run"
    ardata(-14092) = " ruo"
    ardata(-14090) = " sa"
    ardata(-14087) = " sai"
    ardata(-14083) = " san"
    ardata(-13917) = " sang"
    ardata(-13914) = " sao"
    ardata(-13910) = " se"
    ardata(-13907) = " sen"
    ardata(-13906) = " seng"
    ardata(-13905) = " sha"
    ardata(-13896) = " shai"
    ardata(-13894) = " shan"
    ardata(-13878) = " shang"
    ardata(-13870) = " shao"
    ardata(-13859) = " she"
    ardata(-13847) = " shen"
    ardata(-13831) = " sheng"
    ardata(-13658) = " shi"
    ardata(-13611) = " shou"
    ardata(-13601) = " shu"
    ardata(-13406) = " shua"
    ardata(-13404) = " shuai"
    ardata(-13400) = " shuan"
    ardata(-13398) = " shuang"
    ardata(-13395) = " shui"
    ardata(-13391) = " shun"
    ardata(-13387) = " shuo"
    ardata(-13383) = " si"
    ardata(-13367) = " song"
    ardata(-13359) = " sou"
    ardata(-13356) = " su"
    ardata(-13343) = " suan"
    ardata(-13340) = " sui"
    ardata(-13329) = " sun"
    ardata(-13326) = " suo"
    ardata(-13318) = " ta"
    ardata(-13147) = " tai"
    ardata(-13138) = " tan"
    ardata(-13120) = " tang"
    ardata(-13107) = " tao"
    ardata(-13096) = " te"
    ardata(-13095) = " teng"
    ardata(-13091) = " ti"
    ardata(-13076) = " tian"
    ardata(-13068) = " tiao"
    ardata(-13063) = " tie"
    ardata(-13060) = " ting"
    ardata(-12888) = " tong"
    ardata(-12875) = " tou"
    ardata(-12871) = " tu"
    ardata(-12860) = " tuan"
    ardata(-12858) = " tui"
    ardata(-12852) = " tun"
    ardata(-12849) = " tuo"
    ardata(-12838) = " wa"
    ardata(-12831) = " wai"
    ardata(-12829) = " wan"
    ardata(-12812) = " wang"
    ardata(-12802) = " wei"
    ardata(-12607) = " wen"
    ardata(-12597) = " weng"
    ardata(-12594) = " wo"
    ardata(-12585) = " wu"
    ardata(-12556) = " xi"
    ardata(-12359) = " xia"
    ardata(-12346) = " xian"
    ardata(-12320) = " xiang"
    ardata(-12300) = " xiao"
    ardata(-12120) = " xie"
    ardata(-12099) = " xin"
    ardata(-12089) = " xing"
    ardata(-12074) = " xiong"
    ardata(-12067) = " xiu"
    ardata(-12058) = " xu"
    ardata(-12039) = " xuan"
    ardata(-11867) = " xue"
    ardata(-11861) = " xun"
    ardata(-11847) = " ya"
    ardata(-11831) = " yan"
    ardata(-11798) = " yang"
    ardata(-11781) = " yao"
    ardata(-11604) = " ye"
    ardata(-11589) = " yi"
    ardata(-11536) = " yin"
    ardata(-11358) = " ying"
    ardata(-11340) = " yo"
    ardata(-11339) = " yong"
    ardata(-11324) = " you"
    ardata(-11303) = " yu"
    ardata(-11097) = " yuan"
    ardata(-11077) = " yue"
    ardata(-11067) = " yun"
    ardata(-11055) = " za"
    ardata(-11052) = " zai"
    ardata(-11045) = " zan"
    ardata(-11041) = " zang"
    ardata(-11038) = " zao"
    ardata(-11024) = " ze"
    ardata(-11020) = " zei"
    ardata(-11019) = " zen"
    ardata(-11018) = " zeng"
    ardata(-11014) = " zha"
    ardata(-10838) = " zhai"
    ardata(-10832) = " zhan"
    ardata(-10815) = " zhang"
    ardata(-10800) = " zhao"
    ardata(-10790) = " zhe"
    ardata(-10780) = " zhen"
    ardata(-10764) = " zheng"
    ardata(-10587) = " zhi"
    ardata(-10544) = " zhong"
    ardata(-10533) = " zhou"
    ardata(-10519) = " zhu"
    ardata(-10331) = " zhua"
    ardata(-10329) = " zhuai"
    ardata(-10328) = " zhuan"
    ardata(-10322) = " zhuang"
    ardata(-10315) = " zhui"
    ardata(-10309) = " zhun"
    ardata(-10307) = " zhuo"
    ardata(-10296) = " zi"
    ardata(-10281) = " zong"
    ardata(-10274) = " zou"
    ardata(-10270) = " zu"
    ardata(-10262) = " zuan"
    ardata(-10260) = " zui"
    ardata(-10256) = " zun"
    ardata(-10254) = " zuo"
    
    Dim stmp As String
    Dim i As Integer
    Dim ii As Integer


    For i = 1 To IIf(bList, Len(Chs), 1)
        stmp = Mid(Chs, i, 1)
        If Asc(stmp) > -10247 or Asc(stmp) < -20319 Then
            Getpyszm = Getpyszm & stmp
        Else
            For ii = Asc(stmp) To -20319 Step -1
                If Len(ardata(ii)) Then
                    '完整拼音
                    ' Getpyszm = Getpyszm & ardata(ii)
                    '取拼音首字母
                    Getpyszm = Getpyszm & Mid(ardata(ii), 2, 1)
                    Exit For
                End If
            Next
        End If
    Next
   'vbProperCase 将字符串中每个词的第一个字母转换成大写。
   ' Getpy = Trim(StrConv(Getpy, vbProperCase))
   'vbUpperCase 将字符串转换成大写字符。
     Getpyszm = Trim(StrConv(Getpyszm, vbUpperCase))
End Function
Public Function HZtoPY(ByVal strHZ As String) As String
    Dim i As Integer, intCountHZ As Integer
    Dim HZ As String


    strHZ = Trim(strHZ)
    intCountHZ = Len(strHZ)
    HZtoPY = ""


    For i = 1 To intCountHZ
        HZ = Mid(strHZ, i, 1)
        Select Case ChrW(AscW(HZ))
        Case ChrW(&H5416) To ChrW(&H93CA): HZtoPY = HZtoPY & "A"
        Case ChrW(&H516B) To ChrW(&H7C3F): HZtoPY = HZtoPY & "B"
        Case ChrW(&H5693) To ChrW(&H9519): HZtoPY = HZtoPY & "C"
        Case ChrW(&H54D2) To ChrW(&H8DFA): HZtoPY = HZtoPY & "D"
        Case ChrW(&H5C59) To ChrW(&H8D30): HZtoPY = HZtoPY & "E"
        Case ChrW(&H53D1) To ChrW(&H99A5): HZtoPY = HZtoPY & "F"
        Case ChrW(&H65EE) To ChrW(&H8FC7): HZtoPY = HZtoPY & "G"
        Case ChrW(&H94EA) To ChrW(&H8816): HZtoPY = HZtoPY & "H"
        '''' "I"  -- ?;T;
        Case ChrW(&H4E0C) To ChrW(&H7AE3): HZtoPY = HZtoPY & "J"
        Case ChrW(&H5494) To ChrW(&H5ED3): HZtoPY = HZtoPY & "K"
        Case ChrW(&H5783) To ChrW(&H96D2): HZtoPY = HZtoPY & "L"
        Case ChrW(&H5988) To ChrW(&H7A46): HZtoPY = HZtoPY & "M"
        Case ChrW(&H62FF) To ChrW(&H7CEF): HZtoPY = HZtoPY & "N"
        Case ChrW(&H5662) To ChrW(&H6CA4): HZtoPY = HZtoPY & "O"
        Case ChrW(&H8DB4) To ChrW(&H66DD): HZtoPY = HZtoPY & "P"
        Case ChrW(&H4E03) To ChrW(&H7FA4): HZtoPY = HZtoPY & "Q"
        Case ChrW(&H86BA) To ChrW(&H7BAC): HZtoPY = HZtoPY & "R"
        Case ChrW(&H7BAC) To ChrW(&H9501): HZtoPY = HZtoPY & "S"
        Case ChrW(&H4ED6) To ChrW(&H7BA8): HZtoPY = HZtoPY & "T"
            '''' "U"  -- ?;T;
            '''  "V"  -- ?;T;
        Case ChrW(&H54C7) To ChrW(&H92C8): HZtoPY = HZtoPY & "W"
        Case ChrW(&H5915) To ChrW(&H8548): HZtoPY = HZtoPY & "X"
        Case ChrW(&H8548) To ChrW(&H8574): HZtoPY = HZtoPY & "Y"
        Case ChrW(&H531D) To ChrW(&H505A): HZtoPY = HZtoPY & "Z"
        Case Else
            HZtoPY = HZtoPY & HZ
        End Select
    Next
End Function

二、如图,进平台设计视图

点击图片查看大图

三、这里的查询按钮就具有了拼音、汉字的模糊查询功能了


Access软件网交流QQ群(群号:198465573)
 
 相关文章
【access源码示例】模糊筛选子窗体\任意筛选子窗体数据\模糊查...  【红尘如烟  2012/5/19】
【Access DCount示例】模糊统计子窗体符合条件的记录数示...  【麥田  2014/4/25】
【Access DCount示例】模糊统计表中指定值的记录数示例\...  【麥田  2014/4/28】
【Access源码示例】改进后的完美实现组合框模糊搜索功能;Acc...  【红尘如烟  2015/6/24】
【Access源码】组合框模糊查询完美实现--只需一行代码  【表哥  2018/7/13】
SQL模糊查询通配符_和%处理   【宏鹏  2018/8/29】
Access快速开发平台--组合框模糊筛选在明细窗体中使用异常的解...  【易勋  2018/12/27】
常见问答
技术分类
相关资源
文章搜索
关于作者

yuhong

文章分类

文章存档

友情链接