以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  改写A表的现金流科目  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=175552)

--  作者:lfz
--  发布时间:2022/3/9 16:17:00
--  改写A表的现金流科目

在B表中改动A表的现金流科目,在B表的DataColChanged事件中写了如下代码:

If e.DataCol.Name= "现金流科目" Then 
        Dim dr  As  DataRow
        dr = DataTables("A表").SQLFind("序号 = \'" & e.DataRow("序号") &  "\'and 科目代码 = \'"& e.datarow("科目代码") & "\'")

MessageBox.Show(1)  此步跳出
        If dr IsNot Nothing Then
MessageBox.Show(2) 此步未跳出
            dr("现金流科目") = e.DataRow("现金流科目")
MessageBox.Show(3)
    dr.Load
        End  If
End If


--  作者:有点蓝
--  发布时间:2022/3/9 16:45:00
--  
说明A表数据库里没有这个序号和科目代码的数据,没有符合这个条件的数据

msgbox("序号 = \'" & e.DataRow("序号") &  "\'and 科目代码 = \'"& e.datarow("科目代码") & "\')

--  作者:lfz
--  发布时间:2022/3/9 17:57:00
--  回复:(有点蓝)说明A表数据库里没有这个序号和科目代...

我截图了

 


图片点击可在新窗口打开查看此主题相关图片如下:b表.png
图片点击可在新窗口打开查看


 


图片点击可在新窗口打开查看此主题相关图片如下:a表.png
图片点击可在新窗口打开查看
[此贴子已经被作者于2022/3/9 17:57:47编辑过]

--  作者:有点蓝
--  发布时间:2022/3/10 8:21:00
--  
试试

dr = DataTables("A表").SQLFind("序号 = " & e.DataRow("序号") &  " and 科目代码 = \'" & e.datarow("科目代码") & "\'")

--  作者:lfz
--  发布时间:2022/3/10 10:11:00
--  回复:(有点蓝)试试dr = DataTables("A表").SQLFind...

老师我改了还是不行,我试着把SQLfind改成find就可以了,那从后台改怎么解决呢,

If e.DataCol.Name= "现金流科目" Then 
        Dim dr As DataRow
dr = DataTables("A表").SQLFind("序号 = " & e.DataRow("序号") & " And 科目代码 = \'" & e.DataRow("科目代码") & "\'")
msgbox(1)  正常跳出
        If dr IsNot Nothing Then
msgbox(2)  正常跳出
            dr("现金流科目") = e.DataRow("现金流科目")
msgbox(3)  正常跳出
    dr.Load  报错 不存在名称为""的datatable
        End  If
End If

[此贴子已经被作者于2022/3/10 10:16:03编辑过]

--  作者:有点蓝
--  发布时间:2022/3/10 10:29:00
--  
            dr("现金流科目") = e.DataRow("现金流科目")
msgbox(3)  正常跳出
    dr.save
        End  If
End If
--  作者:hitzfeld
--  发布时间:2022/3/10 19:27:00
--  
我碰到跟你一样的问题。看这里http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=175567&replyID=&skin=1
我看了你的帖子才发现错误在哪里!这里不能用dr.Load,因为SQLfind是修改后台的数据,实际表是没用加载数据的。当你用dr.Load的时候,由于这个表在狐表中实际是空表,所以就报不存在名称为""的datatable错误。
所以报错。

--  作者:有点蓝
--  发布时间:2022/3/10 20:21:00
--  
以下是引用hitzfeld在2022/3/10 19:27:00的发言:
我碰到跟你一样的问题。看这里http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=175567&replyID=&skin=1
我看了你的帖子才发现错误在哪里!这里不能用dr.Load,因为SQLfind是修改后台的数据,实际表是没用加载数据的。当你用dr.Load的时候,由于这个表在狐表中实际是空表,所以就报不存在名称为""的datatable错误。
所以报错。

噢,看漏眼了