宏从Access中的表单更新表

时间:2015-01-14 09:18:03

标签: vba ms-access

我有一个链接到MS Access表的MS Access表单。只要填写表单,只有在我关闭数据库时才会填充表。

我有一个假人"提交"表单上的按钮,我希望能够通过单击此按钮从表单填充我的表格并清除表单以进行新的输入。

2 个答案:

答案 0 :(得分:0)

您可以在表格(设计视图)中将表格设置为表格的行来源。 或者,您可以创建一个使用insert在表中创建新记录的查询,并使用表单中的值填充它们,例如SQL:

INSERT INTO YourTable( [User], [Name] ) 
SELECT [Forms]![YourForm]![Uservalue] AS [User], [Forms]![YourForm]![NameValue] AS [Name];

然后在调用查询(VBA)的SUBMIT按钮的OnClick事件中放置一个事件过程

DoCmd.OpenQuery "YourQuery"

或直接从VBA运行SQL代码。

DoCmd.RunSQL "YourSQL"

答案 1 :(得分:0)

在您关闭数据库或关闭表单或导航到新记录之前,访问绑定表单中的数据不会将数据写入表中。

但是,您只需在表单上放置一个提交按钮即可。 因此,提交按钮背后的代码是:

' code to submit data to table:
Me.Dirty = false

上面的代码将表示提交表单并将数据写入表单基础表。因此,如果您愿意,您可以编写代码来提交表单数据。它只有一条线。

如果用户关闭表单,或关闭数据库并且他们没有点击提交,那么你想做什么?你必须解释在这种情况下你想要发生什么。如果您什么都不做,那么Access会自动将数据提交给表。或许你想唠叨和折磨用户并提示他们该做什么?如果您拒绝不保存数据,是否要返回表单或继续关闭该表单? (用户会认为如果他们拒绝不保存,那么他们会要求有机会再编辑表单数据,而不是丢弃他们为此所做的数据输入。)

用户点击提交次数超过一次后,您还没有解释,那么您想要发生什么?如果用户意外地两次点击提交按钮(真的很容易用鼠标双击,那么你是否希望将表格数据写入表中两次?

所以你在这里没有回答过大量的问题。

因此,如果用户未点击提交,但关闭表单(或数据库),您希望发生什么?

如果用户意外点击提交两次,您是否希望将数据写入表中两次?你想在这里发生什么?什么会阻止用户多次点击提交而不会导致多次重新报道?

所以请记住,名为submit的按钮后面的一行代码会将数据提交到表中,但它是100多个其他详细信息,说明当用户点击提交超过一次时应该发生什么,以及发生了什么在没有点击提交的情况下关闭表单是您尚未共享的详细信息。不仅关闭了表单,还关闭了应用程序?

因此请记住,只需要一行代码即可将数据提交到表中,该代码为:

Me.Dirty = false