Foxtable(狐表)用户栏目专家坐堂 → [求助] 窗口表的SQL语句求助


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

主题:[求助] 窗口表的SQL语句求助

帅哥哟,离线,有人找我吗?
2900819580
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1330 积分:9668 威望:0 精华:0 注册:2015/6/30 8:46:00
[求助] 窗口表的SQL语句求助  发帖心情 Post By:2019/4/9 19:43:00 [只看该作者]

Dim tb As Table = Tables(e.Form.Name & "_Table1")

Dim tb1 As Table = Tables(e.Form.Name & "_Table11")
Dim dt1 As DataTable = tb1.DataTable

Dim cmd As new SQLCommand
cmd.CommandText = "sele ct DISTINCT 子阶ID,车间,组别,sum(需求数量) as 需求数量 from {" & dt1.Name & "}  " 
MessageBox.Show(cmd.CommandText)
tb.DataSource  = cmd.ExecuteReader


 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

cmd.CommandText = "select 子阶ID,车间,组别,sum(需求数量) as 需求数量 from {" & dt1.Name & "} group by  子阶ID,车间,组别" 

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


加好友 发短信
等级:六尾狐 帖子:1330 积分:9668 威望:0 精华:0 注册:2015/6/30 8:46:00
  发帖心情 Post By:2019/4/9 21:10:00 [只看该作者]

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

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

如果不是主表,或者副本表,只能写入表名

cmd.CommandText = "select 子阶ID,车间,组别,sum(需求数量) as 需求数量 from {某某表} group by  子阶ID,车间,组别" 

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


加好友 发短信
等级:六尾狐 帖子:1330 积分:9668 威望:0 精华:0 注册:2015/6/30 8:46:00
  发帖心情 Post By:2019/4/9 22:05:00 [只看该作者]

Dim cmd As new SQLCommand
cmd.C
cmd.CommandText = "Sel ect * From {生产任务单} where 任务单号 = '" & tb.Rows(0)("任务单号") & "'"
Tables(e.Form.Name & "_Table11").DataSource  = cmd.ExecuteReader

数据是通知以上代码加载进来的。

 

 

cmd.CommandText = "sel ect 子阶ID,车间,组别,sum(需求数量) as 需求数量 from {领料单新增_Table11} group by 子阶ID,车间,组别" 

表是副本表,MessageBox.Show(cmd.CommandText) 出来的结果如下图所示。


图片点击可在新窗口打开查看此主题相关图片如下:无标题.png
图片点击可在新窗口打开查看
[此贴子已经被作者于2019/4/9 22:07:16编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

使用数据库真正的表名呀,设置DataSource  之后就不是副本了,和原来的主表已经没有任何关系

cmd.CommandText = "sel ect 子阶ID,车间,组别,sum(需求数量) as 需求数量 from {生产任务单} group by 子阶ID,车间,组别" 



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


加好友 发短信
等级:六尾狐 帖子:1330 积分:9668 威望:0 精华:0 注册:2015/6/30 8:46:00
  发帖心情 Post By:2019/4/10 13:48:00 [只看该作者]


Dim sz As String
For Each r As Row In Tables(e.Form.Name & "_Tab订单").Rows
    If sz > "" Then sz &= ","
    sz &= "'" & r("任务单号") & "'"
Next
Dim cmd As new SQLCommand
cmd.C

cmd.CommandText = "sele ct a.子阶ID,a.车间,a.组别,sum(a.需求数量) as 需求数量 "
cmd.CommandText &=", b.FNumber As 代码,b.FName As 名称,b.Fmodel as 规格型号,c.Fnote as 库位号,e.FName as 仓库名称,f.FName as 单位 "

cmd.CommandText &= "from {生产任务单} as a "
cmd.CommandText &= " left join [" & Vars("Kis") & "].dbo.t_ICItemCore as b on a.子阶ID = b.FItemID "
cmd.CommandText &= " left join [" & Vars("Kis") & "].dbo.t_ICItemMaterial As c on a.子阶ID = c.FItemID "
cmd.CommandText &= " left join [" & Vars("Kis") & "].dbo.t_ICItemBase As d on a.子阶ID = d.FItemID "
cmd.CommandText &= " left join [" & Vars("Kis") & "].dbo.t_Stock As e on d.FDefaultLoc = e.FItemID "
cmd.CommandText &= " left join [" & Vars("Kis") & "].dbo.t_MeasureUnit As f on d.FUnitID = f.FItemID "
cmd.CommandText &= " where 任务单号 In ( " & sz & " ) group by 子阶ID,车间,组别,代码,名称,规格型号,库位号,仓库名称,单位 "
MessageBox.Show(cmd.CommandText)
Tables(e.Form.Name & "_Table11").DataSource  = cmd.ExecuteReader

 

老师,以上代码会再现以下错误 提示

.NET Framework 版本:2.0.50727.5485
Foxtable 版本:2018.3.9.1
错误所在事件:
详细错误信息:
列名 '单位' 无效。
列名 '仓库名称' 无效。
列名 '库位号' 无效。
列名 '规格型号' 无效。
列名 '名称' 无效。
列名 '代码' 无效。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/4/10 15:16:00 [只看该作者]

可执行的实例发上来测试。

 

 


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


加好友 发短信
等级:六尾狐 帖子:1330 积分:9668 威望:0 精华:0 注册:2015/6/30 8:46:00
  发帖心情 Post By:2019/4/10 18:45:00 [只看该作者]

以下是引用有点甜在2019/4/10 15:16:00的发言:

可执行的实例发上来测试。

 

 

老师,是SQL的数据库,不知如何发上来,如果只用这一行,是没有问题的,增加了其它列就有问题了:
cmd.CommandText = "sel ect 子阶ID,车间,组别,sum(需求数量) as 需求数量 from {" & dt1.Name & "} group by  子阶ID,车间,组别"
代码就只有上面一段。 以下是MessageBox.Show(cmd.CommandText) 的值
 sele ct a.子阶ID,a.车间,a.组别,sum(a.需求数量) as 需求数量 , b.FNumber As 代码,b.FName As 名称,b.Fmodel as 规格型号,c.Fnote as 库位号,e.FName as 仓库名称,f.FName as 单位 from {生产任务单} as a  left join [AIS20181207194554].dbo.t_ICItemCore as b on a.子阶ID = b.FItemID  left join [AIS20181207194554].dbo.t_ICItemMaterial As c on a.子阶ID = c.FItemID  left join [AIS20181207194554].dbo.t_ICItemBase As d on a.子阶ID = d.FItemID  left join [AIS20181207194554].dbo.t_Stock As e on d.FDefaultLoc = e.FItemID  left join [AIS20181207194554].dbo.t_MeasureUnit As f on d.FUnitID = f.FItemID  where 任务单号 In ( 'RW1904048','RW1904014' ) group by 子阶ID,车间,组别,代码,名称,规格型号,库位号,仓库名称,单位

[此贴子已经被作者于2019/4/10 18:50:00编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/4/10 21:35:00 [只看该作者]

拷贝sql语句,在你的数据库那里执行,报什么错?

 

如果报错,那删减你的sql语句测试,直到可以正常执行为止。定位写错的位置。


 回到顶部