以文本方式查看主题

-  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=50500)

--  作者:seal51
--  发布时间:2014/5/7 19:10:00
--  目录树问题
Dim cmd As New SQLCommand
Dim dt As DataTable
cmd.CommandText = "SELECT DISTINCT Year(订购日期) As 年, Month(日期) As 月, 客户,工作号 From {订单明细表}"
dt = cmd.ExecuteReader()
Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
trv.BuildTree(dt, "年|月|客户|工作号")

2、目录树的NodeMouseDoubleClick事件代码改为:

Dim dr As DataRow = e.Node.DataRow \'获取生成此节点的行
Dim Filter As String
Dim Year As Integer = dr("年")
Dim Month As Integer = dr("月")
Dim Kehu As String = dr("客户")
Dim Job As String = dr("工作号")
Select Case e.Node.Level
    Case 0
        Filter ="Year(日期) = " & Year
    Case 1
        Filter ="Year(日期) = " & Year & " And Month(日期) = " & Month
    Case 2
        Filter ="Year(日期) = " & Year & " And Month(日期) = " & Month & " And 客户 = \'" & Kehu & "\'"
    Case 3
        Filter ="Year(日期) = " & Year & " And Month(日期) = " & Month & " And 客户 = \'" & Kehu & " And 工作号 = \'" & Job &"\'"
End Select
DataTables("订单明细表").LoadFilter = Filter
DataTables("订单明细表").Load()


ACCESS数据库

提示错误

Microsoft Jet 数据库引擎找不到输入表或查询 \'~TMPCLP订单明细表\'。 确定它是否存在,以及它的名称的拼写是否正确。

--  作者:有点甜
--  发布时间:2014/5/7 19:13:00
--  

 没有指定数据源,看这里 http://www.foxtable.com/help/topics/2344.htm

 


--  作者:seal51
--  发布时间:2014/5/7 19:37:00
--  

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

--  作者:seal51
--  发布时间:2014/5/7 19:39:00
--  

Dim cmd As New SQLCommand
Dim dt As DataTable
cmd.C
cmd.CommandText = "SELECT DISTINCT Year(订购日期) As 年, Month(订单日期) As 月, 客户,工作号 From {订单明细表}"
dt = cmd.ExecuteReader()
Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
trv.BuildTree(dt, "年|月|客户|工作号")

--------------------------------

Dim Value()As String
Dim Filter As String
Dim d1 As Date
Dim d2 As Date
Value = e.Node.FullPath.Split("\\")
Select Case e.Node.Level
    Case 0
        Dim y As Integer = value(0)
        d1 = New Date(y,1,1) \'取得该年的第一天
        d2 = new Date(y,12,31) \'取得该年的最后一天
        Filter = "订购日期 >= #" & d1 & "# And 订购日期 <= #" & d2 & "#"
    Case 1
        Dim y As Integer = value(0)
        Dim m As Integer = value(1)
        d1 = New Date(y, m, 1) \'取得该月的第一天
        d2 = new Date(y, m, Date.DaysInMonth(y,m)) \'取得该月的最后一天
        Filter = "订购日期 >= #" & d1 & "# And 订购日期 <= #" & d2 & "#"
    Case 2
        Dim y As Integer = value(0)
        Dim m As Integer = value(1)
        d1 = New Date(y, m, 1) \'取得该月的第一天
        d2 = new Date(y, m, Date.DaysInMonth(y,m)) \'取得该月的最后一天
        Filter = "订购日期 >= #" & d1 & "# And 订购日期 <= #" & d2 & "# And 客户 = \'" & Value(2) & "\'"
    Case 3
        Dim y As Integer = value(0)
        Dim m As Integer = value(1)
        d1 = New Date(y, m, 1) \'取得该月的第一天
        d2 = new Date(y, m, Date.DaysInMonth(y,m)) \'取得该月的最后一天
        Filter = "订购日期 >= #" & d1 & "# And 订购日期 <= #" & d2 & "# And 客户 = \'" & Value(2) & " And 工作号 = \'" & Value(3) &"\'"
End Select
Tables("订单明细表").Filter = Filter

 

错误:

 

至少一个参数没有被指定值。



--  作者:有点甜
--  发布时间:2014/5/7 19:42:00
--  

 目测代码没有错,是不是这句错了?

 

cmd.CommandText = "SELECT DISTINCT Year(订购日期) As 年, Month(订单日期) As 月, 客户,工作号 From {订单明细表}"


--  作者:seal51
--  发布时间:2014/5/7 19:56:00
--  
更改了,还是同样的问题
--  作者:有点甜
--  发布时间:2014/5/7 19:58:00
--  
 同样是5楼的那句代码。你看一下你的数据库(注意,是数据库),看列名是否正确。
--  作者:seal51
--  发布时间:2014/5/8 13:08:00
--  

数据库名称正确, 列名正确, 还是提示:

至少一个参数没有被指定值。

.NET Framework 版本:2.0.50727.3655
Foxtable 版本:2014.3.8.1
错误所在事件:
详细错误信息:
至少一个参数没有被指定值。

 

.NET Framework 版本:2.0.50727.3655
Foxtable 版本:2014.3.8.1
错误所在事件:窗口,订单查询,AfterLoad
详细错误信息:


未将对象引用设置到对象的实例。订购日期和客户为表达式, 来源于订单主表???

 

是不是表达式不能被查询呢?


--  作者:arthurshoe
--  发布时间:2014/5/8 13:14:00
--  
Dim Value()As String =  e.Node.FullPath.Split("\\") 
或则  
Dim Value()As String = New String()
Value()=e.Node.FullPath.Split("\\")

--  作者:lsy
--  发布时间:2014/5/8 13:31:00
--  
这个要看例子了,错误往往出人意料。