Foxtable(狐表)用户栏目专家坐堂 → [求助]多表共用DropDownForm窗口如何选择值?


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

主题:[求助]多表共用DropDownForm窗口如何选择值?

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


加好友 发短信
等级:小狐 帖子:322 积分:2680 威望:0 精华:0 注册:2014/6/24 17:29:00
[求助]多表共用DropDownForm窗口如何选择值?  发帖心情 Post By:2015/1/21 11:18:00 [只看该作者]

多表共用一个下拉窗口,选择值写入当前表,并且也要将当前表某列的值写入到下接窗口中选择的表中。
想了很久有些功能还是实现 不了,来请教老师

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:下拉窗口选择1.zip



具体需求:(以示例文件说明)
(1)单击 “表C” 第二列时出现下拉窗口,从下拉窗口中可以选择显示“表A”或“表B”
(2)双击下拉窗口选定表中的行,执行如下动作:
生成一个5位随机数,并将随机数同时写入"表C"第二列及选择表("表A"或“表B”)的第三列
同时,将"表C"第一列的内容写入选择表("表A"或“表B”)的第二列
(3)下次打开下拉窗口时,过滤掉选择表("表A"或“表B”)中第二列中有值的行

现在主要是卡在第3点,写入值时过滤行就错乱。

先谢过图片点击可在新窗口打开查看

[此贴子已经被作者于2015-1-21 11:19:52编辑过]

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/1/21 11:26:00 [只看该作者]

反复测试了一下,好像都正常啊.

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


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

Dim dname As String
dname = e.Form.DropTable.Name '当前表表名
Dim dv As String
dv = Rand.NextString(5) '生成长度为5的随机字符串

Dim r As Row

If e.Selected Then
    Select Case dname
        Case "表C"
            Dim tbl As Table =  Tables("认领_table1")
            If tbl.Current IsNot Nothing Then
                Select Case NameFlag
                    Case "表A"
                        r = Tables("表A").Rows(Tables("表A").FindRow(tbl.Current.DataRow))
                        r("第二列") = Tables("表C").Current("第一列")
                        r("第三列") =dv
                        e.Form.DropDownBox.Value  = dv
                        Tables("表A").Current.Locked = True
                        Tables("表A").save
                    Case "表B"
                        r = Tables("表B").Rows(Tables("表B").FindRow(tbl.Current.DataRow))
                        r("第二列") = Tables("表C").Current("第一列")
                        r("第三列") =dv
                        e.Form.DropDownBox.Value  = dv
                        Tables("表B").Current.Locked = True
                        Tables("表B").save
                    Case Else
                End Select
            End If
    End Select
End If


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


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

---------------------------
错误
---------------------------
编译错误:类型“Row”的值无法转换为“DataRow”。

错误代码:r = Tables("表A").Rows(Tables("表A").FindRow(tbl.Current.DataRow))
---------------------------
确定   
---------------------------


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


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

报错

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


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

 拷贝上面代码,不可能报错啊
[此贴子已经被作者于2015-1-21 11:56:11编辑过]

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


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

改为:
r =DataTables("表B").DataRows(Tables("表B").FindRow(tbl.Current.DataRow))
搞定
谢谢各位

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


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

Dim dname As String
dname = e.Form.DropTable.Name '当前表表名
Dim dv As String
dv = Rand.NextString(5) '生成长度为5的随机字符串

Dim r As Row

If e.Selected Then
    Select Case dname
        Case "表C"
            Dim tbl As Table =  Tables("认领_table1")
            If tbl.Current IsNot Nothing Then
                Select Case NameFlag
                    Case "表A"
                        r = Tables("表A").Rows(Tables("表A").FindRow(tbl.Current.DataRow))
                        r("第二列") = Tables("表C").Current("第一列")
                        r("第三列") =dv
                        e.Form.DropDownBox.Value  = dv
                        r.Locked = True
                        r.save
                    Case "表B"
                        r = Tables("表B").Rows(Tables("表B").FindRow(tbl.Current.DataRow))
                        r("第二列") = Tables("表C").Current("第一列")
                        r("第三列") =dv
                        e.Form.DropDownBox.Value  = dv
                        r.Locked = True
                        r.save
                    Case Else
                End Select
            End If
    End Select
End If


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


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

是我搞错了
Dim r As Row
写成了Dim r As DataRow

 回到顶部