powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Вопрос на условие
34 сообщений из 34, показаны все 2 страниц
Вопрос на условие
    #32505407
Jack666
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кто-нибудь знает, как можно осуществить такую фичу:
Код: plaintext
1.
2.
3.
Есть список машин и каждой машине соответствует несколько дат покупки (*).
На форме, пользователь, из списка выбирает авто и в поле ставит свою дату покупки.
Если эта дата совпадает с (*), то выводится сообщение и пользователю предлагается изменить дату.
...
Рейтинг: 0 / 0
Вопрос на условие
    #32505502
Фотография schakh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Напимер:

sSQL = "SELECT * FROM tblDatiProdaj WHERE IDMashina = " & IDMashina & _
" AND DataProdaji = #" & DataProdaji & "#"

'Открываем рекордсет
......
EstTakaja = Not rs.EOF

А вообще вариантов море...
...
Рейтинг: 0 / 0
Вопрос на условие
    #32505503
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор...и в поле ставит свою дату покупки.
Если эта дата совпадает с (*), то выводится сообщение и пользователю предлагается изменить дату.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
private sub КонтролДаты_BeforeUpdate(cancel as integer)
if isnull(me.КонтролДаты) then
  msgbox "Введи дату!"
  cancel=true
  ' Это можно перенести в "Условие отбора" и "Сообщение об ошибке контрола"' 
  exit sub
endif
if not isnull(dlookup("ПолеДаты","ТаблицаПокупок","ПолеДаты=#" & _
                  format(me.КонтролДаты,"mm-dd-yyyy") & _
                  " And КодАвто=" & nz(me.КонтролАвто, 0 ))) then
  msgbox "Уже есть такие значения"
  cancel = true
  exit sub
endif
end sub
...
Рейтинг: 0 / 0
Вопрос на условие
    #32505597
Jack666
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за реализацию! Попытался сделать по Вашему примеру (но т.к. за Access сел несколько дней назад), то синтаксис еще толком не знаю, и как следствие наделал кучу ошибок! Если не сложно, помогите разобраться:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
'Поле36 - поле куда пользователь вводит новое значение;
[Назначенное время] - столбец таблицы, в котором уже есть какие-то даты  
покупок;
Поле38 - КодАвто;
ПолеСоСписком34 -список, из которого пользователь выбирает авто;
'

Private Sub Поле36_BeforeUpdate(Cancel As Integer)
If IsNull(Поле36) Then
  MsgBox "Введи дату!"
  Cancel = True
  ' Это можно перенести в "Условие отбора" и "Сообщение об ошибке контрола"'
  Exit Sub
End If
If Not IsNull(DLookup("Поле36", "[Назначенное время]", "Поле36=#" & _
                  Format(Поле36, "mm-dd-yyyy") & _
                  " And Поле38 =" & Nz(ПолеСоСписком34,  0 ))) Then
  MsgBox "Уже есть такие значения"
  Cancel = True
  Exit Sub
End If
End Sub
...
Рейтинг: 0 / 0
Вопрос на условие
    #32505599
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
If Not IsNull(DLookup("Поле36", "[Назначенное время]", "Поле36=#" & _
Format(Поле36, "mm/dd/yyyy") & _
"# And Поле38 =" & Nz(ПолеСоСписком34, 0))) Then

По-моему, это опечатки оригинала.
...
Рейтинг: 0 / 0
Вопрос на условие
    #32505765
Jack666
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Внес исправления, однако ошибка все равно осталась. Ругается примерно так:
Код: plaintext
1.
2.
Дата содержит систаксическую ошибку в выражении запроса
'Поле36=#12.12.2222# And Поле38=BMW7'. 
...
Рейтинг: 0 / 0
Вопрос на условие
    #32505777
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторДата содержит систаксическую ошибку в выражении запроса
'Поле36=#12.12.2222# And Поле38=BMW7'.
Первую ошибку тебе поправили, надо вторую. Почитай FAQ (прямо под единственной рекламой на форуме ссылка) про формирование строки SQL у
тебя создается то, что ты написал

Поле36=#12.12.2222# And Поле38=BMW7

А должно быть, коль скоро последнее поле строковое,

Поле36=#12.12.2222# And Поле38='BMW7'

или

Поле36=#12.12.2222# And Поле38="BMW7"

(не в случае с mssql), т.е. поправить поправить последню последнюю строку последнего условия так:

" And Поле38 ='" & Nz(ПолеСоСписком34) & "'")) Then

ЗЫ. Обязательно прочти FAQ. Этот раздел с небольшими уточнениями справедлив для всех языков.
...
Рейтинг: 0 / 0
Вопрос на условие
    #32505779
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Первую ошибку тебе поправили


Первую мою ошибку :))
...
Рейтинг: 0 / 0
Вопрос на условие
    #32505798
Jack666
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хорошо, FAQ почитаю! :) Спасибо за помощь.
...
Рейтинг: 0 / 0
Вопрос на условие
    #32506167
Jack666
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте! Прошу прощения за назойливость и тупость, но помогите мне.
Сегодня целый день просидел с этой фичей, FAQ прочитал, статьи почитал, примеры посмотрем, даже в MSDN залез и все безтолку!!!

Я понимаю, что глупо просить о помощи, когда тебе уже написали готовый теск (исходник). Но, правда, не получается у меня...

Все равно выдает ошибку синтаксиса (даже после внесенных исправлений).
...
Рейтинг: 0 / 0
Вопрос на условие
    #32506207
Фотография Alexander G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Исправленный код - в студию...
авторIf Not IsNull(DLookup("Поле36", "[Назначенное время]", "Поле36=#" & _
Format(Поле36, "mm-dd-yyyy") & _
" And Поле38 =" & Nz(ПолеСоСписком34, 0))) Then
Тут я не совсем понял.
первый аргумент DlookUp должно быть поле в таблице, т.е [Назначенное время], здесь почему-то, как я понимаю, поле формы. Второй -должен быть имя таблицы, здесь поле в таблице. В третьем (Where)- Поле36 и Поле38 это поля в таблице? что-то не похоже.
...
Рейтинг: 0 / 0
Вопрос на условие
    #32506558
Jack666
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот немного подправил:
Код: plaintext
1.
2.
If Not IsNull(DLookup("[Назначенное время]", "Покупка_Машин", "[Назначенное время]=#" & _
                                  Format(Me.Controls("Поле36"), "dd/mm/yyyy") & _
                                  "# And Номер_машины = '" & Nz(Me.Controls("ПолеСоСписком34"), 0) & "'")) Then


' Поле36- сюда пользователь на форме заносит дату
' ПолеСоСписком34- здесть пользовватель выбирает авто
' Номер_машины - код авто, взят из поля таблицы
' Покупка_Машин - непосредственно сама таблица данных о машинах

Но ошибка осталась!? :(
...
Рейтинг: 0 / 0
Вопрос на условие
    #32506562
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
dd/mm/yyyy - надо заменить на mm/dd/yyyy

Апострофы вокруг Nz(Me.Controls("ПолеСоСписком34"), 0) - лишние (если я правильно понял, что это поле в таблице числовое).
...
Рейтинг: 0 / 0
Вопрос на условие
    #32506610
Roma R
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Format(Me.Поле36, "mm\/dd\/yyyy")
...
Рейтинг: 0 / 0
Вопрос на условие
    #32506617
Jack666
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Даже после исправлений с
авторdd/mm/yyyy - надо заменить на mm/dd/yyyy
ничего не изменилось.
А апострофы надо оставить, т.к. "ПолеСоСписком34" - поле в таблице текстовое. Т.е. там находятся данные типа:

Код: plaintext
1.
2.
3.
4.
BMW7
Волга
Жигули
и т.п.
...
Рейтинг: 0 / 0
Вопрос на условие
    #32506646
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Эти Волги и Жигули находятся именно в самом Me.Controls("ПолеСоСписком34")? Или в Me.Controls("ПолеСоСписком34") сидят их коды, а они сами в каком-нибудь Me.Controls("ПолеСоСписком34").column(1)?
...
Рейтинг: 0 / 0
Вопрос на условие
    #32506663
Jack666
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
автор
...они сами в каком-нибудь Me.Controls("ПолеСоСписком34").column(1)


Сами волги и жигули сидят в таблице "Покупка_машин", и отсюда они заносятся в поле со списком.
Т.е. вот так:
авторв Me.Controls("ПолеСоСписком34") сидят их коды, а они сами в каком-нибудь Me.Controls("ПолеСоСписком34").column(1)
...
Рейтинг: 0 / 0
Вопрос на условие
    #32506687
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Таким образом,

Номер_машины = '" & Nz(Me.Controls("ПолеСоСписком34"), 0) & "'

- это неверно, потому что здесь в кавычки заключается код, а не название.
...
Рейтинг: 0 / 0
Вопрос на условие
    #32506709
Jack666
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Правда за вами! Но, даже без апострофов, ошибка осталась без изменений!!! :(
Код: plaintext
1.
2.
Дата содержит систаксическую ошибку в выражении запроса
'[Назначенное время]=#12.12.2222# And Номер_машины=BMW7'.
...
Рейтинг: 0 / 0
Вопрос на условие
    #32506714
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Блин. Если это BMW7, то разве это код???
...
Рейтинг: 0 / 0
Вопрос на условие
    #32506717
Jack666
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код авто - это номер авто, полученный с помощью счетчика?
...
Рейтинг: 0 / 0
Вопрос на условие
    #32506720
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
У комбобокса ПолеСоСписком34 есть ЗНАЧЕНИЕ, которое является числом, и есть ТО, ЧТО ПОКАЗЫВАЕТСЯ НА ЭКРАНЕ, которое является текстом. Я не знаю, кто из них должен равняться полю Номер_машины (мне всегда казалось, что номер машины и марка машины - это разные вещи), но в любом случае текст надо заключать в кавычки, а число не надо.

http://www.zooclub.ru/tales/63.shtml
Р.КиплингМоя маменька учила меня, что, если я увижу Ежа, я должен швырнуть его в воду, и тогда он сам собою развернётся, а если я увижу Черепаху, я должен выцарапать её лапой из панциря.
...
Рейтинг: 0 / 0
Вопрос на условие
    #32506721
Фотография Alexander G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если можно, оставь в базе кусочек таблицы и форму, сожми, заархивируй и прицепи к посту (должно влезть), посмотрим и разберемся. Это быстрее будет.
...
Рейтинг: 0 / 0
Вопрос на условие
    #32506731
Jack666
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот то что Вы просили (только тот кусочек, где возникает ошибка)
...
Рейтинг: 0 / 0
Вопрос на условие
    #32506734
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Я не вижу в этом файле того запроса, о котором идет речь. Где он должен быть, тоже непонятно.
...
Рейтинг: 0 / 0
Вопрос на условие
    #32506735
Jack666
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Эту форму я переделывал уже раз 20! И кинул последний вариант.
Сама форма (данные клиента), в ней когда пользователь вводит свои данные для покупки авто, параллельно в ComboBox'e выбирает нужную машину, а чуть правее в поле36 (aka "Назначенная дата") вводит дату покупки. Это все (когда вводишь дату выскакивает сообщение об ошибке)
...
Рейтинг: 0 / 0
Вопрос на условие
    #32506737
Jack666
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Черт. Помоему я в один файлик намешал лишнего! Сорьки (сказывается кол-во времени проведенного за компом сегодня) ;) Но не суть главное форма "Данные клиента" там есть, с ней и надо работать.
...
Рейтинг: 0 / 0
Вопрос на условие
    #32506739
Фотография Alexander G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Номер_машины -числовой, а в ПолеСоСписком34 - выводится текстовое (Название авто), естественно, сравниваются разные поля и типы данных.
...
Рейтинг: 0 / 0
Вопрос на условие
    #32506740
Jack666
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Даже если в ПолеСоСписком34 будут числовые значения - ошибка сохраняетя.
...
Рейтинг: 0 / 0
Вопрос на условие
    #32506744
Фотография Alexander G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ошибка здесь, нужно так
Format(Me.Controls("Поле36"), "mm\/dd\/yyyy") & "#")
...
Рейтинг: 0 / 0
Вопрос на условие
    #32506745
Фотография Alexander G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Немного подправил и кинул мылом. Кнопочку можно убрать, просто проверял.
...
Рейтинг: 0 / 0
Вопрос на условие
    #32506747
Фотография Alexander G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не проходит мыло, однако
...
Рейтинг: 0 / 0
Вопрос на условие
    #32508036
Jack666
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Попробуй теперь. (просто старый мыльник "склеил ласты" пару дней назад)
Я поменял на новый.
...
Рейтинг: 0 / 0
Вопрос на условие
    #32508274
Фотография Alexander G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ушло
...
Рейтинг: 0 / 0
34 сообщений из 34, показаны все 2 страниц
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Вопрос на условие
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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