Office中国论坛/Access中国论坛

标题: 求教,我的文本框为什么会有输入问题? [打印本页]

作者: hzj2000    时间: 2004-5-3 00:54
标题: 求教,我的文本框为什么会有输入问题?
求教,我的文本框为什么会有输入问题?[attach]4524[/attach]
作者: hzj2000    时间: 2004-5-5 04:03
我的问题是不是难倒大家了呢,
我想应该是吧,困为连我自己怎么检查也找不到错误之处。
作者: zhuyiwen    时间: 2004-5-5 04:55
不明白
作者: 我同意    时间: 2004-5-5 05:49
标题: 注意我的解决办法
[attach]4548[/attach]
你的窗里问题原因确实搞不清
但换个思路,我重建了一个窗。(只做了一个条件)
注意代码中的内容与你原窗的细微差别:
1。子窗文本与表字段同名(我的例子:色值IU),其他你自己改吧
2。子窗筛选内容与设置On次序
作者: zhuyiwen    时间: 2004-5-5 06:20

过滤条件中的字段名是错的!!!
下面的代码已更正.

Private Sub cmd查询_Click()

On Error GoTo Err_cmd查询_Click

    Dim strWhere As String  '定义条件字符串
   
    strWhere = "" '设定初始值-空字符串
     
   

    '判断【编号】条件是否有输入的值,由于有【编号开始】【编号截止】两个文本框
    '所以要分开来考虑
    If Not IsNull(Me.编号开始) Then
        '【编号开始】有输入
        strWhere = strWhere & " AND ([编号] >= " & Me.编号开始 & ")"
    End If
   
    If Not IsNull(Me.编号截止) Then
        strWhere = strWhere & " AND ([编号] <= " & Me.编号截止 & ")"
    End If
   
    '判断【日期】条件是否有输入的值,由于有【日期开始】【日期截止】两个文本框
    '所以要分开来考虑
    If Not IsNull(Me.日期开始) Then
        '【日期开始】有输入
        strWhere = strWhere & " AND ([日期] >= #" & Format(Me.日期开始, "yyyy-mm-dd") & "#)"
    End If
   
    If Not IsNull(Me.日期截止) Then
        '【日期截止】有输入
        strWhere = strWhere & " AND ([日期] <= #" & Format(Me.日期截止, "yyyy-mm-dd") & "#)"
    End If

    '判断【色值】条件是否有输入的值,由于有【色值开始】【色值截止】两个文本框
    '所以要分开来考虑
    If Not IsNull(Me.色值开始) Then
        '【色值开始】有输入
        strWhere = strWhere & " AND ([色值IU] >= " & Me.色值开始 & ")"
    End If
    If Not IsNull(Me.色值截止) Then
        '【色值截止】有输入
        strWhere = strWhere & " AND ([色值IU] <= " & Me.色值截止 & ")"
    End If
   
   
        '判断【粒度】条件是否有输入的值,由于有【粒度开始】【粒度截止】两个文本框
    '所以要分开来考虑
    If Not IsNull(Me.粒度开始) Then
        '【粒度开始】有输入
        strWhere = strWhere & " AND ([粒度]>=" & Me.粒度开始 & ")"
    End If
    If Not IsNull(Me.粒度截止) Then
        '【粒度截止】有输入
        strWhere = strWhere & " AND ([粒度] <= " & Me.粒度截止 & ")"
    End If

       '判断【二氧化硫】条件是否有输入的值,由于有【二氧化硫开始】【二氧化硫截止】两个文本框
    '所以要分开来考虑
    If Not IsNull(Me.二氧化硫开始) Then
        '【二氧化硫开始】有输入
        strWhere = strWhere & " AND ([二氧化硫] >= " & Me.二氧化硫开始 & ")"
    End If
    If Not IsNull(Me.二氧化硫截止) Then
        '【二氧化硫截止】有输入
        strWhere = strWhere & " AND ([二氧化硫] <= " & Me.二氧化硫截止 & ")"
    End If
   

        '判断【不溶物】条件是否有输入的值,由于有【不溶物开始】【不溶物截止】两个文本框
    '所以要分开来考虑
    If Not IsNull(Me.不溶物开始) Then
        '【不溶物开始】有输入
        strWhere = strWhere & " AND ([不溶物 mg/Kg] >= " & Me.不溶物开始 & ")"
    End If
    If Not IsNull(Me.不溶物截止) Then
        '【不溶物截止】有输入
        strWhere = strWhere & " AND ([不溶物 mg/Kg] <= " & Me.不溶物截止 & ")"
    End If
   
      '如果输入了条件,那么strWhere的最后肯定有" AND ",这是我们不需要的,
    '要用LEFT函数截掉这5个字符。
    If Len(strWhere) > 0 Then
        '有输入条件
        strWhere = Mid(strWhere, 6)
    End If
     
   
    '让子窗体应用窗体查询
    Me.白砂糖子窗体.Form.Filter = strWhere
   
    Me.白砂糖子窗体.Form.FilterOn = True

   


Exit_cmd查询_Click:
    Exit Sub

Err_cmd查询_Click:
    MsgBox Err.Description
    Resume Exit_cmd查询_Click

End Sub





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