LEADERSOFT.ru Разработка на заказ программ и сайтов
Форумы по информационным технологиям
 
Регистрация  |  Вход
left
Форумы Минимизировать
ПоискСписок форумов
  Программирование  Microsoft Access. Файлы mdb и accdb  Тема: Почему DL...
 Тема: Почему DLookUp не работает
 
 15.06.2007 21:09:17
Владимир26
8 сообщения


Тема: Почему DLookUp не работает
Отчет "Оплата заказов" обрабатывает одноименную таблицу.
В заголовке группы отчета вставил поле "Клиент"
В свойстве этого поля пишу:
=DLookUp("[Клиент]";"[Заказы]";"[КодЗаказа]=" & Отчеты![Оплата Заказов]!КодЗаказа)
По всем заказам в поле "Клиент" высвечивается: "#Ошибка".
Что-то с синтаксисом нетак? Немогу выяснить.
[Заказы] это таблица,
[КодЗаказа] - ключ-поле в этой таблице,
[Оплата Заказов]!КодЗаказа - поле в заголовке группы отчета,
[Клиент] - поле в таблице [Заказы].
Вроде все по хелпу.
???
Ув. Админ! С отчетами сегодня только начал работать, литературы никакаой. Все поэтому сайту учусь.
Помогте пожалуйста, сроки горят.


P.S. Общий раздел по отчетам
Автор: Владимир от 06.04.2005 20:12:10 Источник ...
 15.06.2007 21:09:17
All
4316 сообщения
1-ый


RE: Почему DLookUp не работает
Вообще ошибок может быть очень много, особенно в отчетах.
Например.
1. Нужна проверка на пустые значения.
=nz(DLookUp("[Клиент]";"[Заказы]";"[КодЗаказа]=" & ???![Оплата Заказов]!КодЗаказа);"")

2. Необходимо поле в отчете изменять на этапе форматирования. Следовательно. ???![Оплата Заказов]!КодЗаказа можно заменить на Last(Me!КодЗаказа). Если информация используется в группе, то надо вернуть 1 значение. Это делают функции sum, last ...

3. Если поле не редактируемое (текст), то надо писать Me.Заголовок.Caption = "..."

P.S. Лучше поставьте точку прерывания на оператор dlookup и проверьте в отладчике каждую переменную.



P.S. Общий раздел по отчетам
Автор: Admin от 0:00:00 Источник ...
 15.06.2007 21:09:17
Владимир26
8 сообщения


RE: Почему DLookUp не работает
..."[КодЗаказа]=" & ???![Оплата Заказов]!КодЗаказа)...
что значат три знака вопроса? может слово Отчеты?
или это что-то из того чего я не знаю?

Как по мне то лучше с точкой прерывания.
Но DLookUp введен с помощью построителя выражения в свойство Даныые поля "Клиент".
Как туда поставить точку прерывания (это же не в VBA редакторе)?

Зараннее спасибо.


P.S. Общий раздел по отчетам
Автор: Владимир от 07.04.2005 12:59:55 Источник ...
 15.06.2007 21:09:17
All
4316 сообщения
1-ый


RE: Почему DLookUp не работает
??? - означает, что код после вопросов возможно неправильный. Нельзя так писать.
Возмите у отчета группу и сделайте для него событие. Там и поставьте оператор dlookup и точку прерывания.


P.S. Общий раздел по отчетам
Автор: Admin от 0:00:00 Источник ...
 15.06.2007 21:09:17
All
4316 сообщения
1-ый


RE: Почему DLookUp не работает
Пробовал функцию в редакторе VBA в отдельном модуле:
Public Sub DLU()
Dim Kl As Variant
Kl = DLookup("[Описание]", "[Товары]", "[КодТовара] = ПКСС")
End Sub

при запуске поцедуры выдает
"Предыдущая операция прервана пользователем (Ошибка 2001)"

Kl = DLookup("[Описание]", "[Товары]", "[КодТовара] = 1")
при запуске поцедуры выдает
"Несоответствие типа данных в выражении условия отбора. (Ошибка 3464)"

Пустые значения отсутствуют
Тип данных поля КодТовара - Текстовый
имеются оба значения товара.
Ничего не пойму. Какаято проблема с самой DLookup.
Функция вообще не работает на любой таблице.

Сделал новую базу данных
с одной таблицей Таблица1
в модуле вставляю процедуру
Public Function P1()
Dim v As String
v = DLookup("Описание", "Таблица1", "КодТ1=к3")
End Function

теже проблемы:
"КодТ1=к3" - ошибка 2001
"КодТ1=1" - ошибка 3464

что за ерунда с этим Access 2003?


P.S. Общий раздел по отчетам
Автор: Владимир от 0:00:00 Источник ...
  Программирование  Microsoft Access. Файлы mdb и accdb  Тема: Почему DL...
ПоискПоиск  Список форумовСписок форумов  
right