Access中从a窗体通过按钮打开b窗体,在b窗体中添加新记录,想要新记录中的[

窗体中添加新记录,想要新记录中的[用户ID]自动与a窗体中的[用户ID]相同。

这个需求可以通过VBA代码实现。下面是示例代码:

于a窗体编写命令按钮单击事件过程

Private Sub Command1_Click()
DoCmd.OpenForm "窗体b"
Forms!窗体b![用户ID]=Forms!窗体a![用户ID]
End Sub

有疑问,可以追问。

追问

您好,这个方法好像只能在数据都录入好的情况下正确显示,添加新记录就不行了,比如a中有用户1,2的基本信息,我现在新建一个用户3,录入基本信息后,在用上述方法打开b,由于b中没有用户3的ID,就不能正确显示了。还有个问题是假如对已经存在的用户2打开b显示了用户2的订单1,这个时候我想添加一个订单2,怎么让订单2默认是用户2的订单。我描述的不好还请见谅啊!

追答

我提供的代码属于原理性质的,具体的实施方案要根据你的程序具体设计方案进行细化调整。细化调整时需要考虑的因素非常多,任何一个细节考虑不周都会导致代码出错,这里无法具体展开。
比如说,你需要为用户2添加一笔订单,首先应将窗体的当前记录转到用户2,然后再从窗体a打开窗体b,接着窗体b应跳到新增记录状态,然后才能将窗体a当前记录的[用户ID]送到窗体b的[用户ID],整个逻辑次序不得搞乱。当然要考虑的东西远远不止这些,总之“魔鬼在细节中”对于编程来说非常适用!

注意,窗体a新添用户,必须保存后,其用户ID才能被窗体b方便引用,未保存则该新增用户ID 大多数情况下都不能被窗体b引用。建议新增用户后强制保存再打开窗体b.
另外,对于绑定窗体来说一旦开始添加新纪录就无法中途放弃,而使用非绑定窗体输了一半放弃则非常方便,但是其代码处理会麻烦得多。

追问

可能就是因为没保存,我在试试。

追答

a,b两个窗体都是绑定窗体吗?

追问

我能转到用户2,也能从a打开b,b也跳到新增状态,可是不会将窗体a当前记录的[用户ID]送到窗体b的[用户ID]

追答

Forms!窗体b![用户ID]=Forms!窗体a![用户ID]

温馨提示:答案为网友推荐,仅供参考
相似回答