Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Открытие формы по условию / 18 сообщений из 18, страница 1 из 1
25.11.2004, 08:06:46
    #32798903
Ирча
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Открытие формы по условию
Привет люди! Помогите ПЛЗ
Access 2003 mdb
Есть три формы Но основе двух таблиц связанных один ко многим
В первой ключ PodrID
Если во второй таблице есть Связанная запись, открываю форму "frmDogovor"
для просмотра и подсчета,
если нет, тогда форму "frmDogKorrect" для добавления записи в подчиненную таблицу
Пишу так
Код: plaintext
1.
2.
3.
4.
5.
Set rst = CurrentDb.OpenRecordset("SELECT tbDogovID.* FROM tbDogovID where [IDPodr] = " & Me.PodrID)
If rst( 0 ) >  0  Then
   DoCmd.OpenForm "frmDogKorrect"
     Else: DoCmd.OpenForm "frmDogovor"
End If
rst.Close
В случае отсутствия записи в подчиненной, пишет:Текущая запись отсутствует, и останавливает код
Я-то знаю, что она отсутствует, как обойти этот момент, чтобы форма открылась?
...
Рейтинг: 0 / 0
25.11.2004, 08:10:00
    #32798905
Alexander G
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Открытие формы по условию
проверять
rst.recordcount>o
...
Рейтинг: 0 / 0
25.11.2004, 08:23:10
    #32798916
Ирча
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Открытие формы по условию
БО СПО
Век живи, век учись
...
Рейтинг: 0 / 0
25.11.2004, 08:25:51
    #32798919
Shark
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Открытие формы по условию
Отсутствие записей лучче проверять .bof and .eof
Recordcount иногда не работает
...
Рейтинг: 0 / 0
25.11.2004, 08:32:12
    #32798929
Alexander G
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Открытие формы по условию
точнее не иногда, а
DAO
Для присоединенных объектов TableDef свойство RecordCount всегда имеет значение –1.
ADO
The cursor type of the Recordset object affects whether the number of records can be determined. The RecordCount property will return -1 for a forward-only cursor; the actual count for a static or keyset cursor; and either -1 or the actual count for a dynamic cursor, depending on the data source.
...
Рейтинг: 0 / 0
25.11.2004, 12:26:12
    #32799369
Ирча
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Открытие формы по условию
Спасибо еще раз
Поменяла на BOF and EOF
Тоже работает - Чудеса!:)
...
Рейтинг: 0 / 0
25.11.2004, 12:36:10
    #32799402
paparome
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Открытие формы по условию
Сегодня день функции DCount!!!

В третий топик ее пишу

DCount - господа, это функция дня - ей надо пользоваться, чтобы рекордсеты лишний раз не открывать :)
...
Рейтинг: 0 / 0
25.11.2004, 14:21:48
    #32799695
Программист-Любитель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Открытие формы по условию
DCount - фигня!

Гораздо интереснее создать рекордсет; объявить счетчик; в цикле перебрать все записи, увеличивая счетчик на 1!
...
Рейтинг: 0 / 0
25.11.2004, 18:16:13
    #32800371
paparome
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Открытие формы по условию
Программист-ЛюбительDCount - фигня!

Гораздо интереснее создать рекордсет; объявить счетчик; в цикле перебрать все записи, увеличивая счетчик на 1!
Это (ИМХО) чисто профессиональный подход к делу, для начинающих или не очень продвинутых Аксесовцев трудный.
ПО этой причине, я не стал его рекомендовать
...
Рейтинг: 0 / 0
25.11.2004, 18:57:25
    #32800430
Serge Gavrilov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Открытие формы по условию
Программист-ЛюбительDCount - фигня!

Гораздо интереснее создать рекордсет; объявить счетчик; в цикле перебрать все записи, увеличивая счетчик на 1!

Ага, и для повышения достоверности повторить пербор раз 100 :-)

Как говориться, семь раз ....
...
Рейтинг: 0 / 0
25.11.2004, 19:05:19
    #32800441
Geo
Geo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Открытие формы по условию
...
Рейтинг: 0 / 0
26.11.2004, 10:05:41
    #32800851
Ирча
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Открытие формы по условию
Ой, какие тут все грозные!
Ну DCount так DCount
Для этого и спрашивала, чтоб другие варианты посмотреть
За то теперь я могу это сделать тремя способами

Всем большое спасибо за участие!
...
Рейтинг: 0 / 0
26.11.2004, 11:04:19
    #32800980
Ирча
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Открытие формы по условию
Ну вот, накликала
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
If a = DCount("[IDPodr]", "tbDogovID", "[IDPodr]=Forms![frmPodGl]![SubPodr]![PodrID]") >  0  Then
     DoCmd.OpenForm "frmDogovor"
   
   Else:
    Dim stDocName As String
    Dim stLinkCriteria As String
    DoCmd.DoMenuItem acFormBar, acRecordsMenu,  5 , , acMenuVer70
    stLinkCriteria = "[IDPodr]=" & Me![PodrID]
    DoCmd.OpenForm "frmDogKorrect", , , stLinkCriteria
           
End If
Forms![frmPodGl]![SubPodr]![PodrID]-значение возвращает
в tbDogovID в поле [IDPodr] такое значение точно есть
выдает а=0
Почему? Подскажите!
...
Рейтинг: 0 / 0
26.11.2004, 11:09:02
    #32800996
Гео
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Открытие формы по условию
А что означает эта конструкция:

if a=b>c then

?
я даже не знаю, в каком порядке оно считаться будет. Скорее всего, (a=b)>c.
...
Рейтинг: 0 / 0
26.11.2004, 11:57:23
    #32801137
Программист-Любитель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Открытие формы по условию
Чудесный пример кода!

ID когда вначале, когда в конце имени столбца.

Корень, имя сущности, где-то Pod, где-то Podr. Аналогично, Dogov иди Dogovor или просто Dog. Осталось только кириллицу туда намешать.

МенюИтем в коде ненавижу - лучше использовать явные функции Форма.Requery, Форма.Refresh и т.п.
...
Рейтинг: 0 / 0
26.11.2004, 12:36:57
    #32801274
Ирча
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Открытие формы по условию
Гео, спасибо, поправила, заработало
авторА что означает эта конструкция:
if a=b>c then
я DCount составляля в отдельной строчке, вне If
и он мне выдавал ошибку компиляции, посмотрела Help, там везде =DCount,
во я и добавила, блин
авторЧудесный пример кода!

ID когда вначале, когда в конце имени столбца.

Корень, имя сущности, где-то Pod, где-то Podr. Аналогично, Dogov иди Dogovor или просто Dog. Осталось только кириллицу туда намешать.

МенюИтем в коде ненавижу - лучше использовать явные функции Форма.Requery, Форма.Refresh и т.п.
Мой код
Как хочу, так и пишу:)
...
Рейтинг: 0 / 0
26.11.2004, 12:52:44
    #32801313
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Открытие формы по условию
Ирчапосмотрела Help, там везде =DCount,
Знак равенства - это на случай, когда выражение ставится в ControlSource.
...
Рейтинг: 0 / 0
26.11.2004, 13:35:17
    #32801426
Ирча
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Открытие формы по условию
Да, спасибо, теперь уже поняла...
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Открытие формы по условию / 18 сообщений из 18, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]