以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  列类型判断错误  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=116316)

--  作者:lur320
--  发布时间:2018/3/22 16:42:00
--  列类型判断错误
如下代码,在快捷菜单里面。用于判断右击时候的列是不是日期列,然后打开窗体filteritem或者用系统自带的 syscmd.Filter.Values()

If CurrentTable.DataTable.DataCols(CurrentTable.ColSel).datatype.name="DateTime" Then
 MessageBox.Show(CurrentTable.cols(CurrentTable.ColSel).name & CurrentTable.DataTable.DataCols(CurrentTable.ColSel).datatype.name)
Forms("filteritem").OPEN
Else
    syscmd.Filter.Values()
End If
下面的图是一列应该是字符列,但是用CurrentTable.DataTable.DataCols(CurrentTable.ColSel).datatype.name来判断后会变日期列,导致后续代码错误。

图片点击可在新窗口打开查看此主题相关图片如下:捕获2.png
图片点击可在新窗口打开查看

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



--  作者:lur320
--  发布时间:2018/3/22 16:43:00
--  
是不是由于table有隐藏列,导致和datatable里面的colsel不一致?如何避免?
--  作者:lur320
--  发布时间:2018/3/22 16:47:00
--  
是不是非要写成:(来判断当前列的类型)
CurrentTable.DataTable.DataCols(currenttable.cols(CurrentTable.ColSel).name).datatype.name

--  作者:有点甜
--  发布时间:2018/3/22 16:51:00
--  
MessageBox.Show(CurrentTable.cols(CurrentTable.ColSel).name & CurrentTable.cols(CurrentTable.ColSel).DataCol.datatype.name)
--  作者:lur320
--  发布时间:2018/3/22 16:52:00
--  
帮助没翻全..... 用CurrentTable.Cols(CurrentTable.Colsel).DataCol.IsDate 就行