|
|
|
И снова это MessageBox!
|
|||
|---|---|---|---|
|
#18+
У меня существует таблица, где хранятся данные о том, кто и когда брал книгу. Так вот, я сделала модуль, который выдает сообщение о том, что существуют книги, которые не были возвращены в течение 30 дней и о что ставим отметку об их утере. Так вот мне надо, что бы при нажатии на кнопку ОК на этом сообщении вылазила форма, которая выводит мне эти книги. Эта форма у меня уже есть. Я только не знаю, как связать сообщение с этой формой. Вот этот модуль Public Function StartProc1() Dim lRs As DAO.Recordset Dim sSQL As String sSQL = "SELECT ReaderCard.idZapis, ReaderCard.invBookNum, ReaderCard.idReader, ReaderCard.dateGiveBook, ReaderCard.BookLost FROM ReaderCard WHERE (Date()-dateGiveBook)>30;" Set lRs = CurrentDb.OpenRecordset(sSQL) If Abs(DateDiff("d", Now, lRs("dateGiveBook").Value)) > 30 Then MsgBox "Книга не возвращена вовремя! Делаем отметку об утере" End If End Function Здесь условие, которое выбирает книги, которые не вернулись за 30 дней. А мне здесь надо еще поставить условие, что в поле BookLost (т.е. книга утеряна) нет отметки. Т.е. если есть невозвращенные книги и они не отмечены как потерянные, то выводить сообщение об этих книгах и вызывать форму. Если же книга не возвращена и отмечена, то никаких сообщений не надо. Помогите, пожалуйста.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2003, 17:00 |
|
||
|
И снова это MessageBox!
|
|||
|---|---|---|---|
|
#18+
после MsgBox "Книга не возвращена вовремя! Делаем отметку об утере" вставляем docmd.OpenForm "FormName" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2003, 17:07 |
|
||
|
И снова это MessageBox!
|
|||
|---|---|---|---|
|
#18+
Сработало! Спасибо. А с условием что делать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2003, 17:11 |
|
||
|
И снова это MessageBox!
|
|||
|---|---|---|---|
|
#18+
подход не правильный... ПРИНЦИПИАЛЬНО неправельный... концептуально... но, я молчу... //мысли в слух... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2003, 17:28 |
|
||
|
И снова это MessageBox!
|
|||
|---|---|---|---|
|
#18+
То Нуф-нуф ты на вопрос посмотри, ей же для учёбы:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2003, 17:31 |
|
||
|
И снова это MessageBox!
|
|||
|---|---|---|---|
|
#18+
а-а-а, что значит подход неправильный??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2003, 17:32 |
|
||
|
И снова это MessageBox!
|
|||
|---|---|---|---|
|
#18+
>Здесь условие, которое выбирает книги, которые не вернулись за 30 дней. А мне здесь надо еще поставить условие, что в поле BookLost (т.е. книга утеряна) нет отметки . Т.е. если есть невозвращенные книги и они не отмечены как потерянные, то выводить сообщение об этих книгах и вызывать форму. Если же книга не возвращена и отмечена, то никаких сообщений не надо . Помогите, пожалуйста.... Во-первых, в запросе надо изменить ВЕР: Код: plaintext Во-вторых, сия конструкция возвернет ВСЕ записи (книги), которые не возвращены в течении 30 дней и не утеряны, таким образом, нафик в If проверять еще раз это условие, тем более проверять только в ПЕРВОЙ возвернутой строке, когда их может вернуться 10? В-третьих, желательно (хотя вообщем-то не обязательно) сделать группировку в запросе; В-червертых, вместо того, что наваяно в If cltkf... тьфу... сделать: Код: plaintext Есть еще в-5 и в-6, но в принципе и этого достаточно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2003, 17:46 |
|
||
|
И снова это MessageBox!
|
|||
|---|---|---|---|
|
#18+
Попробуем!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2003, 17:47 |
|
||
|
И снова это MessageBox!
|
|||
|---|---|---|---|
|
#18+
Ничего, не получается! Все равно этот модуль, мне выдает все книги, которые были выданы более, чем 30 дней назад. И даже если, ставишь отметку о том, что она утеряна, он все равно говорит, что есть такие книги, и выдает Форму с этими книгами (причем все отметки на месте). Что делать???? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2003, 06:46 |
|
||
|
И снова это MessageBox!
|
|||
|---|---|---|---|
|
#18+
Код в студию, пожалста. И еще. Уверена, что в таблице дата хранится в формате "Дата/Время" а отметка хранится в логическом формате и если книга утеряна, то отметка = True? //пока просмотрит старый код и возможные нюансы... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2003, 07:25 |
|
||
|
И снова это MessageBox!
|
|||
|---|---|---|---|
|
#18+
Да! Я уверена: поле 'dateGiveBook' у меня типа дата/время и поле 'BookLost' логическое! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2003, 09:03 |
|
||
|
И снова это MessageBox!
|
|||
|---|---|---|---|
|
#18+
Напиши запрос через UNION! --------------------------- SELECT ReaderCard.idZapis, ReaderCard.invBookNum, ReaderCard.idReader, ReaderCard.dateGiveBook, ReaderCard.BookLost FROM ReaderCard WHERE (Date()-dateGiveBook)>30 UNION ReaderCard.idZapis, ReaderCard.invBookNum, ReaderCard.idReader, ReaderCard.dateGiveBook, ReaderCard.BookLost FROM ReaderCard WHERE (BookLost)=False --------------------------- 1) В первом будет выбирать все записи, которые не соответствует по дате 2) Во втором будет выбирать все записи, которые соответствует условию BookLost ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2003, 09:10 |
|
||
|
И снова это MessageBox!
|
|||
|---|---|---|---|
|
#18+
Amel, а ты будешь сопровождать девушку далее с таким запросиком? :) Гала, млин... Код давай!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2003, 09:14 |
|
||
|
И снова это MessageBox!
|
|||
|---|---|---|---|
|
#18+
нуф-нуф, какой код? Я немного исправила ситуацию. Т.е. сообщение все еще вылазит, но выдает форму, в которой уже нет книг, которые отмечены, что они утеряны. Надо сделать так, чтобы сначала проверялись 2 условия: 1. (Date()-dateGiveBook)>30 2. (BookLost)=False а потом уже решалось, выдавать сообщение или нет. Если эти условия выполняются, то сообщение выдавать, а если нет, то не надо, Вот как выглядит мой модуль, который отвечает за это сообщение Public Function StartProc1() Dim lRs As DAO.Recordset Dim sSQL As String sSQL = "SELECT ReaderCard.idZapis, ReaderCard.invBookNum, ReaderCard.idReader, ReaderCard.dateGiveBook, ReaderCard.BookLost FROM ReaderCard WHERE (Date()-dateGiveBook)>30;" Set lRs = CurrentDb.OpenRecordset(sSQL) If Abs(DateDiff("d", Now, lRs("dateGiveBook").Value)) > 30 And (BookLost) = False Then MsgBox "Книга не возвращена вовремя! Делаем отметку об утере" DoCmd.OpenForm "BookLost" End If End Function ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2003, 09:29 |
|
||
|
И снова это MessageBox!
|
|||
|---|---|---|---|
|
#18+
Мил мой человечек... Ты ну абсолютно не вняла моим распинаниям от "Вчера 17:46". Сначало объясню, почему не работает твой код: Твой запрос возвращает все записи, в которых просрочена дата выдачи книги (не зависимо от того утеряна она или нет), а ты в твоем "If Abs(DateDiff("d", Now, lRs("dateGiveBook").Value)) > 30 And (BookLost) = False Then" проверяешь ТОЛЬКО ПЕРВУЮ СТРОКУ, которая может быть как отмеченой, что пропала, так и не отмеченой, что пропала, при этом твоему сообщению глубоко пофик, есть ли там вторая, третья и т.п. строки, в которых книги отмечены, что они утеряны. Работать так не будет! Вот твой же код, но переработанный. Он не тестировался, поэтому может что и не так, но ты ОБЯЗАТЕЛЬНО ПОПРОБУЙ СДЕЛАТЬ ТАК, прежде чем говорить что "Нуф дурак, кто-нибудь помогите пожалуйста" :) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2003, 09:37 |
|
||
|
И снова это MessageBox!
|
|||
|---|---|---|---|
|
#18+
я не говорила, что Нуф-Нуф дурак... просто я видимо, не совсем тебя поняла... Ну я попробую этот вариант ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2003, 09:39 |
|
||
|
И снова это MessageBox!
|
|||
|---|---|---|---|
|
#18+
СРАБОТАЛО! Спасибо большое!!!! Нуф-нуф - ты просто умничка :)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2003, 09:42 |
|
||
|
И снова это MessageBox!
|
|||
|---|---|---|---|
|
#18+
Пожалуйста... Тока я не умничка, а всего лишь молодечек... Если бы был умничкой, то посоветовал бы еще и набор записей закрыть, и переменную уничтожить :) Код: plaintext 1. 2. 3. 4. 5. 6. Еще раз удачи... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2003, 10:04 |
|
||
|
И снова это MessageBox!
|
|||
|---|---|---|---|
|
#18+
Да? А зачем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2003, 10:16 |
|
||
|
И снова это MessageBox!
|
|||
|---|---|---|---|
|
#18+
Хороший вопрос :) В смысле правельный. Зачем нафик закрывать локальные переменные, если они при выходе из области видимости и так (сами по себе) должны уничтожаться... Вобщем это надо делать, потомучто: будет высвобождаться память, будет меньше глюков и вообще так надо делать (хороший стиль программирования того требует). Да, и еще... Хоть все и так работает, но можно из написанного нами совместно кода повыкидывать из запроса ненужные поля. Вообще-то там ни одно поле нам не нужно (мы ведь ничего из полученного набора записей не читаем, а просто смотрим сколько вернулось записей), но одно все же оставить надо... Сделай примерно так: sSQL = "SELECT idZapis FROM ReaderCard WHERE ((Date()-dateGiveBook)>30 AND (BookLost) = False);" Это просто потому, что выполняться будет несколько быстрее и так логичней. Хотя еще логичней сделать группировку в запросе, но луче не надо, а то заболеем "ползучим улучшивизмом" и дипломная даже к следующему лету готова не будет :) //типа, нет пределов совершенству... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2003, 11:06 |
|
||
|
И снова это MessageBox!
|
|||
|---|---|---|---|
|
#18+
Ох! Мне сейчас не совершенство нужно, а просто сделать эту чертову базу!!! она меня уже достала.... лето скоро кончится, а я... :(( Так и буду над ней сидеть.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2003, 13:52 |
|
||
|
И снова это MessageBox!
|
|||
|---|---|---|---|
|
#18+
Так и буду над ней сидеть.... Да радуйся ты. Некоторые над базами седеют. А что до лета - у некоторых (типа москвы) только зима закончилась. Так что тоже радуйся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2003, 13:55 |
|
||
|
И снова это MessageBox!
|
|||
|---|---|---|---|
|
#18+
А у нас уже лето было целую неделю, сейчас опять его ждем! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2003, 15:41 |
|
||
|
И снова это MessageBox!
|
|||
|---|---|---|---|
|
#18+
После строки :msgbox напиши OpenForm "имя формы" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2003, 18:34 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32196824&tid=1680752]: |
0ms |
get settings: |
8ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
46ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 194ms |
| total: | 311ms |

| 0 / 0 |
