Access 2007 - формы, созданные на лету - PullRequest
0 голосов
/ 26 марта 2010

Надеюсь, я найду несколько советов от кого-нибудь.

Можно ли создавать формы "на лету", так сказать в MS-Access 2007

У меня есть структура таблиц:

tblCustomer
tblQuestAns

Покупатель может отвечать на вопросы анкеты много раз, поскольку они относятся ко всем продуктам.

Я предлагаю иметь начальную форму ввода, которая спросит, сколько продуктов может быть больше 1 Например: ТВ, Видео (скажем, пользователь выбирает 2)

При вводе этих данных следует надеяться, что следующая форма должна обновиться и включить список вопросов, например

TV

Q1, Q2 Q3

-

Видео (1)

Q1, Q2 Q3

-

Видео (2)

Q1, Q2 Q3

Это возможно? Любая точка в правильном направлении будет оценена.

Спасибо Noel

Ответы [ 3 ]

1 голос
/ 26 марта 2010

Вместо того, чтобы создавать форму на лету, как насчет следующего?

Создание формы с непрерывной подчиненной формой для отображения вопросов для клиента.

После того, как клиент ответит, сколько продуктов в начальной форме ввода, вы создаете пустые записи в таблице ответов.

Затем откройте форму вопросов, которая загружает пустые записи клиентов, чтобы они могли на них ответить.

1 голос
/ 26 марта 2010

Я не на 100% уверен в том, как вопросы связаны с продуктом или как пользователь выбирает продукты, для которых он вводит информацию, но одна возможность - заполнить массив, а затем открыть форму каждый продукт, который был выбран с соответствующими вопросами.

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

Sub WaitForFormClose(strFormName As String)
    While SysCmd(acSysCmdGetObjectState, acForm, strFormName) = acObjStateOpen
        DoEvents
    Wend
End Sub
1 голос
/ 26 марта 2010

Возможно, вы захотите сделать подчиненную форму с переменным числом записей.

...