以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  【求助】用SQL语句设计加载树预览出错  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=143458)

--  作者:狐表(小白)
--  发布时间:2019/11/25 18:19:00
--  【求助】用SQL语句设计加载树预览出错
老师,数据源是自建的access外部数据源“sj”;窗口表table1绑定的是由数据源表“明细表”生成的外部数据表"借用表”;预览时出错,先是提示“至少有一个参数没有被指定值”,错误所在事件为空;另一个是“未将对象引用设置到对象的实例”提示afterload事件代码出错。麻烦老师给看看!谢谢!

afterload加载代码:
Dim cmd As new SQLCommand
Dim dt As DataTable
cmd.C
cmd.CommandText = "SELECT DISTINCT Year(开单日期) As 年, Month(开单日期) As 月,Day(开单日期) As 日, 部门 F rom {明细表}"
dt = cmd.ExecuteReader()
Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
trv.BuildTree(dt, "年|月|日|部门")


目录树"TreeView1"NodeMouseDoubleClick代码:
Dim dr As DataRow = e.Node.DataRow \'获取生成此节点的行
Dim Filter As String
Dim Year As Integer = dr("年")
Dim Month As Integer = dr("月")
Dim Day As Integer = dr("日")
Dim bm 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 day(开单日期) = " & day
    Case 3
        Filter ="Year(开单日期) = " & Year & " And Month(开单日期) = " & Month & " And day(开单日期) = " & day & "  And 部门 = \'" & bm & "\'"
End Select
DataTables("借用表").LoadFilter = Filter
DataTables("借用表").Load()
[此贴子已经被作者于2019/11/25 19:58:25编辑过]

--  作者:有点蓝
--  发布时间:2019/11/25 20:18:00
--  
看不出什么问题。删除项目里的bin目录,重启项目试试
--  作者:狐表(小白)
--  发布时间:2019/11/26 14:29:00
--  
老师,问题解决了,是我把一个列名写错了!还有个问题请教:
同上窗口,加载目录树"TreeView1"窗口“新增”按钮(button1)绑定的table1(借用表),在点击窗口“新增”按钮(button1)对绑定表(借用表)新增一行进行数据录入时,提示:未将对象引用设置到对象的实例;  执行加载目录树"TreeView1"NodeMouseDoubleClick代码没有问题。
在新增按钮里面添加什么代码可以解决?谢!


--  作者:有点蓝
--  发布时间:2019/11/26 14:40:00
--  
“新增”按钮写了什么代码?提示错误时勾选详细信息,看是哪个事件有问题?
--  作者:狐表(小白)
--  发布时间:2019/11/26 14:47:00
--  
提示的是新增按钮(button1)的chick代码出错:

“新增”按钮(button1)chick:
Tables("借用表").AddNew()
With CurrentTable
    .Current("开单日期") = Date.Today
    .Current("事项") = "物料领用"
    .Current("次数") = 1
    .Current("处理") = "完成"
    .Current("单数") = 1
    .Current("操作员") = "" & user.Name
    .Current("结案") = "OK"
    .Current("类型") = "常规"
End With
Forms("录入窗口").Open

--  作者:狐表(小白)
--  发布时间:2019/11/26 14:51:00
--  
把按钮1的这些代码注释掉就可以了,但是我想提高录入速度。有没有办法解决?
With CurrentTable
    .Current("开单日期") = Date.Today
    .Current("事项") = "物料领用"
    .Current("次数") = 1
    .Current("处理") = "完成"
    .Current("单数") = 1
    .Current("操作员") = "" & user.Name
    .Current("结案") = "OK"
    .Current("类型") = "常规"
End With
[此贴子已经被作者于2019/11/26 14:51:17编辑过]

--  作者:有点蓝
--  发布时间:2019/11/26 15:13:00
--  
不是特别必要,建议不使用使用CurrentTable,Current这些用法

dim r as row = Tables("借用表").AddNew()

    r ("开单日期") = Date.Today
    r ("事项") = "物料领用"
……
Forms("录入窗口").Open

--  作者:狐表(小白)
--  发布时间:2019/11/26 15:22:00
--  
非常感谢!