Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Dlookup, что делаю не так?
 
 автор: mulrus   (29.06.2009 в 13:28)   личное сообщение
 
 

У меня есть таблица с сотрудниками

Сотрудник Категория
Иванов 1
Петров
Сидор 2
Михал

Так вот у Иванова и у Михал ничего в поле "Категория" не содержиться на кнопку пишу следующее.



Dim varX As Variant
Dim srch As Integer
srch = Null

varX = DLookup("[Сотрудник]", "Сотрудники", "[Категория] = " & srch)

MsgBox varX




Выскакивает ошибка: Invalid use of Null. Как мне обработать записи которые ничего не содержат, чтобы в переменную попал мой сотрудник с пустым полем "Категория"?

  Ответить  
 
 автор: Силыч   (29.06.2009 в 14:07)   личное сообщение
 
 

varX = DLookup("[Сотрудник]", "Сотрудники", "[Категория] = " & nz(srch,-1))

  Ответить  
 
 автор: mulrus   (29.06.2009 в 14:26)   личное сообщение
 
 

Спасиб большое!

  Ответить  
 
 автор: Гоблин   (05.07.2009 в 19:08)   личное сообщение
 
 

Странно. Повторил ситуёвину. Результат плачевный. Ничего не работает.

  Ответить  
 
 автор: Lukas   (05.07.2009 в 21:36)   личное сообщение
 
 

А так:?

DLookup("Сотрудник", "Сотрудники", "Категория Is Null")

  Ответить  
 
 автор: mulrus   (06.07.2009 в 02:18)   личное сообщение
 
 

Не знаю у меня в принципе первый способ работает. Но по скольку автор мне напомнил про фнукцию Nz, то я в том запросе сразу же в кнострукторе её поставил, чтобы там уже 0 был и Dlookup замечательно сработал

  Ответить  
 
 автор: Кабан   (06.07.2009 в 08:49)   личное сообщение
 
 

имхо, зависит от типа поля. в данном примере - играем с числовыми значениями. если текстовое то nz (Поле, "") ...

  Ответить  
 
 автор: Гоблин   (06.07.2009 в 23:14)   личное сообщение
 
 

Поле категория ставлю числовое. Как всегда работает только по Лукасу. Но смысла от функции DLookup не узрел. Показывает первого в списке без записи. Работает только вот так:
Dim varX As Variant
Dim srch As Integer
'srch = Null

varX = DLookup("Сотрудник", "Сотрудники", "Категория Is Null")
MsgBox varX

И чем она лучше MsgBox?

  Ответить  
 
 автор: Lukas   (07.07.2009 в 00:05)   личное сообщение
 
 


И чем она лучше MsgBox?


Что сравнивается, DLookup и MsgBox?

  Ответить  
 
 автор: Кабан   (07.07.2009 в 08:41)   личное сообщение
 
 

  Ответить  
 
 автор: Гоблин   (07.07.2009 в 13:35)   личное сообщение
 
 

Видимо не в ту сторону копаю. Смоделировал ситуевину только для того, что бы понять что дает этот Dlookup. Дает окно с соответствующей надписью. Стало быть отсюда и сравнение.
По моему справочнику про эту функцию ничего нет.

  Ответить  
 
 автор: snipe   (07.07.2009 в 14:01)   личное сообщение
 
 

Используется для вывода значения поля из таблицы
т.е. если нужно вытащить какое то одно значение из таблицы а в запросе или в форме эта таблица не используется в качестве источника строк - то можно значение выдернуть при помощи этой функции......
синтаксис такой же как у DCount DSum....

  Ответить  
 
 автор: Гоблин   (08.07.2009 в 22:23)   личное сообщение
 
 

Спасибо за инфу. Прояснилось.

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList