以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 这段代码在AppendLoad追加的时候为什么报错“未将对象应用到实例”? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=185018) |
||||
-- 作者:hitzfeld -- 发布时间:2023/1/31 5:20:00 -- 这段代码在AppendLoad追加的时候为什么报错“未将对象应用到实例”? Dim x As String = Tables("入库表_table1").Current("采购单号") Dim dr As DataRow dr = DataTables("采购单").Find("[采购单号] = \'" & x & "\'") If dr IsNot Nothing Then Dim wz As Integer = Tables("采购单").FindRow(dr) If wz >= 0 Then Tables("采购单").Position = wz Forms("采购单_表单").show() End If Else If dr Is Nothing Then Dim F As String = "采购单号 = " & dr("采购单号") DataTables("采购单").AppendLoad("[采购单号] = \'" & dr("采购单号") & "\'") If DataTables("采购明细").Find(F) Is Nothing Then \'如果对应的订单明细没有加载过 DataTables("采购明细").AppendLoad(F) \'则追载此订单的订单明细 End If Dim wz1 As Integer = Tables("采购单").FindRow(dr) If wz1 >= 0 Then Tables("采购单").Position = wz1 Forms("采购单_表单").show() End If End If End If 1、确定存在这条记录,使用msgbox可以正确的返回单号 2、确定选择的记录没有加载,查过多次了。
[此贴子已经被作者于2023/1/31 5:21:40编辑过]
|
||||
-- 作者:有点蓝 -- 发布时间:2023/1/31 9:09:00 -- 代码有很多语法以及逻辑问题 Dim x As String = Tables("入库表_table1").Current("采购单号") Dim dr As DataRow dr = DataTables("采购单").Find("[采购单号] = \'" & x & "\'") If dr IsNot Nothing Then Dim wz As Integer = Tables("采购单").FindRow(dr) If wz >= 0 Then Tables("采购单").Position = wz Forms("采购单_表单").show() End If Else Dim F As String = "采购单号 = \'" & x & "\'" Dim drs As List(Of DataRow) = DataTables("采购单").AppendLoad("[采购单号] = \'" & x & "\'") If drs.Count < 0 Then Dim wz1 As Integer = Tables("采购单").FindRow(drs(0)) If wz1 >= 0 Then Tables("采购单").Position = wz1 Forms("采购单_表单").show() End If End If End If |
||||
-- 作者:有点蓝 -- 发布时间:2023/1/31 9:15:00 -- 简洁一点可以这样 Dim x As String = Tables("入库表_table1").Current("采购单号") Dim dr As DataRow Dim F As String = "采购单号 = \'" & x & "\'" dr = DataTables("采购单").Find(F) If dr Is Nothing Then Dim drs As List(Of DataRow) = DataTables("采购单").AppendLoad(F) If drs.Count = 0 Then MsgBox("没有这个单据!") Return End If dr = drs(0) End If Dim wz As Integer = Tables("采购单").FindRow(dr) If wz >= 0 Then Tables("采购单").Position = wz Forms("采购单_表单").show() End If |
||||
-- 作者:hitzfeld -- 发布时间:2023/3/10 13:35:00 -- 蓝老师,这段appendload在加载历史记录之后,会发生一个比较奇怪的问题,首先,表格是窗口中的表。我双击必须appendload的记录,会出现:第一次双击没有任何反应,第二次双击会指向datatables的第一条记录,第三次双击才会显示正确的记录。我猜测是“datatables更新了,但是tables没有更新”,然后我把数据表切换到采购单,发现果然是这样,第一次双击,历史记录加载进来,但是指针并没有指向追加的那条记录,而是指向datatable的第一条记录,第二次双击,打开的是datatable的第一条记录,直到第三次双击窗口中的tables的记录才会正确的指向appendload的记录。请问老师这样要怎么改代码? [此贴子已经被作者于2023/3/10 13:36:37编辑过]
|
||||
-- 作者:有点蓝 -- 发布时间:2023/3/10 13:37:00 -- 请上传实例测试 |
||||
-- 作者:hitzfeld -- 发布时间:2023/3/11 1:31:00 --
[此贴子已经被作者于2023/3/11 1:31:37编辑过]
|
||||
-- 作者:hitzfeld -- 发布时间:2023/3/11 1:33:00 -- 数据库压缩包 [此贴子已经被作者于2023/3/11 1:33:04编辑过]
|
||||
-- 作者:hitzfeld -- 发布时间:2023/3/13 13:36:00 -- 顶一下,蓝老师是不是把我忘记了? |
||||
-- 作者:有点蓝 -- 发布时间:2023/3/13 14:00:00 -- 数据库文件不全,少了ldf文件,重新发一下 |
||||
-- 作者:hitzfeld -- 发布时间:2023/3/13 14:28:00 -- 蓝老师,补上了。 |