Foxtable(狐表)用户栏目专家坐堂 → ACCESS数据库转换成SQL数据库报错


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

主题:ACCESS数据库转换成SQL数据库报错

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


加好友 发短信
等级:童狐 帖子:228 积分:2057 威望:0 精华:0 注册:2017/8/18 17:51:00
ACCESS数据库转换成SQL数据库报错  发帖心情 Post By:2021/12/26 2:34:00 [只看该作者]

把ACCESS数据库转换成SQL数据库后高效流水账代码报错:

图片点击可在新窗口打开查看此主题相关图片如下:屏幕截图 2021-12-25 194614.png
图片点击可在新窗口打开查看

我从sql数据库中查看订单付款明细表中有_SortKey列

图片点击可在新窗口打开查看此主题相关图片如下:屏幕截图 2021-12-25 194738.png
图片点击可在新窗口打开查看

订单付款明细表DataColChanged:
If Tables("订单付款明细表").Current IsNot Nothing Then
    Dim r1 As Row = Tables("订单付款明细表").Current
    Dim r As DataRow = DataTables("销售订单").find("订单号 = '" & r1("订单号") & "'")
    If r IsNot Nothing  Then
        r1("订单总额") = r("GrandTotal")
        r1("客户名称") = r("客户名称")
        r1("客户电话") = r("客户电话")
    End If
End If

Select Case e.DataCol.Name
    Case "订单号","订单总额","付款金额"
        Dim dr As DataRow
        Dim mr As DataRow = e.DataRow
        Dim drs As List(of DataRow)
        dr = e.DataTable.Find("[_SortKey] < " & mr("_SortKey") & " And [订单号] = '" & mr("订单号") & "'", "[_SortKey] Desc")
        If dr Is Nothing Then
            mr("未付金额") = mr("订单总额") - mr("付款金额")
            dr = mr
        End If
        drs = e.DataTable.Select("[_SortKey] >= " & dr("_SortKey") & " And [订单号] = '" & dr("订单号") & "'", "[_SortKey]")
        For i As Integer = 1 To drs.Count - 1
            drs(i)("未付金额") = drs(i-1)("未付金额") - drs(i)("付款金额")
        Next
        If e.DataCol.Name = "订单号" AndAlso e.OldValue IsNot Nothing AndAlso e.OldValue <> e.NewValue Then
            dr = e.DataTable.Find("[_SortKey] < " & mr("_SortKey") & " And [订单号] = '" & e.OldValue & "'", "[_SortKey] Desc")
            If dr Is Nothing Then
                dr = e.DataTable.Find("[订单号] = '" & e.OldValue & "'", "[_SortKey]")
                If dr IsNot Nothing Then
                    dr("未付金额") = dr("订单总额") - dr("付款金额")
                End If
            End If
            If dr IsNot Nothing Then
                drs = e.DataTable.Select("[_SortKey] >= " & dr("_SortKey") & " And [订单号] = '" & dr("订单号") & "'", "[_SortKey]")
                For i As Integer = 1 To drs.Count - 1
                    drs(i)("未付金额") = drs(i-1)("未付金额") - drs(i)("付款金额")
                Next
            End If
        End If
End Select

If e.DataCol.Name = "付款金额" Then
    Dim pr As DataRow
    pr = DataTables("销售订单").Find("订单号 = '" & e.DataRow("订单号") & "'")
    If pr IsNot Nothing Then
        pr("已付款")= pr("已付款") + e.NewValue - e.OldValue
    End If
End If

订单出库明细表也有同样的流水账代码,没有报这个错。


[此贴子已经被作者于2021/12/26 2:36:31编辑过]

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


加好友 发短信
等级:超级版主 帖子:111376 积分:566944 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/12/26 20:23:00 [只看该作者]

BeforeConnectOuterDataSource是不是有代码连接到其它数据库了?

备份项目。到外部表管理中打开这个表,重新选一下表,预览看看有没有这个列,然后点击确定返回

如果还不行,把这个表从外部表管理中删除,然后重新添加,在把表事件代码复制进去

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


加好友 发短信
等级:童狐 帖子:228 积分:2057 威望:0 精华:0 注册:2017/8/18 17:51:00
  发帖心情 Post By:2021/12/26 21:31:00 [只看该作者]

以下是引用有点蓝在2021/12/26 20:23:00的发言:
BeforeConnectOuterDataSource是不是有代码连接到其它数据库了?
BeforeConnectOuterDataSource里面没有代码

备份项目。到外部表管理中打开这个表,重新选一下表,预览看看有没有这个列,然后点击确定返回
预览没有这个列

如果还不行,把这个表从外部表管理中删除,然后重新添加,在把表事件代码复制进去
删除后重新添加,预览还是没有这个列,数据库中的表又确实存在这列
我查看了一下其他几个表,数据库中都有_sortkey这列,但只有一个表在外部表管理中能看到,其他表在外部表管理中都没有这列。

[此贴子已经被作者于2021/12/26 21:42:07编辑过]

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


加好友 发短信
等级:超级版主 帖子:111376 积分:566944 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/12/26 21:44:00 [只看该作者]

这些表还是内部表,不是外部表吧,到重定向里看看

 回到顶部