子窗口里搜索怎么做?

cBeginner 2002-09-07 12:37:06
有一个ComboBox,如果我选Str,在TextBox理就可以输入关键字,包括可以输入*,*代表任何字符串,比如*a*。如果我在ComboBox里选Number,在TextBox里只能输入数字,如果输入字符就弹出错误信息窗口。在Access的Form里VB应该怎么写?写在哪个事件(Event)里比较合适?
...全文
16 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
cBeginner 2002-09-10
  • 打赏
  • 举报
回复
Private Sub Text8_Click()
If Me.Combo6.Value = "consignment" Then
Me.sub_delivery.Form.Filter = "where sub1.consignment like """ + Me.Text8.Value + """"
Me.sub_delivery.Form.FilterOn = True
Else
Me.sub_delivery.Form.Filter = "where sub1.Order =" + Me.Text8.Value
Me.sub_delivery.Form.FilterOn = True
End If
End Sub
==================================
Run-time error '94':

Invalid use of NULL
cBeginner 2002-09-10
  • 打赏
  • 举报
回复
我的搜索功能不能有按钮,要直接打回车
cBeginner 2002-09-10
  • 打赏
  • 举报
回复
我把鼠标一电到TextBox里就出现那个错误,

我把代码放到AfterUpdate()就会出现下面的错误
Run-time error '2164':

You can't disable a control while it has the focus.

我该怎么办?
icevi 2002-09-09
  • 打赏
  • 举报
回复
用isnumeric(me.text1.value)就行了。
icevi 2002-09-09
  • 打赏
  • 举报
回复
忘了对数字做判断了。你自己写判断吧。
icevi 2002-09-09
  • 打赏
  • 举报
回复
还是下不下来。
还是按我上面说的方法。不过我觉得最好是加一个按钮,为“开始搜索”,否则在textbox里每打一个字就会进行一次过滤也不好。
在这个按钮的click事件里写代码:
if me.combobox1.value="consignment" then
me.sumform_1.form.filter="where consignment like """
+me.textbox1.value+""""
me.subform_2.form.filteron=true
else
me.sumform_1.form.filter="where id ="+me.textbox1.value
me.subform_2.form.filteron=true
end if

再另加一个按钮“取消过滤”,click里写代码:
me.subform_2.form.filteron=false

不知道明白没有?

其实如果你能熟悉ACCESS或者愿意教给用户用的话,直接在子窗体上在需要过滤的那一栏点鼠标右键,就会出来一个菜单,里面可以在“筛选目标”里直接写过滤条件。
比如在ID一栏就写78 ,按回车就会选出78这一条。
在consignment一栏写 like "*f*" 就会达到你要的效果了。


cBeginner 2002-09-09
  • 打赏
  • 举报
回复
这么快就回了:)
http://www11.brinkster.com/karlcheng/form.zip
http://www11.brinkster.com/karlcheng/add.zip
我能下,你再试试。最右边的那个TextBox是做搜索用的,如果ComboBox里选Consignment,在TextBox里打*f*就要在下面列出所有有f的consignment
如果ComboBox里选Order,在TextBox里只能输入数字,在下面要列出所有这个ID的数据。这是搜索功能,不能去掉的。
icevi 2002-09-09
  • 打赏
  • 举报
回复
笔误, 上面两个都应该是sumform_1。没有sumform_2
icevi 2002-09-09
  • 打赏
  • 举报
回复
下不下来。你的说法与搜索没有关系呀,好象只是进行录入检核哦。
是不是要根据这个东东来对子窗体进行过滤?
这样写:
me.sumform_1.form.filter="where name like """+me.textbox1.value+""""
me.subform_2.form.filteron=true

以后记得要将filteron改为false才能看到全部数据。

我昨天看你的文件好象是这个意思。试下。
好象这样子,检核的程序做不做关系不大,要是录入不对,也得不到结果。
cBeginner 2002-09-09
  • 打赏
  • 举报
回复
www11.brinkster.com/karlcheng/add.zip
这个也看一下吧,我就剩下这两个了,因为没有学过VBA代码,所以一直做不出来。
我根据你的提示我都已经尽力做了。
cBeginner 2002-09-09
  • 打赏
  • 举报
回复
www11.brinkster.com/karlcheng/form.zip

这个是我目前所做的Form,那个搜索功能我实在是不知道应该怎么做,我没有学过VBA,可以给点思路或Code吗?
cBeginner 2002-09-08
  • 打赏
  • 举报
回复
不知道具体的VB代码怎么写,我能不能把我的几个问题发给你,你帮忙看一下。因为我不是搞数据库的,急用!谢谢了
icevi 2002-09-07
  • 打赏
  • 举报
回复
在textbox的change事件里写代码,根据combobax.value来做不同的判断。

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧