Foxtable(狐表)用户栏目专家坐堂 → [求助]为什么表格里的对应行不能被赋值?


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

主题:[求助]为什么表格里的对应行不能被赋值?

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


加好友 发短信
等级:小狐 帖子:304 积分:2684 威望:0 精华:0 注册:2011/10/29 16:26:00
[求助]为什么表格里的对应行不能被赋值?  发帖心情 Post By: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编辑过]

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


加好友 发短信
等级:超级版主 帖子:107014 积分:544295 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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
  3楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:304 积分:2684 威望:0 精华:0 注册:2011/10/29 16:26:00
  发帖心情 Post By:2020/10/7 16:21:00 [只看该作者]

关键是:dr1("课程名称") = e.DataRow("周一34节")
这一行没有执行,e.DataRow("周一34节")的值没有赋给dr1("课程名称")

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


加好友 发短信
等级:超级版主 帖子:107014 积分:544295 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/10/7 16:24:00 [只看该作者]

肯定已经执行了,只是没有保存,所以执行了也没有用

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


加好友 发短信
等级:小狐 帖子:304 积分:2684 威望:0 精华:0 注册:2011/10/29 16:26:00
  发帖心情 Post By:2020/10/7 16:29:00 [只看该作者]

但是“课程主表3”对应的行中“课程名称”的值没有变化啊,而且我再次将“课程主表3”的内容回写到“课表”的时候,“课表”的中原来修改的地方也还原到了向前的内容
[此贴子已经被作者于2020/10/7 16:38:30编辑过]

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


加好友 发短信
等级:超级版主 帖子:107014 积分:544295 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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
  7楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:304 积分:2684 威望:0 精华:0 注册:2011/10/29 16:26:00
  发帖心情 Post By:2020/10/7 16:59:00 [只看该作者]

我知道调试方法,也用了你刚才的步骤做了调试,“课表”中的列发生变化的时候,123步都能跳出对话框,但是就是不能给“课程主表3”赋值

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


加好友 发短信
等级:超级版主 帖子:107014 积分:544295 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/10/7 17:12:00 [只看该作者]

重新加载表数据,因为是直接改的后台数据,界面数据没有变化的

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


加好友 发短信
等级:小狐 帖子:304 积分:2684 威望:0 精华:0 注册:2011/10/29 16:26:00
  发帖心情 Post By:2020/10/7 17:30:00 [只看该作者]

确实是这样,我将sqlfind改成了find,“课程主表3”就有了变化,看来只有重修加载,或者直接sql语句。

 回到顶部