以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]关于addnew的诡异问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=94880)

--  作者:chen3728060
--  发布时间:2017/1/4 14:56:00
--  [求助]关于addnew的诡异问题

我在DatarowAdding事件里设置了一个OpenQQ下的自动编号

 


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

 

然后我用代码新增行,并且立刻判断这个自动编号是否为空

 

 


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

我发现会出问题。貌似DatarowAdding事件,会比addnew 后 r.Isnll事件要慢,这是为啥?

[此贴子已经被作者于2017/1/4 14:57:10编辑过]

--  作者:有点色
--  发布时间:2017/1/4 15:15:00
--  

 你在DataRowAdding或者DataRowAdded事件最后加入msgbox,就知道先后了。

 

 一般,你是要判断是否生成成功,可以用一个全局变量去判断。也可以用循环判断是否已经得到了值,最后再执行下面的代码。


--  作者:chen3728060
--  发布时间:2017/1/4 15:37:00
--  回复:(有点色) 你在DataRowAdding或者DataRow...
请问怎么用全局变量去判断?我现在在网络不太稳定的情况下,经常出现行新增但是编号是空白的严重问题
--  作者:有点色
--  发布时间:2017/1/4 15:43:00
--  

试试这样写

 

Dim nr As Row = Tables("表A").AddNew
Dim sdt As Date = Date.Now
do While Date.Now < sdt.AddSeconds(2)
    If nr.IsNull("第一列") = False Then
        Exit do
    End If
    Application.DoEvents
loop
If nr.IsNull("第一列") Then
    msgbox("生成出错")
Else
    msgbox("生成成功")
End If

 


--  作者:chen3728060
--  发布时间:2017/1/4 16:06:00
--  回复:(有点色)试试这样写 Dim nr As Row ...

这个可以,就用这个啦!