Требование на заполнение формы. Как?

Жерех
Дата: 01.03.2008 17:28:05
В учебной базе данных "Заказы на работы", сразу после ее создания и открытия, в Access появляется предложение заполнить "Сведения об организации" с сохранением этих сведений после закрытия формы.
1) Как это сделать, для своей, вновь созданной базы данных?
2) Будет ли это работать в Runtime?
Владимир Саныч
Дата: 01.03.2008 18:40:33
Если это сделано в _учебной_ базе, то сделано для того, чтобы можно было посмотреть как. Разве нет?
Жерех
Дата: 01.03.2008 19:12:31
Наверное она все-же не учебная, а просто пример...
Жерех
Дата: 01.03.2008 19:14:09
я очень внимательно смотрел где только мог! ....знать бы еще где смотреть?! )))
Karfaqen
Дата: 01.03.2008 19:21:07
Наверняка это в процудуре обработки события открытия стартовой формы - ее и смотрите. Скорее всего код проверяет наличие записи в какой-нибудь таблице (тех самых данных регистрации), и если их нет - открывает форму для их ввода, да и все.
Karfaqen
Дата: 01.03.2008 19:23:54
Karfaqen
тех самых данных регистрации
в смысле
Жерех
"Сведения об организации"
Жерех
Дата: 01.03.2008 20:05:26
Karfaqen
Спасибо за отклик!

Именно в форме "Сведения об организации" я и искал, но там вообще пустой модуль.
А нашел в кнопочной, сориентировался по фразе: - "Перед использованием приложения....."

Private Sub Form_Open(Cancel As Integer)
' Minimize the database window and initialize the form.

Dim dbs As Database
Dim rst As Recordset

On Error GoTo Form_Open_Err

' Minimize the database window.
DoCmd.SelectObject acForm, "Кнопочная форма", True
DoCmd.Minimize

' Make sure we have company information
DoCmd.Hourglass False
Set dbs = CurrentDb()
Set rst = dbs.OpenRecordset("Сведения об организации")
If rst.RecordCount = 0 Then
rst.AddNew
rst![Адрес] = Null
rst.Update
MsgBox "Перед использованием приложения необходимо ввести название, адрес и дополнительные сведения об организации."
DoCmd.OpenForm "Сведения об организации", , , , , acDialog
End If
rst.Close
dbs.Close

' Move to the switchboard page that is marked as the default.
Me.Filter = "[ItemNumber] = 0 AND [Argument] = 'По умолчанию' "
Me.FilterOn = True

Form_Open_Exit:
Exit Sub

Form_Open_Err:
MsgBox Err.Description
Resume Form_Open_Exit

End Sub
(вставлять здесь модуль, отдельно от текста сообщения, я так и не научился, может попутно кто-то расскажет как?) )))

Пусть смутно, но я понимаю, что при открытии базы идет проверка в таблице на наличие записей по полю "Адрес" и в случае их отсутствия открывается форма.
Но если не заполнить форму сразу и закрыть, то больше такого предложения не выводится. Подскажите, где копать?
Karfaqen
Дата: 01.03.2008 21:17:16
Жерех
Именно в форме "Сведения об организации" я и искал
А я именно НЕ про нее писал:
Karfaqen
в процудуре обработки события открытия стартовой формы
Имя стартовой формы написано в "Параметрах запуска" (там есть комбобокс "вывод формы") - посмотрите, как пить дать увидите там имя своей кнопочной формы. Ну да раз нашли, то и ладно.

Жерех
Но если не заполнить форму сразу и закрыть, то больше такого предложения не выводится. Подскажите, где копать?
Вы уже бросьте лопату - все ведь раскопали, вот же вы пишете:
Жерех
Set rst = dbs.OpenRecordset("Сведения об организации")
If rst.RecordCount = 0 Then
rst.AddNew
rst![Адрес] = Null
rst.Update
MsgBox "Перед использованием..."
DoCmd.OpenForm "Сведения об организации", , , , , acDialog

End If
Красное - проверяет есть ли ХОТЬ ОДНА запись в таблице "Сведения об организации". Самый первый раз ее нет, поэтому дальше выполняется синее.

Синее ДОБАВЛЯЕТ ОДНУ ЗАПИСЬ в эту таблицу, а следом OpenForm открывает вам форму для заполнения этой записи.

Когда вы повторно запускаете приложение, этот код снова выполняется, но запись в таблице "Сведения об организации" теперь УЖЕ ЕСТЬ, и поэтому синее никогда больше не выполнится.
Жерех
Дата: 01.03.2008 21:33:21
Вот спасибо!!!
Благодаря Вашим разъяснениям, теперь я все понял. )))