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

Форум: MS ACCESS

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

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

 
 

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

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

тема: DLookUp
 
 автор: Pasat   (17.11.2008 в 11:09)   личное сообщение
 
 

Привет всем
Значения функции DLookUp использую в запрсе (как одно из полей)
Как правильно в фильтре функции DLookUp указать в качестве критерия поле запроса
вот так не пашет
Expr1: DLookUp("[Price]";"GoodPrice";"[GoodID1]=[GoodID]")
где [GoodID] одно из полей запроса
Спасибо

  Ответить  
 
 автор: Кабан   (17.11.2008 в 11:15)   личное сообщение
 
 

зачем в ЗАПРОСЕ использовать DLookup, если его можно заменить аналогичным запросом?

попробуйте так
Expr1: (select top 1 [Price] from GoodPrice where [GoodID1]=[GoodID])


правда, не знаю, сработает ли top 1 :)

  Ответить  
 
 автор: Pasat   (17.11.2008 в 11:32)   личное сообщение
 
 

Ничего не скажешь, красиво !!!
Такого я ещё не делал.

Огромное спасибо

  Ответить  
 
 автор: Pasat   (17.11.2008 в 19:20)   личное сообщение
11 Кб.
 
 

Блин рано обрадывался .
В таком виде запрос становиться необнавляемым.
Я поэтому и хочу использывать DLookup, чтобы найти нужный [price] для каждого товара и сохранить возможность изменять записи запроса (запрос используется в Рекорд соурсе формы).

Вопрос остается открытым.
Пример в аттаче. Нужно открыть запрос "Orders1" c нужными price - ами из запроса "GoodPrice1"

  Ответить  
 
 автор: Pasat   (17.11.2008 в 21:40)   личное сообщение
11 Кб.
 
 

Вопрос решил написав свою ф-ию
Public Function GetPrice(GoodID As Long) As Double
GetPrice = DLookup("[Price]", "GoodPrice1", "[GoodID1]=" & GoodID)
End Function

Но на большом кол-ве записей притормаживает. Наверное DLookup нелучший вариант

Посоветуйте как еще можно выводить нужную цену товара (в моем примере [PriceName]=1), чтобы сохранялась возможность редактирования записей запроса (в моем примере "Orders1")

  Ответить  
 
 автор: Кабан   (18.11.2008 в 09:11)   личное сообщение
 
 

все зависит от вводных
тебе это нужно для чего?
для редактирования цены в заказе?
тогда я бы делал (и делал в подобных задачах) - через временную таблицу. заполнял её нужными данными. и потом пользователь редактировал все что ему дозволено:)

  Ответить  
 
 автор: Pasat   (18.11.2008 в 13:23)   личное сообщение
 
 

Этот запрос используется в Рекорд соурсе формы (для заполнения таблицы "Orders" - только два поля [GoodID2] и [Quantaty]) а [Price] нужен для расчета стоймости заказа (кол-во*цена).
В зтом и фишка, что цен у каждого товара несколько и лежат они в отдельной таблице.
Отсюда и вопрос как достать нужную цену товара (например с кодом цены =1) не DLookUp-ом и сохранить возможность редактирования записей.
Там выше был пример приклеен.

  Ответить  
 
 автор: Кабан   (18.11.2008 в 14:58)   личное сообщение
 
 

пример не имею возможности посмотреть.
по организации выбора - я все описал :) я так делаю, другие так делают.

  Ответить  
 
 автор: FORMAT   (18.11.2008 в 15:45)   личное сообщение
 
 

Есть несколько способов. Все зависит от того, как ты выводишь несколько цен для одного товара, и нужно ли дать возможность в этой форме редактировать цену товара.

  Ответить  
 
 автор: FORMAT   (18.11.2008 в 15:59)   личное сообщение
 
 

перефразирую:
Если запрос является источником формы, то зачем нужна его обновляемость? По клику кнопки делаешь несколько запросов на Update и изменяешь данные в нескольких таблицах. Еще можно вывести сообщение о том, что записи будут изменены. Потом в стиле мелкософта спрашиваешь "Вы уверены?", ну и в конце добиваешь юзера вопросом "А зачем вам это нужно?"

  Ответить  
 
 автор: Pasat   (18.11.2008 в 15:59)   личное сообщение
 
 

Ответ на пост от 15:45
редактировать цену товара не надо. Цену нужно только найти - она нужна только для расчета (кол-во*цена)
Можно DLookUp-ом - это уже было сделано раньше, но притормаживает.
Вот я и пытаюсь с вашей помощью найти что-нибудь по лучше.

  Ответить  
 
 автор: FORMAT   (18.11.2008 в 16:14)   личное сообщение
 
 

Ну так Кабан показал как без DLookUp-а. А изменять записи - Update блаблабла. Должно работать быстрее.

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