MS Access 2003 - 未绑定表单使用INSERT语句保存到表;子形态怎么样?

时间:2010-03-09 02:28:54

标签: sql ms-access vba access-vba ms-access-2003

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

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

让我们说'父母形式'是frmMain。并且有两个子表单“sub1”和“sub2”。仅举例来说,在frmMain上可以说有两个文本框:txtTitle& txtAuthor。 sub1和sub2都有一个文本框,代表价格。这个想法是Title&一本书的作者,然后是每家商店的价格(简化)。

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

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。我试过这个并得到了“Access无法找到表单”“”。我想我也可以在这种方法上看到为什么,因为当我单击调用新子表单到父表单的按钮时,刚输入的值不会保持/保存为sub1关闭而sub2打开。 我应该提到,上面的想法并不是一种或另一种方法,而是每次都使用的子表格。

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

我意识到可能有更好的方法,但我只是想知道我是否可以出于好奇而采用这种方法。

一如既往地谢谢!

1 个答案:

答案 0 :(得分:3)

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

表格!sub1.txtPrice

尝试

me!sub1.form.txtPrice

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

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