以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]希望在表后面增加以日期为列名的列  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=122862)

--  作者:81538475
--  发布时间:2018/8/3 10:39:00
--  [求助]希望在表后面增加以日期为列名的列
希望在表A后面增加这些列。报错了。

图片点击可在新窗口打开查看此主题相关图片如下:qq截图20180803103820.png
图片点击可在新窗口打开查看


Dim Builder As New ADOXBuilder
Builder.Open() \'打开ADOXBuilder
Dim StartDate As Date = "2018-01-01"
Dim EndDate As Date = "2018-12-31"
Dim dt As Date = StartDate
\'Dim Builder As New DataTableBuilder("统计")
Do
    Dim nm As String = "sp" & dt.Year & "年" &  dt.Month & "月_" & dt.Day 
  msgbox(nm)
     Builder.Tables("表A").AddColumn(nm,ADOXType.String,32)
    dt = dt.Adddays(1)
    If dt > Enddate Then
            Exit Do
    End If
Loop
Builder.Close() \'关闭ADOXBuilder

--  作者:有点甜
--  发布时间:2018/8/3 10:50:00
--  

内部表,列有限制的,最多252列,你这样做有问题。

 

建议做成临时表 http://www.foxtable.com/webhelp/scr/0679.htm

 


--  作者:81538475
--  发布时间:2018/8/3 11:43:00
--  
我的目的是想用这个来做每日的事物记录,如果临时表,就不能实现了。或者有没有其他思路方法 另外我用的是外部数据源。
[此贴子已经被作者于2018/8/3 11:47:18编辑过]

--  作者:有点甜
--  发布时间:2018/8/3 11:45:00
--  
以下是引用81538475在2018/8/3 11:43:00的发言:
我的目的是想用这个来做每日的事物记录,如果临时表,就不能实现了。或者有没有其他思路方法

 

改成用行记录。

 

http://www.foxtable.com/webhelp/scr/2965.htm

 


--  作者:81538475
--  发布时间:2018/8/3 15:36:00
--  
我是外部sql server 数据源,这样的话是可以实现的是吧。
--  作者:有点甜
--  发布时间:2018/8/3 17:56:00
--  
以下是引用81538475在2018/8/3 15:36:00的发言:
我是外部sql server 数据源,这样的话是可以实现的是吧。

 

如果你的表格是外部表,sqlserver数据库,可以无限添加列。


--  作者:81538475
--  发布时间:2018/8/7 12:40:00
--  
已经弄好了。现在又有一个相关问题,就是现在的列比较多。所以每次加载的时候比较慢,如何设置加载进来的列只是前一个月,本月,后一个月的日期呢。
--  作者:有点甜
--  发布时间:2018/8/7 14:25:00
--  
以下是引用81538475在2018/8/7 12:40:00的发言:
已经弄好了。现在又有一个相关问题,就是现在的列比较多。所以每次加载的时候比较慢,如何设置加载进来的列只是前一个月,本月,后一个月的日期呢。

 

根据当前日期,合成sql语句,如

 

select 主键, 第一列, 第二列 from {表A}

 

http://www.foxtable.com/webhelp/scr/0670.htm

 


--  作者:81538475
--  发布时间:2018/8/7 15:46:00
--  
Dim D As Date = Date.Today
Dim SD As Date = Date.Today.AddMonths(-1)
Dim ED As Date = Date.Today.AddMonths(1)
Dim Names As New List(Of String)

Do
    Dim nm As String = "sp" & SD.Year & "年" &  SD.Month & "月_" & SD.Day
    Names.Add(nm)
    sd = sd.Adddays(1)
    If sd > ed Then
        Exit Do
    End If
Loop
For i As Integer=  0 To Names.count-1

现在用上面的代码把日期都加入到了集合,,不知道如何把集合一个个的列入sel ec t语句里面



[此贴子已经被作者于2018/8/7 15:49:21编辑过]

--  作者:81538475
--  发布时间:2018/8/7 16:12:00
--  
搞定了。图片点击可在新窗口打开查看
Dim D As Date = Date.Today
Dim SD As Date = Date.Today.AddMonths(-1)
Dim ED As Date = Date.Today.AddMonths(1)
Dim Names As New List(Of String)
Dim str As String ="sp" & SD.Year & "年" &  SD.Month & "月_" & SD.Day

Do
    sd = sd.Adddays(1)
    Dim nm As String = "sp" & SD.Year & "年" &  SD.Month & "月_" & SD.Day
    str= str & "," & nm
    
    If sd > ed Then
        Exit Do
    End If
Loop