MS Access 2003 - Unbound Form использует оператор INSERT для сохранения в таблицу; как насчет субформ? - PullRequest
0 голосов
/ 09 марта 2010

Итак, у меня есть несвязанная форма, которую я использую для сохранения данных в таблице при нажатии кнопки.

Есть ли способ, которым у меня могут быть подчиненные формы для ввода, которые позволят мне сохранять данные в таблице в пределах одного и того же нажатия кнопки? По сути, я хочу добавить дополнительные параметры ввода для пользователя, и, хотя я знаю другие способы сделать это, мне особенно интересно делать это таким образом (если это возможно).

Итак, допустим, что «родительская форма» - это 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.

Я понимаю, что, может быть, есть лучшие пути, но мне просто интересно, смогу ли я достичь этого с любопытством.

Спасибо как всегда!

1 Ответ

3 голосов
/ 09 марта 2010

Ваша проблема в том, как вы обращаетесь к элементам управления вместо

формы! Sub1.txtPrice

попробуй

me! Sub1.form.txtPrice

Вы можете увидеть больше примеров того, как ссылаться на подформы здесь

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

...