【问题标题】:Using an update query to update forms based on values in a text box access使用更新查询根据文本框访问中的值更新表单
【发布时间】:2014-02-27 11:47:20
【问题描述】:

我想知道是否可以在表单的文本框中输入数字数据,单击更新按钮将运行更新查询并将表单中的值 a 和 b 添加到表中的值 a 和 b .到目前为止我所拥有的是

Private Sub Command32_Click()
DoCmd.SetWarnings False
DoCmd.OpenQuery "updaterquery"
DoCmd.SetWarnings True
End Sub

在按钮上和用于更新查询

[表单]![更新程序]![idtbox]

[表单]![更新程序]![salestbox]

[Forms]![updater]![retentionstbox]

这些位于更新查询的“条件”部分下,这就是我目前所获得的全部内容。

任何建议都会非常棒,提前致谢。

【问题讨论】:

  • 测试起来很容易:这种方法听起来很合理——试一试,你不会破坏任何东西!当然,表单上的数据需要符合您要插入的表的数据完整性和验证要求。我想您应该从查询中粘贴 SQL 以确保完整性,并指出您在尝试您的方法时遇到的具体问题。
  • 谢谢马特,我不担心测试,因为这还没有真正的数据,当我单击更新按钮时,我收到一条错误消息,指出“运行时错误'3270':找不到属性。 "当我调试时,我得到“DoCmd.OpenQuery”updaterquery“”突出显示。如果我只是单击实际 updaterquery 上的运行命令,我会得到“查询必须至少有一个目标字段。”

标签: ms-access


【解决方案1】:

根据您在我之前的回答中提供的信息,我认为最好的方法是将表单上的文本框设置为不可见(即 [pstntxtbox])。将这些文本框直接链接到表格。然后,设置更多实际可见的文本框(即 [pstntxtbox2])。这些文本框将包含您要输入的数字。在查询中,像这样设置它(将文本框名称更改为您实际使用的名称):

UPDATE Sales SET PSTNSALES = (([Forms]![updater]![pstntxtbox]) + ([Forms]![updater]![pstntxtbox2])), 
BBSALES = (([Forms]![updater]![bbtxtbox]) + ([Forms]![updater]![bbtxtbox2])), 
INFSALES = (([Forms]![updater]![inftxtbox]) + ([Forms]![updater]![inftxtbox2])), 
C2FUSALES = (([Forms]![updater]![c2futxtbox]) + ([Forms]![updater]![c2futxtbox2])), 
TVSALES = (([Forms]![updater]![tvtxtbox]) + ([Forms]![updater]![tvtxtbox2])) 
WHERE (((Sales.EIN)=[Forms]![updater]![eintbox]); 

这样,它会将两个盒子加在一起;原始值和新值。然后,一旦您运行该更新语句,请不要忘记刷新表单,以便将新数字拉入其中(即 [pstntxtbox] 将填充您刚刚创建的新总和)。

【讨论】:

  • 谢谢,我正在努力将文本框链接到表格字段,我尝试了 =[Sales]![PSTNSALES] 和 PSTNSALES,都只显示“#Name?”。跨度>
  • 将表单绑定到表格,您应该能够将字段直接拖放到表单上。然后只需将它们的 Visible 属性设置为 False。
  • 太好了,还有很多问题,但在我问之前我会尝试自己解决这些问题。尽管非常感谢,但这一切都很好。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-01-07
  • 1970-01-01
  • 1970-01-01
  • 2021-09-02
  • 1970-01-01
  • 1970-01-01
  • 2022-11-30
相关资源
最近更新 更多