MS Access 2003 - Unbound Form 使用 INSERT 语句保存到表中;子表单呢?

Posted

技术标签:

【中文标题】MS Access 2003 - Unbound Form 使用 INSERT 语句保存到表中;子表单呢?【英文标题】:MS Access 2003 - Unbound Form uses INSERT statement to save to table; what about subforms? 【发布时间】:2010-03-09 02:28:53 【问题描述】:

所以我有一个未绑定的表单,用于在单击按钮时将数据保存到表格中。

有没有一种方法可以让我在同一个按钮点击中将数据保存到表格中?基本上我想为用户添加更多的入口选项,虽然我知道其他方法可以做到,但我特别好奇这样做(如果可以做到的话)。

因此,可以说“父表单”是 frmMain。并且有两个子窗体“sub1”和“sub2”。举例来说,在 frmMain 上有两个文本框:txtTitle 和 txtAuthor。 sub1 和 sub2 都有一个文本框,代表价格之类的东西。这个想法是一本书的标题和作者,然后是每家商店的价格(简化)。

所以我尝试了这个(因为我认为值得一试):

Dim db as DAO.database
Dim sql as String


sql = "INSERT INTO (Title, Author, PriceA, PriceB) VALUES ("

if not isnull(me.txtTitle) then
    sql = sql & """" & me.txtTitle & ""","
Else
    sql = sql & " NULL,"
End If

if not IsNull(me.txtAuthor) then
    sql = sql & " """ & me.txtAuthor & ""","
else
    sql = sql & " NULL,"
end if

if not IsNull (forms!sub1.txtPrice) then
    sql = sql & " """ & forms!sub1.txtPrice & ""","
else
    sql = sql & " NULL,"
end if

没有完成代码,我想你可能会看到我要去的 GOTCHA。我试过这个并得到一个“访问找不到表单”“”。我想我也几乎可以理解为什么使用这种方法,因为当我单击将新子表单调用到父表单的按钮时,刚刚输入的值不会在 sub1 关闭和 sub2 打开时保留/保存。 我应该提到,上面的想法并不是一种或另一种方法,而是每次都使用两种子形式。

所以这是一个例子。我想用这种方法(如果可能的话)在一个表单中有大约 7 个不同的子表单选择,并且能够通过 SQL 语句保存到一个表中。

我意识到可能有更好的方法,但出于好奇,我只是想知道我是否可以通过这种方法到达那里。

一如既往的感谢!

【问题讨论】:

这里要明确一点,这些不是通常类型的带有多个记录的子表单,它们是带有更多未绑定控件的表单的子表单控件,对吗?如果是这样,为什么有子表单,为什么没有 tabcontrol? 对,tab控制方法是我能做的。只是出于好奇而想知道我是否可以使上述想法起作用....再次....并不是说它甚至是最好的方法。谢谢! 【参考方案1】:

您的问题在于您如何引用控件,而不是

forms!sub1.txt价格

试试

me!sub1.form.txt价格

您可以在此处查看更多有关如何引用子表单的示例

http://www.mvps.org/access/forms/frm0031.htm

【讨论】:

以上是关于MS Access 2003 - Unbound Form 使用 INSERT 语句保存到表中;子表单呢?的主要内容,如果未能解决你的问题,请参考以下文章

使用 MS Access 2003 连接到 SQL Server 2005

计数 MS-ACCESS 2003 列中的图像

MS Access 2003 - Access 表单上的嵌入式 Excel 电子表格

MS-Access 2003 CurrentDb.TableDefs("tablename").Connect 数据库啥都不是

关于 MS Access 2003 和 VBA 编程

ms access 2003 .mdb 无法查看表