以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  甜老师,遇到这样一个问题了。  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=126216)

--  作者:cyrollin
--  发布时间:2018/10/16 18:56:00
--  甜老师,遇到这样一个问题了。
此表A是外部表,在打开项目文件的时候,只是加载了一部份时间的数据。 现在要按某条件显示所有历史数据(不只是显示加载的这段时间的数据, 还要显示没有加载的数据)。 

If Forms("窗口1").Opened Then
    With DataTables("表A")
        Dim r As Row = e.Table.Current
        Dim s As String = "编号 = \'"& r("编号") &"\'"
        If r.Isnull("姓名") Then s = "1=2"
        Dim drs As List(Of DataRow) = e.Table.DataTable.Select(s & " And _Identify <> " & r("_Identify") & " And (日期 <= #" & r("日期") & "# Or 日期 Is Null)", "日期 Desc" )
\' 这是在currentchanged事件里面最前段代码
...
...
...
这段代码只是显示加载的这一段时间的数据,不能显示所有。 要怎么修改一下呢? 
[此贴子已经被作者于2018/10/16 18:56:38编辑过]

--  作者:有点蓝
--  发布时间:2018/10/16 20:12:00
--  
Dim drs As List(Of DataRow) = e.Table.DataTable.SQLSelect(s & " And _Identify <> " & r("_Identify") & " And (日期 <= #" & r("日期") & "# Or 日期 Is Null)", "日期 Desc" )


--  作者:cyrollin
--  发布时间:2018/10/17 9:28:00
--  
不行, 改成SQLSelect...了, 什么数据都不显示了, 

另外改成:          Dim drs As List(Of DataRow) = DataTables("表A").SQLSelect(s & " And _Identify <> " & r("_Identify") & " And (日期 <= #" & r("日期") & "# Or 日期 Is Null)", "日期 Desc" )

也不显示任何数据


--  作者:有点甜
--  发布时间:2018/10/17 9:36:00
--  
改成
 
Dim str = s & " And _Identify <> " & r("_Identify") & " And (日期 <= #" & r("日期") & "# Or 日期 Is Null)"
msgbox(str)
Dim drs As List(Of DataRow) = e.Table.DataTable.SQLSelect(str, "", "日期 Desc" )
 
--  作者:cyrollin
--  发布时间:2018/10/17 9:48:00
--  
还是不行,任何数据都不显示。

我的完整代码是这样的。 

If Forms("窗口1").Opened Then
    With DataTables("表A")
        Dim r As Row = e.Table.Current
        Dim s As String = "编号 = \'"& r("编号") &"\'"
        If r.Isnull("姓名") Then s = "1=2"

         Dim str = s & " And _Identify <> " & r("_Identify") & " And (日期 <= #" & r("日期") & "# Or 日期 Is Null)"
        Dim drs As List(Of DataRow) = e.Table.DataTable.SQLSelect(str, "", "日期 Desc" ) 


      If drs.Count > 0 Then
            Forms("历史数据").Controls("TextBox1").Text = drs(0)("姓名")
            Forms("历史数据").Controls("TextBox2").Text = drs(0)("地址")
            Forms("历史数据").Controls("TextBox3").Text = drs(0)("日期")
...
...
...
end if

--  作者:有点甜
--  发布时间:2018/10/17 9:59:00
--  

1、msgbox(str)弹出什么?

 

2、str的内容,在你数据库那里查看,看有没有数据。


--  作者:有点甜
--  发布时间:2018/10/17 10:01:00
--  

或者试试改成

 

Dim str = s & " And [_Identify] <> " & r("_Identify") & " And (日期 <= #" & r("日期") & "# Or 日期 Is Null)"


--  作者:cyrollin
--  发布时间:2018/10/17 10:07:00
--  
以下是引用有点甜在2018/10/17 10:01:00的发言:

或者试试改成

 

Dim str = s & " And [_Identify] <> " & r("_Identify") & " And (日期 <= #" & r("日期") & "# Or 日期 Is Null)"




改了, 还是不行,

msgbox(str)弹出的是这样: 



图片点击可在新窗口打开查看此主题相关图片如下:微信图片_20181017100414.png
图片点击可在新窗口打开查看

 


--  作者:cyrollin
--  发布时间:2018/10/17 10:10:00
--  
str的内容,在你数据库那里查看,看有没有数据。

A: 有数据的, 

--  作者:有点甜
--  发布时间:2018/10/17 10:15:00
--  
实例发上来测试。