设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 2981|回复: 10
打印 上一主题 下一主题

[窗体] 组合框求助任意位置查询

[复制链接]
跳转到指定楼层
1#
发表于 2011-5-17 11:02:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我现在做一个程序,由于有大量数据查询,需要在组合框中进行拼音字段任意位置进行模糊查询,access只能从左边开始,希望能得到帮助

本帖子中包含更多资源

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

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享分享 分享淘帖 订阅订阅
2#
发表于 2011-5-17 11:15:51 | 只看该作者
那是否需要在输入的change事件里修改数据源的来源呢?
3#
 楼主| 发表于 2011-5-17 11:29:01 | 只看该作者
不需要在change事件中更改数据源
4#
发表于 2011-5-17 11:36:06 | 只看该作者
帮你顶一下吧
5#
发表于 2011-5-17 15:50:17 | 只看该作者
回复 hjb016 的帖子

先参考下红尘的实例(忘了帖子的位置了,并在此对斑竹致敬)。
贴个附件上来算是借花献佛吧,希望能够起到一个抛砖引玉的作用:

本帖子中包含更多资源

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

x
6#
发表于 2011-5-17 20:46:43 | 只看该作者
这里遇到点问题,上传不了附件,现在代码帖给你,你自己复制到VBA里.看看是不是这个效果.
Option Compare Database
Private b
Private Sub cmbpm_AfterUpdate()
    Me.txtgg = Me.cmbpm.Column(2)
    Me.txtph = Me.cmbpm.Column(3)
    Me.cmbpm = Me.cmbpm.Column(1)
End Sub
Private Sub cmbpm_Change()
    Dim a As String
    a = Me.cmbpm.Text
    Me.cmbpm.RowSource = "SELECT py, pm, gg, ph FROM tblspml " _
        & "Where py like '*" & a & "*' Or pm like '*" & a & "*' Or gg like '*" & a & "*' Or ph Like '*" & a & "*' ORDER BY py"
    Me.cmbpm.Dropdown
   
End Sub
Private Sub cmbpm_Enter()
    Me.cmbpm.RowSource = "SELECT py, pm, gg, ph FROM tblspml ORDER BY py"
End Sub
Private Sub cmbpm_KeyDown(KeyCode As Integer, Shift As Integer)
    Select Case KeyCode
    Case vbKeyUp, vbKeyDown
        Me.cmbpm.OnChange = ""
    Case Else
        Me.cmbpm.OnChange = "[Event Procedure]"
    End Select
   
End Sub
Private Sub cmbpm_NotInList(NewData As String, Response As Integer)
    Dim ctl As Control
    Set ctl = Me!cmbpm
    Response = acDataErrContinue
    ctl.Undo
    Me.cmbpm = b
    Me.cmbpm.RowSource = "SELECT py, pm, gg, ph FROM tblspml ORDER BY py"
    SendKeys ("{Tab}")
   
End Sub





7#
 楼主| 发表于 2011-5-18 14:31:31 | 只看该作者
我试一下,多谢!
8#
发表于 2011-5-18 15:49:11 | 只看该作者
本帖最后由 简 于 2011-5-18 15:52 编辑

回复咱家是猫:

我用你的代码帮他测试了,完全通过。

我自己也学习了,你这种拼音查询的方法与todaynew老汉的拼音查询方法不一样,不过个人觉得,将拼音做为单独字段来处理,似乎更简单些。
9#
发表于 2011-5-18 16:00:11 | 只看该作者
咱家是猫 发表于 2011-5-17 20:46
这里遇到点问题,上传不了附件,现在代码帖给你,你自己复制到VBA里.看看是不是这个效果.
Option Compare Dat ...

我想请教两个问题:
第一个问题:
cmbpm_KeyDown事件起什么作用呢,我按键盘上的pageUP和pageDown键没有反应。

第二个问题:
Private b和Me.cmbpm = b起什么作用呢?
10#
发表于 2011-5-19 08:00:55 | 只看该作者
回楼上
1 欲响应键击下事件,需打开窗体的"键预览"属性.
2 愿意是当光标进入时用b记录下原始值(因为有时是更改),当输入新值不在列表中后(输入错误或其他原因),自动恢复为原始值.这里代码忘写记录原始值的过程了.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-13 15:23 , Processed in 0.095687 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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