以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]系统升级到win10后,长时间给软件造成的干扰  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=80259)

--  作者:ehomecd
--  发布时间:2016/1/19 14:52:00
--  [求助]系统升级到win10后,长时间给软件造成的干扰
今天突然发现个问题,系统升级win10后,原来正常使用的软件报错:【该字符串未被识别为有效的 DateTime。有一个从索引 11 处开始的未知字。】
经过排查发现是升级后系统的时间自动变成了长时间,导致筛选字符串出错。
因为不可能让所有用户出现问题的时候都去修改时间设置,请问在代码中如何设置,可以强制将系统长时间转换成短时间,避免受到系统的干扰?


图片点击可在新窗口打开查看此主题相关图片如下:2016年1月19日1.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:2016年1月19日2.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:2016年1月19日3.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:2016年1月19日4.png
图片点击可在新窗口打开查看

以下是我的筛选树代码:
Dim Filter As String = ""

If e.node.Name <> "显示所有记录" Then
    Dim d1 As Date
    Dim d2 As Date
    Dim Year As Integer = e.Node.DataRow("年")
    Dim Quarter As Integer = e.Node.DataRow("季度")
    Dim Product As String = e.Node.DataRow("部门")
    
    Select Case e.Node.Level
        Case 0
            d1 = New Date(Year,1,1) \'取得该年的第一天
            d2 = new Date(Year,12,31) \'取得该年的最后一天
            
            d1 = Format(d1,"yyyy-MM-dd")
            d2 = Format(d2,"yyyy-MM-dd")
            msgbox(d1)

            Filter = "日期 >= #" & d1 & "# And 日期 <= #" & d2 & "#"
        Case 1
            d1 = New Date(Year, 3 * (Quarter - 1) + 1, 1) \'获取该季度的第一天
            d2 = New Date(Year, 3 * Quarter, Date.DaysInMonth(Year,3 * Quarter)) \'获取该季度的最后一天
            Filter = "日期 >= #" & d1 & "# And 日期 <= #" & d2 & "#"
        Case 2
            d1 = New Date(Year, 3 * (Quarter - 1) + 1, 1) \'获取该季度的第一天
            d2 = New Date(Year, 3 * Quarter, Date.DaysInMonth(Year,3 * Quarter)) \'获取该季度的最后一天
            Filter = "日期 >= #" & d1 & "# And 日期 <= #" & d2 & "# And 部门 = \'" & Product & "\'"
    End Select
    Tables("外宣信息记录").Filter = Filter
    msgbox(filter)
Else
    Tables("外宣信息记录").Filter = ""
End If

[此贴子已经被作者于2016/1/19 14:52:31编辑过]

--  作者:大红袍
--  发布时间:2016/1/19 14:55:00
--  

 

 


--  作者:ehomecd
--  发布时间:2016/1/19 14:57:00
--  
如果让每个客户都去设置时间,毕竟比较麻烦,有没有办法在代码中进行规范?

我觉得如果程序本身能够解决这个问题,就不要去麻烦客户。

--  作者:大红袍
--  发布时间:2016/1/19 14:59:00
--  
日期格式如果不对,之后的操作会有各种各样的问题,必须设置电脑才是最佳的选择。
--  作者:ehomecd
--  发布时间:2016/1/19 15:01:00
--  
也就是说这个解决方案就是必须让用户更改系统时间格式;没有第二个选择了。
--  作者:大红袍
--  发布时间:2016/1/19 15:02:00
--  
是的,不然foxtable内部的很多东西也会导致出错。
--  作者:ehomecd
--  发布时间:2016/1/19 15:27:00
--  
狐表下次更新的话,能否也采取时间戳的机制,时间函数仅仅是对时间戳进行操作,这样就不会受操作系统干扰。
--  作者:大红袍
--  发布时间:2016/1/19 15:36:00
--  

 你想用代码处理也行,就截取字符串就好。

 

Dim str As String = "2015-01-13 星期五"

Dim d As date = str.split(" ")(0)

msgbox(d)


--  作者:ztmdnzc
--  发布时间:2016/1/21 16:27:00
--  
郑州的?