Foxtable(狐表)用户栏目专家坐堂 → 该字符串未被识别为有效的DateTime


  共有5351人关注过本帖树形打印复制链接

主题:该字符串未被识别为有效的DateTime

帅哥哟,离线,有人找我吗?
tomcat521
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:67 积分:537 威望:0 精华:0 注册:2013/10/13 6:59:00
该字符串未被识别为有效的DateTime  发帖心情 Post By:2014/1/1 19:19:00 [只看该作者]

做了一个筛选窗口:

其中【设备型号】是ComboBox控件; 
      【设备序列号】是TextBox控件;
      【起始日期】和【截止日期】是DateTimePicker控件;

查询代码:
Dim sbxh As WinForm.ComboBox = e.Form.Controls("设备型号")
Dim sbxlh As WinForm.TextBox = e.Form.Controls("设备序列号")
Dim StartDate As WinForm.DateTimePicker = e.Form.Controls("起始日期")
Dim EndDate As WinForm.DateTimePicker = e.Form.Controls("截止日期")

Tables("安装").Filter = "设备型号 Like '*" & sbxh.Text & "*' And 设备序列号 Like '*" & sbxlh.Text & "*' And 装机时间 >= #"& StartDate.Value &"# And 装机时间 <= #"& EndDate.Value &"# "

必须同时输入【起始日期】和【截止日期】才能筛选,否则就提示:
该字符串未被识别为有效的DateTime
.NET Framework 版本:2.0.50727.3649
Foxtable 版本:2013.10.14.1
错误所在事件:
详细错误信息:
该字符串未被识别为有效的 DateTime。


 回到顶部
帅哥哟,离线,有人找我吗?
tomcat521
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:67 积分:537 威望:0 精华:0 注册:2013/10/13 6:59:00
  发帖心情 Post By:2014/1/1 19:20:00 [只看该作者]

筛选窗口截图:

图片点击可在新窗口打开查看此主题相关图片如下:筛选.jpg
图片点击可在新窗口打开查看


 回到顶部
帅哥哟,离线,有人找我吗?
程兴刚
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2014/1/1 19:45:00 [只看该作者]

Dim sbxh As WinForm.ComboBox = e.Form.Controls("设备型号")
Dim sbxlh As WinForm.TextBox = e.Form.Controls("设备序列号")
Dim StartDate As Date = = #1/1/1900#
If e.Form.Controls("起始日期").Value <> Nothing
    StartDate = e.Form.Controls("起始日期").Value
End If
Dim EndDate As Date = #12/30/2099#
If e.Form.Controls("截止日期").Value <> Nothing
    EndDate = e.Form.Controls("截止日期").Value
End If
Tables("安装").Filter = "设备型号 Like '*" & sbxh.Text & "*' And 设备序列号 Like '*" & sbxlh.Text & "*' And 装机时间 >= #" & StartDate & "# And 装机时间 <= #" & EndDate & "# "

 回到顶部
帅哥哟,离线,有人找我吗?
tomcat521
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:67 积分:537 威望:0 精华:0 注册:2013/10/13 6:59:00
  发帖心情 Post By:2014/1/1 19:54:00 [只看该作者]

谢谢兴刚老师!
我自己刚才改成这样也可以了(分成日期是否为空,就是麻烦点):
Dim sbxh As WinForm.ComboBox = e.Form.Controls("设备型号")
Dim sbxlh As WinForm.TextBox = e.Form.Controls("设备序列号")
Dim StartDate As WinForm.DateTimePicker = e.Form.Controls("起始日期")
Dim EndDate As WinForm.DateTimePicker = e.Form.Controls("截止日期")

If StartDate.Value <> Nothing And EndDate.Value <> Nothing Then
    Tables("安装").Filter = "设备型号 Like '*" & sbxh.Text & "*' And 设备序列号 Like '*" & sbxlh.Text & "*' And 装机时间 >= #"& StartDate.Value &"# And 装机时间 <= #"& EndDate.Value &"# "
    Tables("安装").Sort = "设备序列号"
End If

If StartDate.Value = Nothing And EndDate.Value = Nothing Then
    Tables("安装").Filter = "设备型号 Like '*" & sbxh.Text & "*' And 设备序列号 Like '*" & sbxlh.Text & "*'"
    Tables("安装").Sort = "设备序列号"
End If


 回到顶部
帅哥哟,离线,有人找我吗?
tomcat521
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:67 积分:537 威望:0 精华:0 注册:2013/10/13 6:59:00
  发帖心情 Post By:2014/1/1 20:00:00 [只看该作者]

刚才又发现了一个新的问题:
设备型号包括
BR-526
BR-526-6
BR-526-24
筛选时,选择BR-526-24或者BR-526-6,都是精确筛选,如果选择BR-526,则BR-526-24和BR-526-6也会筛出来。

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/1/1 20:05:00 [只看该作者]

 呃,因为你设置的是模糊筛选,用了Like,前后有*,所以会匹配

 回到顶部
帅哥哟,离线,有人找我吗?
程兴刚
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2014/1/1 20:36:00 [只看该作者]

以下是引用tomcat521在2014-1-1 19:54:00的发言:
谢谢兴刚老师!
我自己刚才改成这样也可以了(分成日期是否为空,就是麻烦点):
Dim sbxh As WinForm.ComboBox = e.Form.Controls("设备型号")
Dim sbxlh As WinForm.TextBox = e.Form.Controls("设备序列号")
Dim StartDate As WinForm.DateTimePicker = e.Form.Controls("起始日期")
Dim EndDate As WinForm.DateTimePicker = e.Form.Controls("截止日期")

If StartDate.Value <> Nothing And EndDate.Value <> Nothing Then
    Tables("安装").Filter = "设备型号 Like '*" & sbxh.Text & "*' And 设备序列号 Like '*" & sbxlh.Text & "*' And 装机时间 >= #"& StartDate.Value &"# And 装机时间 <= #"& EndDate.Value &"# "
    Tables("安装").Sort = "设备序列号"
End If

If StartDate.Value = Nothing And EndDate.Value = Nothing Then
    Tables("安装").Filter = "设备型号 Like '*" & sbxh.Text & "*' And 设备序列号 Like '*" & sbxlh.Text & "*'"
    Tables("安装").Sort = "设备序列号"
End If
 
您这样行吗?至少还有两个判断!一个为空一个不为空还有两种组合,绝对不如我的方法简洁!


 回到顶部
帅哥哟,离线,有人找我吗?
tomcat521
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:67 积分:537 威望:0 精华:0 注册:2013/10/13 6:59:00
  发帖心情 Post By:2014/1/2 20:00:00 [只看该作者]

醍醐灌顶!姜还是拉的啦啊!

 回到顶部
帅哥哟,离线,有人找我吗?
tomcat521
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:67 积分:537 威望:0 精华:0 注册:2013/10/13 6:59:00
  发帖心情 Post By:2014/1/2 20:00:00 [只看该作者]


 回到顶部
帅哥哟,离线,有人找我吗?
tomcat521
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:67 积分:537 威望:0 精华:0 注册:2013/10/13 6:59:00
  发帖心情 Post By:2014/1/2 20:05:00 [只看该作者]

姜还是老的辣!

 回到顶部