以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  SQLQuery table复选框复选问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=9256)

--  作者:qhczy
--  发布时间:2011/3/21 14:00:00
--  SQLQuery table复选框复选问题

图片点击可在新窗口打开查看此主题相关图片如下:复选框.jpg
图片点击可在新窗口打开查看
如图所示,我希望单击复选框后.table1中的这一行记录跳转到table2
--  作者:狐狸爸爸
--  发布时间:2011/3/21 14:23:00
--  

假定希望Table1选中某个复选框后,能够自定跳转到Table2,那么设置Table1的AfterCheckRow事件代码为:

 

If e.Row.Checked  Then
    Tables("窗口名_Table2").Focus
End If

[此贴子已经被作者于2011-3-21 14:31:02编辑过]

--  作者:qhczy
--  发布时间:2011/3/21 14:32:00
--  
table1 table2都是SQLQuery table.
--  作者:狐狸爸爸
--  发布时间:2011/3/21 14:39:00
--  

一样的设置Table1的AfterCheckRow事件:

 

If e.Row.Checked Then
   Tables("窗口1_Table2").Focus
End If

 

上面的代码是测试通过的:

 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目16.table


--  作者:狐狸爸爸
--  发布时间:2011/3/21 14:47:00
--  

我可能误解你的意思了,你可能要的不是输入焦点跳转,而是复制内容。

 

如果是单击复选框后,将此行的内容复制到Table2的当前行,那么代码应该是:

 

 If e.Row.Checked Then
    Dim r AS Row  = Tables("窗口1.Table2").Current
    If r IsNot Nothing Then
        For Each c As Col In e.Table.Cols
            r(c.name)  = e.Row(c.Name)
        Next
    End If
End If

 

如果是单击复选框后,在Table2的新增一行,并将此行的内容复制到这个新增行,那么代码应该是:

 

If e.Row.Checked Then
    Dim r AS Row = Tables("窗口1.Table2").AddNew
    If r IsNot Nothing Then
        For Each c As Col In e.Table.Cols
          r(c.name) = e.Row(c.Name)
       Next
    End If
End If

 

提问一定要表述清楚自己的意思,以便于人家理解。

[此贴子已经被作者于2011-3-21 14:49:57编辑过]