Office中国论坛/Access中国论坛

标题: 求助一段程序 [打印本页]

作者: dhlyh    时间: 2008-12-13 22:04
标题: 求助一段程序
查询中用了如下一段代码,使用后发现有个问题,就是如果当在文本框中输入的单位名称如果表1中没有,那么下面的子窗体就成了空白,除非把程序关闭,再开启,才能回到初始状态,我想加段if的语句,判断如果输入的单位名称数据库中没有,那么弹出个窗口提示使用者输入有错误,点确定或者是其它的键吧然后回到初始的数据库状态,写了好多次都不对,哪位高手帮个忙 给段代码 谢谢
Private Sub Text33_Change()
Dim tj As String
tj = Me.Text33.Text
Me.Form.Filter = "单位名称 like '*" & tj & "*'"
Me.Form.FilterOn = True
Me.表1_子窗体.Form.Filter = "单位名称 like '*" & tj & "*'"
Me.表1_子窗体.Form.FilterOn = True
'Me.Requery
Me.表1_子窗体.Requery
SendKeys "{F2}"
End Sub
作者: tmtony    时间: 2008-12-13 22:21
使用 dao或ado或 Dlookup先判断 有否相应数据, 如何没有,则根本不执行后面的筛选程序
作者: dhlyh    时间: 2008-12-13 22:30
tmtony 能帮忙写的详细一点吗,我也是用的dlookup判断 但就是总提示用错误 麻烦了
作者: tmtony    时间: 2008-12-13 22:35
因为从代码中无法具体分析到问题所在, 能否上传相关的窗体和表上来.我在上面修改给你
作者: dhlyh    时间: 2008-12-13 22:44
谢谢tmtony ,附件传上来了 只不过我把自己后来写的那段给删除了,太烂
作者: koutx    时间: 2008-12-13 22:54
标题: 回复楼主
试试看
Private Sub Text33_Change()
On Error GoTo Err_Text33_Change

           以下添上你的语句块

   
Exit_Text33_Change:
    Exit Sub

Err_Text33_Change:
    MsgBox "库中无此记录或运行出错",'"提示"
    Resume Exit_Text33_Change
作者: Henry D. Sy    时间: 2008-12-13 23:08
  1. Private Sub Text33_Change()
  2.     Dim tj As String
  3.     Dim strWhere As String
  4.     Dim rs As DAO.Recordset

  5.     Set rs = Me.RecordsetClone
  6.     tj = Me.Text33.Text
  7.     strWhere = "单位名称 like '*" & tj & "*'"

  8.     rs.FindFirst strWhere
  9.     If rs.NoMatch Then
  10.         strWhere = ""
  11.     End If
  12.     set rs=Nothing
  13.     Me.Form.Filter = strWhere
  14.     Me.Form.FilterOn = True
  15.     SendKeys "{F2}"
  16. End Sub
复制代码

[ 本帖最后由 Henry D. Sy 于 2008-12-13 23:09 编辑 ]
作者: dhlyh    时间: 2008-12-14 08:54
谢谢二位,我知道错在哪了
作者: koutx    时间: 2008-12-14 09:38
If rs.NoMatch Then
又学一招




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