Office中国论坛/Access中国论坛

标题: 求助主窗体与子窗体的问题 [打印本页]

作者: forman    时间: 2008-12-3 11:23
标题: 求助主窗体与子窗体的问题
请各位大大帮帮忙!怎样可以实现在子窗体的最后一个控件输入完数据按回车的时候就跳到主窗体下一条记录中的第一个控件。谢谢[attach]33628[/attach]
作者: Henry D. Sy    时间: 2008-12-3 11:32
  1. Private Sub 政治_KeyDown(KeyCode As Integer, Shift As Integer)
  2.     If KeyCode = 13 Then
  3.         SendKeys "^{tab}"
  4.         Me.Parent.SetFocus
  5.         DoCmd.GoToRecord , , acNewRec
  6.     End If
  7. End Sub
复制代码

作者: forman    时间: 2008-12-3 11:42
出现了错误·“运行错误'2105',你不能指定的记录”DDDDDD大哥``你能帮我改下嘛?

[ 本帖最后由 forman 于 2008-12-3 11:43 编辑 ]
作者: tz-chf    时间: 2008-12-3 11:45
子窗体只有一条记录?
作者: forman    时间: 2008-12-3 11:48
现在成功了``不过还有个问题是在下一条的时候从主窗体跳到子窗体的时候会跳到子窗体的最后一个```

[ 本帖最后由 Henry D. Sy 于 2008-12-3 12:10 编辑 ]
作者: Henry D. Sy    时间: 2008-12-3 12:10
原帖由 forman 于 2008-12-3 11:48 发表
现在成功了``不过还有个问题是在下一条的时候从主窗体跳到子窗体的时候会跳到子窗体的最后一个```
自己设置一下子窗体的tab键顺序
作者: forman    时间: 2008-12-3 12:21
TAB键的顺序是正常的啊```
作者: Henry D. Sy    时间: 2008-12-3 13:13
没有发现你说的情况
作者: forman    时间: 2008-12-3 13:20
不会吧·你用这个试一下··[attach]33630[/attach]
作者: Henry D. Sy    时间: 2008-12-3 13:37
奇怪了,时而正常时而不正常。
算了,在强制一下吧

Private Sub 年龄_KeyDown(KeyCode As Integer, Shift As Integer)
    If KeyCode = 13 Then
        Me.表2.Form.语文.SetFocus
    End If
End Sub
作者: Henry D. Sy    时间: 2008-12-3 13:54
原帖由 forman 于 2008-12-3 11:42 发表
出现了错误·“运行错误'2105',你不能指定的记录”DDDDDD大哥``你能帮我改下嘛?

原来没有考虑表1中没有记录
更改一下

Private Sub 政治_KeyDown(KeyCode As Integer, Shift As Integer)
    If KeyCode = 13 Then
        SendKeys "^{tab}"
        Me.Parent.SetFocus
        If Me.Parent.NewRecord = False Then
            DoCmd.GoToRecord , , acNewRec
        End If
    End If
End Sub
作者: forman    时间: 2008-12-3 14:12
现在行了·谢谢··怎么会出现那种情况呢?那么奇怪的·
作者: Henry D. Sy    时间: 2008-12-3 14:42
刚才没有注意
请将acNewRec更改为acNext
作者: forman    时间: 2008-12-3 15:16
好的`谢谢``之前那个好像也行啊``改了有什么用?
作者: Henry D. Sy    时间: 2008-12-3 15:18
acnext只是转到下一条记录
acnewrec则是转到新增记录
作者: forman    时间: 2008-12-3 15:30
谢谢```我到现在还在研究你写给我的那几段代码是什么意思呢```
SendKeys "^{tab}"
  Me.Parent.SetFocus
  If Me.Parent.NewRecord = False Then
      DoCmd.GoToRecord , , acNext
这几段都还没看懂是什么意思``
作者: Henry D. Sy    时间: 2008-12-3 16:04
SendKeys "^{tab}"                                     ‘模拟击键,等于 ctrl键+tab键
Me.Parent.SetFocus                                   ’当前窗体的父窗体,也就是主窗体获得焦点
If Me.Parent.NewRecord = False Then     '如果主窗体当前记录不是新增记录
DoCmd.GoToRecord , , acNext                  '那么焦点移动到下一条记录
作者: forman    时间: 2008-12-3 16:12
太感谢你了··有学到东西了···
作者: forman    时间: 2008-12-3 16:15
SendKeys "^{tab}"   ‘模拟击键,等于 ctrl键+tab键
ctrl+tab 这个不就已经是回到主窗体的下一条记录了吗?为什么还要下面的代码呢?
作者: Henry D. Sy    时间: 2008-12-3 16:19
对呀,多此一举
作者: forman    时间: 2008-12-3 16:23
额```刚试了下```就用SendKeys "^{tab}"   这个,不用下面的也行··




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3