以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]老师看下代码错在哪?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=62288)

--  作者:huangfanzi
--  发布时间:2014/12/29 13:57:00
--  [求助]老师看下代码错在哪?
e.Form.Controls("DateTimePicker_日期").Text = Nothing  ‘这一句有错误
e.Form.Controls("ComboBox_审核").Text = Nothing  ‘这一句没有错误

错误提示:
.NET Framework 版本:2.0.50727.6421
Foxtable 版本:2014.10.23.1
错误所在事件:
详细错误信息:
无法在 System.DateTime 和 System.String 上执行“=”操作。
[此贴子已经被作者于2014-12-29 13:58:25编辑过]

--  作者:Bin
--  发布时间:2014/12/29 14:00:00
--  
e.Form.Controls("DateTimePicker_日期").Value= Nothing  ‘这
--  作者:有点甜
--  发布时间:2014/12/29 14:00:00
--  
e.Form.Controls("DateTimePicker_日期").Value = Nothing
--  作者:huangfanzi
--  发布时间:2014/12/29 14:06:00
--  
还是错的,我感觉错误的代码是在另一段造成的,我把详细详细情况说下:
窗口中有一清除筛选按钮,代码如下:
e.Form.Controls("DateTimePicker_日期").Value = Nothing
e.Form.Controls("ComboBox_卷号").value = Nothing
e.Form.Controls("ComboBox_审核").Text = Nothing
Tables("生产记录表").Filter = ""

有一日期输入框,ValueChanged 的代码如下:
If e.Form.Controls("CheckBox_联动筛选").Checked = True Then
    Dim rq As WinForm.DateTimePicker  = e.Form.Controls("DateTimePicker_日期")
    Dim jh As WinForm.ComboBox = e.Form.Controls("ComboBox_卷号")
    Dim sh As WinForm.ComboBox = e.Form.Controls("ComboBox_审核")
    jh.ComboList = DataTables("生产记录表").GetComboListString("卷号","日期= \'" & rq.value & "\'" )
    Tables("生产记录表").Filter="[日期] = \'" & e.Sender.Value & "\'"
Else
    e.Form.Controls("ComboBox_卷号").Value = Nothing
    e.Form.Controls("ComboBox_审核").Value = Nothing
    Tables("生产记录表").Filter="[日期] = \'" & e.Sender.Value & "\'"
End If

--  作者:Bin
--  发布时间:2014/12/29 14:12:00
--  
ables("生产记录表").Filter="[日期] = #" & e.Sender.Value & "#"
--  作者:有点甜
--  发布时间:2014/12/29 14:16:00
--  
 日期都要用#号包裹
--  作者:huangfanzi
--  发布时间:2014/12/29 14:20:00
--  
原方法可以按日期进行筛选的,只是点了清除筛选才会出错,按老师的方法改,依旧是点了清除筛选后出错,但出现了不同的错误提示。

If e.Form.Controls("CheckBox_联动筛选").Checked = True Then
    Dim rq As WinForm.DateTimePicker  = e.Form.Controls("DateTimePicker_日期")
    Dim jh As WinForm.ComboBox = e.Form.Controls("ComboBox_卷号")
    Dim sh As WinForm.ComboBox = e.Form.Controls("ComboBox_审核")
    jh.ComboList = DataTables("生产记录表").GetComboListString("卷号","日期=  \'" & rq.value & "\'" )
    
    Tables("生产记录表").Filter="[日期] = #" & e.Sender.Value & "#"
Else
    e.Form.Controls("ComboBox_卷号").Value = Nothing
    e.Form.Controls("ComboBox_审核").Value = Nothing
    Tables("生产记录表").Filter="[日期] = #" & e.Sender.Value & "#"
End If


.NET Framework 版本:2.0.50727.6421
Foxtable 版本:2014.10.23.1
错误所在事件:
详细错误信息:
表达式包含无效的日期常量“##”。


--  作者:有点甜
--  发布时间:2014/12/29 14:21:00
--  
If e.Sender.Text <> Nothing Then
    If e.Form.Controls("CheckBox_联动筛选").Checked = True Then
        Dim rq As WinForm.DateTimePicker  = e.Form.Controls("DateTimePicker_日期")
        Dim jh As WinForm.ComboBox = e.Form.Controls("ComboBox_卷号")
        Dim sh As WinForm.ComboBox = e.Form.Controls("ComboBox_审核")
        jh.ComboList = DataTables("生产记录表").GetComboListString("卷号","日期=#" & rq.value & "#")
       
        Tables("生产记录表").Filter="[日期] = #" & e.Sender.Text & "#"
    Else
        e.Form.Controls("ComboBox_卷号").Value = Nothing
        e.Form.Controls("ComboBox_审核").Value = Nothing
        Tables("生产记录表").Filter="[日期] = #" & e.Sender.Text & "#"
    End If
End If

 


--  作者:huangfanzi
--  发布时间:2014/12/29 14:26:00
--  
搞定了,但我感觉原来错误的地方是由老师新加的第一个IF判断解决的,’ 改成 # 并不是主要原因,因为我尝试了下,用以下代码一样能正确执行,老师看看这是为什么?
If e.Sender.Text <> Nothing Then
    If e.Form.Controls("CheckBox_联动筛选").Checked = True Then
        Dim rq As WinForm.DateTimePicker  = e.Form.Controls("DateTimePicker_日期")
        Dim jh As WinForm.ComboBox = e.Form.Controls("ComboBox_卷号")
        Dim sh As WinForm.ComboBox = e.Form.Controls("ComboBox_审核")
        jh.ComboList = DataTables("生产记录表").GetComboListString("卷号","日期=\'" & rq.value & "\'")
        
        Tables("生产记录表").Filter="[日期] = \'" & e.Sender.Text & "\'"
    Else
        e.Form.Controls("ComboBox_卷号").Value = Nothing
        e.Form.Controls("ComboBox_审核").Value = Nothing
        Tables("生产记录表").Filter="[日期] = \'" & e.Sender.Text & "\'"
    End If
End If

--  作者:有点甜
--  发布时间:2014/12/29 14:27:00
--  
 不应该,能执行就好。