Foxtable(狐表)用户栏目专家坐堂 → 下拉窗口数据录入错乱


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

主题:下拉窗口数据录入错乱

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


加好友 发短信
等级:小狐 帖子:322 积分:2680 威望:0 精华:0 注册:2014/6/24 17:29:00
下拉窗口数据录入错乱  发帖心情 Post By:2018/10/14 15:30:00 [只看该作者]

用下拉窗口录入数据,录入数据错乱。
明明选择的工序A,品名B,结果填入的是工序A,品名C
关键代码如下:

Dim tbl As Table =  Tables("机加工价选取_table1")
If tbl.Current IsNot Nothing Then
    Dim tbc As Row = Tables(e.Form.DropTable.Name).Current   '取得当前表当前行
    Select e.Form.DropCol.Name
        Case "产品"
            e.Form.DropDownBox.Value = tbl.Current("产品")  '产品列填入产品
            tbc("工序")= tbl.Current("工序")
            tbc("工价")= tbl.Current("工价")
            tbc("版本")= tbl.Current("版本")
        Case "工序"
            If tbc.IsNull("产品") Then  '产品列为空值
                e.Form.DropDownBox.Value = tbl.Current("工序")
                tbc("产品")= tbl.Current("产品")
                tbc("工价")= tbl.Current("工价")
                tbc("版本")= tbl.Current("版本")
            Else
                e.Form.DropDownBox.Value = tbl.Current("工序")
                tbc("工价")= tbl.Current("工价")
                tbc("产品")= tbl.Current("产品")
                tbc("版本")= tbl.Current("版本")
            End If
    End Select
End If

Forms("机加工价选取").DropDownBox.CloseDropDown()

操作录像如下:

图片点击可在新窗口打开查看此主题相关图片如下:测试文件.gif
图片点击可在新窗口打开查看


查了一天了,实在查不出哪里有问题了。



[此贴子已经被作者于2018/10/14 17:01:45编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/10/14 16:47:00 [只看该作者]

'If e.Selected Then '如果选择了值
Dim tbl As Table =  Tables("机加工价选取_table1")
If tbl.Current IsNot Nothing Then
    Dim tbc As Row = Tables(e.Form.DropTable.Name).Current   '取得当前表当前行
Dim r As Row = tbl.Current
    Select e.Form.DropCol.Name
        Case "产品"
            e.Form.DropDownBox.Value = r("产品")  '产品列填入产品
            tbc("工序")= r("工序")
            tbc("工价")= r("工价")
            tbc("版本")= r("版本")
        Case "工序"
            If tbc.IsNull("产品") Then  '产品列为空值
                e.Form.DropDownBox.Value = r("工序")
                tbc("产品")= r("产品")
                tbc("工价")= r("工价")
                tbc("版本")= r("版本")
            Else
                e.Form.DropDownBox.Value = r("工序")
                tbc("工价")= r("工价")
                tbc("产品")= r("产品")
                tbc("版本")= r("版本")
            End If
    End Select
End If
'End If

Forms("机加工价选取").DropDownBox.CloseDropDown()


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


加好友 发短信
等级:小狐 帖子:322 积分:2680 威望:0 精华:0 注册:2014/6/24 17:29:00
  发帖心情 Post By:2018/10/14 17:01:00 [只看该作者]

今天还在回复,太感谢了
没明白为什么

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/10/14 18:28:00 [只看该作者]

tbl.Current 每一次调用的时候,有可能不是同一行。

 

比如,你设置值的过程中,触发了事件代码对表格进行了筛选以后,表格数据改变,这个时候current就不是你本来那个了。


 回到顶部