以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]为什么表格里的对应行不能被赋值? (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=157197) |
-- 作者:jjjeyes -- 发布时间:2020/10/7 15:10:00 -- [求助]为什么表格里的对应行不能被赋值? 我有个课表,列为“周一34节”,“周二34节”……,每行为教师姓名, 还有个“课程主表3”,列名为“课程学期”,“课程时间”,“课程教师”,“课程名称”,每行为单个课程。 当课表的列的某一行的值发生变化的时候,对应的“课程主表3”的“课程名称”列发生改变,并赋值。 但是用下面的代码在表属性的“DataColChanged”里写代码: Dim cb1 As WinForm.ComboBox = Forms("课程编排").Controls("ComboBox1") Dim dr1 As DataRow dr1 = DataTables("课程主表3").SQLFind("[课程教师] = \'" & e.DataRow("姓名") & "\'And [课程时间] = \'" & e.DataCol.name & "\'And [课程学期] = \'" & cb1.Value & "\'") Select Case e.DataCol.name Case "周一34节" If dr1 IsNot Nothing Then dr1("课程名称") = e.DataRow("周一34节") \'MessageBox.show(dr1("课程教师")) \'MessageBox.show(dr1("课程时间")) \'MessageBox.show(dr1("课程编号")) \'MessageBox.show(e.DataCol.name) \'MessageBox.show(e.NewValue) \'MessageBox.show(e.DataRow("周一34节")) DataTables("课表").Save() DataTables("课程主表3").Save() End If End Select 发现对应的 课程主表3对应的行的“课程名称”不能被赋值。MessageBox的值都能显示。 请问是什么原因。
[此贴子已经被作者于2020/10/7 15:15:56编辑过]
|
-- 作者:有点蓝 -- 发布时间:2020/10/7 15:48:00 -- SQLFind查询的结果是一个独立的行,和DataTables("课程主表3")没有什么关系,需要单独保存 Select Case e.DataCol.name Case "周一34节" If dr1 IsNot Nothing Then dr1("课程名称") = e.DataRow("周一34节") dr1.save |
-- 作者:jjjeyes -- 发布时间:2020/10/7 16:21:00 -- 关键是:dr1("课程名称") = e.DataRow("周一34节") 这一行没有执行,e.DataRow("周一34节")的值没有赋给dr1("课程名称")
|
-- 作者:有点蓝 -- 发布时间:2020/10/7 16:24:00 -- 肯定已经执行了,只是没有保存,所以执行了也没有用 |
-- 作者:jjjeyes -- 发布时间:2020/10/7 16:29:00 -- 但是“课程主表3”对应的行中“课程名称”的值没有变化啊,而且我再次将“课程主表3”的内容回写到“课表”的时候,“课表”的中原来修改的地方也还原到了向前的内容 [此贴子已经被作者于2020/10/7 16:38:30编辑过]
|
-- 作者:有点蓝 -- 发布时间:2020/10/7 16:47:00 -- 确定查询到符合条件的数据?http://www.foxtable.com/webhelp/topics/1485.htm 下面提示能不能都弹出? msgbox(1) Select Case e.DataCol.name Case "周一34节" If dr1 IsNot Nothing Then msgbox(2) dr1("课程名称") = e.DataRow("周一34节") dr1.save msgbox(3)
|
-- 作者:jjjeyes -- 发布时间:2020/10/7 16:59:00 -- 我知道调试方法,也用了你刚才的步骤做了调试,“课表”中的列发生变化的时候,123步都能跳出对话框,但是就是不能给“课程主表3”赋值 |
-- 作者:有点蓝 -- 发布时间:2020/10/7 17:12:00 -- 重新加载表数据,因为是直接改的后台数据,界面数据没有变化的 |
-- 作者:jjjeyes -- 发布时间:2020/10/7 17:30:00 -- 确实是这样,我将sqlfind改成了find,“课程主表3”就有了变化,看来只有重修加载,或者直接sql语句。 |