Office中国论坛/Access中国论坛

标题: 急!!!在窗体新增记录时遇到的问题 [打印本页]

作者: leung    时间: 2007-3-5 20:10
标题: 急!!!在窗体新增记录时遇到的问题
在点击“新增ECN ”命令时,出现如下三个问题:

1、在输入完“产品名称后按“回车”,怎样写代码才能使子窗体的"BOM编号"自动获得焦点?

2、在子窗体输入完“变更操作”后,按回车可继续输入下一条变更记录,只能按“TAB键”将焦点由子窗体转到主窗体上的“变更原因”,但不知道何解,不能在主窗体上继续输入“变更原因”、“日期”等内容。[em06][em06]

3、窗体以800*600的分辩率编写,一但改成1024*768时,所有控件内全部缩小靠左边,应该写什么样的代码使所有控件自动根据分辩率进行居中显示?

附件如下:[attach]23453[/attach]


[此贴子已经被作者于2007-3-9 15:27:22编辑过]


作者: leung    时间: 2007-3-5 21:56
顶起,还没有高手来过?
作者: leung    时间: 2007-3-6 22:59
还没有人可以帮帮忙的?好惨,这个问题我已经遇到过几次了,每次都是无法解决,救高手帮我看看!!!!急交功课啊!!!!!!
作者: rjacky    时间: 2007-3-6 23:29
主窗体的成为当前事件里面的代码有问题,与跳转到新纪录的命令冲突



If Me.RecordsetClone.RecordCount <= 1 Then
Me.AllowAdditions = True
Me.AllowDeletions = True
Me.AllowEdits = True
DoCmd.GoToRecord , , acFirst
End If
作者: hi-wzj    时间: 2007-3-6 23:33
对,应将您的流程好好画画。避免逻辑错误。
作者: rjacky    时间: 2007-3-6 23:33
点击了新增按钮执行"DoCmd.GoToRecord , , acNewRec"命令,由于你当前的主窗体记录集只有1条记录,符合判断条件,所以又执行DoCmd.GoToRecord , , acFirst命令,所以就出错了。
作者: leung    时间: 2007-3-6 23:37
因为本人不精通VBA,所以会出现这样的问题,

If Me.RecordsetClone.RecordCount <= 1 Then
Me.AllowAdditions = True
Me.AllowDeletions = True
Me.AllowEdits = True
DoCmd.GoToRecord , , acFirst
End If

这个是因为一开始数据库中没有记录时,窗体上的控件全部不显示出来,所以才会加以上这段代码,但是即使用没有以上这段代码,点击“新增ECN”命令时仍然提示“无法转到指定记录”不明白是那里出现的错误,请大家帮我再分析分析好吗?谢谢各位啦
作者: rjacky    时间: 2007-3-6 23:49
当然了,在条件判断之前还有一句代码,将窗体的“允许新增”属性再次关闭,然后再由if条件来打开

Dim I As Integer
DoCmd.Maximize
Me.AllowAdditions = False
Me.AllowEdits = False
Me.AllowDeletions = False



If Me.RecordsetClone.RecordCount <= 1 Then
Me.AllowAdditions = True
Me.AllowDeletions = True
Me.AllowEdits = True
DoCmd.GoToRecord , , acFirst
End If


作者: leung    时间: 2007-3-7 00:02
想请教一下rjacky,为什么在点击"新建ECN"时,子窗体并没有显示可增加记录的新行,只显示出字段名呢?


作者: rjacky    时间: 2007-3-7 00:18
主窗体的允许编辑属性Me.AllowEdits或子窗体的允许新增属性Me.AllowAdditions被设置为false都会这样,楼主自行检查吧
作者: leung    时间: 2007-3-7 01:28
谢谢你rjacky,我自己再检查一下,非常感谢!!!!
作者: leung    时间: 2007-3-8 16:54
版主请进,又遇到新问题了,具体问题请看原帖子!!!!
作者: leung    时间: 2007-3-8 22:11
自己再顶一下!!!有请版主!!!
作者: andymark    时间: 2007-3-8 22:31
按新增ECN后,子窗体并不能处理数据的输入,没能在原例子更改

思路:

在产品名称更新事件处理

Me.ECNDtl.SetFocus
DoCmd.GoToControl "BomNo"
作者: leung    时间: 2007-3-9 23:14
按版主所言,在产品名称更新事件中使用:

ME.ECNDTL.SETFOCUS

DOCMD.GOTOCONTROL "BOMNO"

还是不行啊,另外,最主要的一个问题是:当在子窗体输入完数据后,焦点再次进入主窗体的“变更原因”时,却不能输入数据,何解?真是百思不得其解啊,版主可否再帮看看这个问题?

[em06][em06][em06]
作者: andymark    时间: 2007-3-9 23:20
能否为例子简化,只保留有问题的

同时在你的例子上,按新增ECN后,子窗体并不能处理数据的输入,当然不能接受焦点


作者: leung    时间: 2007-3-9 23:23
我现在重新上传附件,已修正子窗体不可以输入记录的问题
作者: andymark    时间: 2007-3-10 04:29
跳转到子窗体指定的记录

[attach]23455[/attach]





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