Foxtable(狐表)用户栏目专家坐堂 → 【求助】用SQL语句设计加载树预览出错


  共有2939人关注过本帖树形打印复制链接

主题:【求助】用SQL语句设计加载树预览出错

帅哥哟,离线,有人找我吗?
狐表(小白)
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:371 积分:4017 威望:0 精华:0 注册:2019/9/17 10:06:00
【求助】用SQL语句设计加载树预览出错  发帖心情 Post By:2019/11/25 18:19:00 [只看该作者]

老师,数据源是自建的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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109736 积分:558396 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/11/25 20:18:00 [只看该作者]

看不出什么问题。删除项目里的bin目录,重启项目试试

 回到顶部
帅哥哟,离线,有人找我吗?
狐表(小白)
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:371 积分:4017 威望:0 精华:0 注册:2019/9/17 10:06:00
  发帖心情 Post By:2019/11/26 14:29:00 [只看该作者]

老师,问题解决了,是我把一个列名写错了!还有个问题请教:
同上窗口,加载目录树"TreeView1"窗口“新增”按钮(button1)绑定的table1(借用表),在点击窗口“新增”按钮(button1)对绑定表(借用表)新增一行进行数据录入时,提示:未将对象引用设置到对象的实例;  执行加载目录树"TreeView1"NodeMouseDoubleClick代码没有问题。
在新增按钮里面添加什么代码可以解决?谢!


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109736 积分:558396 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/11/26 14:40:00 [只看该作者]

“新增”按钮写了什么代码?提示错误时勾选详细信息,看是哪个事件有问题?

 回到顶部
帅哥哟,离线,有人找我吗?
狐表(小白)
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:371 积分:4017 威望:0 精华:0 注册:2019/9/17 10:06:00
  发帖心情 Post By: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

 回到顶部
帅哥哟,离线,有人找我吗?
狐表(小白)
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:371 积分:4017 威望:0 精华:0 注册:2019/9/17 10:06:00
  发帖心情 Post By: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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109736 积分:558396 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/11/26 15:13:00 [只看该作者]

不是特别必要,建议不使用使用CurrentTable,Current这些用法

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

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

 回到顶部
帅哥哟,离线,有人找我吗?
狐表(小白)
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:371 积分:4017 威望:0 精华:0 注册:2019/9/17 10:06:00
  发帖心情 Post By:2019/11/26 15:22:00 [只看该作者]

非常感谢!

 回到顶部