Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Подстановка цен из справочника... / 25 сообщений из 30, страница 1 из 2
11.07.2003, 15:51
    #32205864
TRoUbLEs
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подстановка цен из справочника...
Привет народ!
Есть одна проблема. Дело вот в чем. Есть таблица: Контрагент, Товар, Завод, Цена. Поля таблицы говорят сами за себя. ;-) Это и есть справояник цен на товары. Для некоторых контрагентов цена отличается от той цены, что есть в прайс-листе, т.е. у них может быть скидка. В этом справочнике все это отражено. И есть несколько записей, где поле контрагент Null, т.е. это и есть официальный прайс-лист. Это цена для всех остальных заказчиков, у которых нет ни скидок и нет договоренностей с руководством.
Задача и основная проблема состоит в том, что необходимо корректно подставлять цены из справочника в форму для ввода накладных. Т.е. если у контрагента определена цена по данному товару и данному производству, должна подставляться именно она. Если ее нет в справочнике, то берется цена из той же таблицы, но только поле контрагент пустое, а товар и завод тот же.вот как собственно это реализовать???
Пока у меня сделана только подстановка цены, если есть какие-то договоренности. Сделан запрос, и на этот запрос повешана форма, т.е. при вводе накладной, вводится контрагент, товар, завод и как только фокус получает поле "Цена" идет макрос, который открывает вот ту самую форму, основанную на запросе и подставляет цену. Но если такого контрагента там нет, то возвращается ошибка и цену надо вводить вручную, что не удобно и не правильно. В этом случае должна подставляться цена из прайс-листа, где контрагент Null.
Если кто чего понял, то объясните, плиз, убогому. :)
...
Рейтинг: 0 / 0
11.07.2003, 15:57
    #32205879
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подстановка цен из справочника...
Я ничего не понял, но предлагаю так:

where контрагент=заданный or контрагент is null
order by контрагент desc

и брать значение из первой записи. Если есть запись с контрагентом (знать бы, что это такое...), то первой будет она, а если нет, то с null'ом.
...
Рейтинг: 0 / 0
11.07.2003, 16:02
    #32205890
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подстановка цен из справочника...
Саныч, ну что ты как маленький?
Контрагент - это же Нео. Он борется с агентами.

2 TRoUbLEs
Я тоже не понял проблемы. Ты же все описал по русски как надо сделать. Вот теперь переведи это на английский и подкорректируй синтаксис, чтобы оно в ограничения VBA и SQL влезло.
...
Рейтинг: 0 / 0
11.07.2003, 16:09
    #32205898
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подстановка цен из справочника...
Лох, я шутку оценил, но я не знаю, кто такой Нео. Догадываюсь, что это какой-то персонаж из того, что идет по российскому телевидению, которое в Израиле ловится только частично. А на самом деле?
...
Рейтинг: 0 / 0
11.07.2003, 16:17
    #32205908
VIG
VIG
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подстановка цен из справочника...
Я тоже ничего не понял.
2 В.С
Нео- это из Матрицы
...
Рейтинг: 0 / 0
11.07.2003, 16:19
    #32205910
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подстановка цен из справочника...
И агенты - оттуда же.
Неужели до Израиля даже первая Матрица еще не добралась? Или ее не признали кошерной?
...
Рейтинг: 0 / 0
11.07.2003, 16:21
    #32205917
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подстановка цен из справочника...
Хотя тогда откуда VIG знает?
...
Рейтинг: 0 / 0
11.07.2003, 16:24
    #32205921
realist
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подстановка цен из справочника...
Ну так сделай в справочнике Контагенты поле Скидка, допустим числовое. При вводе в справочник нового Контагента Скидеке присвой значение 0 (это будет значить, при обработке в программе, что цена берётся из прайса). Как только этот клиент заслужит скидки, присвоишь полю Скидка значение допустим1, если хорошая скидка то 2, и т.д. И потом обрабатывай. В зависимости от значения в поле Скидка подставляй скидку?
Я понял чего ты хочешь?
...
Рейтинг: 0 / 0
11.07.2003, 16:25
    #32205928
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подстановка цен из справочника...
Ага. Нет, про Матрицу слышал. Мне про нее сосед по комнате (он работает на .NET, а не на Аксессе, поэтому в форум не ходит) прожужжал значительную часть ушей, и я на нее (не на часть ушей, а на Матрицу), наверно, когда-нибудь схожу.
...
Рейтинг: 0 / 0
11.07.2003, 16:55
    #32205982
VIG
VIG
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подстановка цен из справочника...
Мне кажется ,что нам уже пора сюда
...
Рейтинг: 0 / 0
11.07.2003, 17:00
    #32205990
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подстановка цен из справочника...
Человеку три раза сказали что не поняли вопроса, один раз спросили правильно ли поняли, и в ответ - тишина.
Если ему ответ не нужен - ну тогда мы тут потреплемся чуток. В ожидании ответа. Если он будет. А если не будет - ну что ж делать... Значит и не особенно нужно.
...
Рейтинг: 0 / 0
11.07.2003, 17:11
    #32206004
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подстановка цен из справочника...
А может, вот сюда? Я основал уголок для курения - если кто хочет, то добро пожаловать.
...
Рейтинг: 0 / 0
11.07.2003, 20:05
    #32206175
TRoUbLEs
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подстановка цен из справочника...
Да, ребята, ВИГ прав, флуду вы развели - будьте-нате. Жаль. :((
Ладно, конкретный пример.
<pre>
------------------------------------------------
Пупков Ботинок Завод1 100р
Сидоров Ботинок Завод1 110р
Сидоров Ботинок Завод2 109р
Иванов Сапог Завод2 130р
Ботинок Завод 1 105р.
Ботинок Завод 2 115р.
Сапог Завод 1 1085р.
Сапог Завод 2 100р.
-------------------------------------------------
</pre>
Это и есть спарочник цен.
вот теперь вопрос. Если я ввожу, Сидоров, Ботинок, Завод1, то запрос вытаскивает цену 110р. Если же я ввожу Петров, Ботинок, Завод1, то запрос выдает ошибку, а надо, чтобы он вытаскивал цену 105р. Как это сделать?
То Саныч:
Я не умею перебирать записи. :((( Как это сделать програмно, если не сложно напиши.
То Лох:
Я конечно понимаю, что ник и статус обязывают, но не до такой же степени. То что не отвечал, простите, работа у меня такая. :(
То Реалист:
Спасибо, но такое решение проблемы не устраивает, т.к. слишком много данных. Скидка идет не в одних и тех же процентах, а по каждому контрагенту своя, причем не обязательно скидка (на иные объекты цена может быть и больше прайса). Поэтому интересует именно такое решение, про которое я сказал выше.
Заранее спасибо.
З.Ы.
Если будет желание пофлудить, давайте я создам еще один топик специально для вас, ок?
...
Рейтинг: 0 / 0
11.07.2003, 20:19
    #32206184
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подстановка цен из справочника...
Какой запрос у тебя ошибку-то выдает?
Текст запроса в студию.

Откуда она вообще взялась?
Рекордсет может просто не вернуть ни одной записи. Ну и хорошо. Лови этот случай и запускай другой запрос. Который будет вытаскивать цену для выбранного ботинка и завода, но без фамилии.
Ровно как ты и написал. По русски. Еще раз говорю - возьми англо-русский словарь, переведи все что ты сказал в описании задачи на английский, и подгони под SQL и VBA.
Можно конечно и одним запросом сделать, но меня ник обязывает сделать все через жопу.

З.Ы. Если будет желание пофлудить - мы и тут справимся
...
Рейтинг: 0 / 0
11.07.2003, 20:43
    #32206196
VIG
VIG
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подстановка цен из справочника...
Так уже на много лучше
"select [Цена] from mytable " & _
"where [Товар]='" & strMerchandise & "'" & _
"and [Завод]='" & strPlant & "'" & _
"and [Контрагент]=" & iif (strSupplier ='',NULL,"'" & strSupplier & "'")
...
Рейтинг: 0 / 0
11.07.2003, 20:43
    #32206197
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подстановка цен из справочника...
Не надо перебирать записи. Тот селект, хвост которого я привел, в ответ на

Код: plaintext
Сидоров Ботинок Завод1

выдаст две записи:

Код: plaintext
1.
Сидоров Ботинок Завод1 110р
null Ботинок Завод  1  105р

и значение, взятое из первой, будет 110р. А в ответ на

Код: plaintext
Петров Ботинок Завод1

он выдаст одну запись:

Код: plaintext
null Ботинок Завод  1  105р

и значение, взятое из первой (= единственной), будет 105р. Получается, что я правильно понял постановку задачи.
...
Рейтинг: 0 / 0
11.07.2003, 20:48
    #32206201
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подстановка цен из справочника...
2 Владимир Саныч
Саныч, ты б еще догадался сделать TOP 1 - цены б тебе не было.
Или тебя ник тоже обязывает все через жопу делать?

2 VIG
Твой вариант не катит. Он у тебя если strSupplier=Null (прости господи) - то отбирает запись с пустым поставщиком, а нужно чтобы это происходило только если для непустого strSupplier отсутствовует запись
...
Рейтинг: 0 / 0
11.07.2003, 20:50
    #32206203
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подстановка цен из справочника...
2 Лох:

Твоя жопа совершенно права. Действительно, TOP 1. :^)

P.S. Во всем этом топике следует заменить все вхождения слова жопа на #$%&.
...
Рейтинг: 0 / 0
11.07.2003, 20:53
    #32206205
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подстановка цен из справочника...
Кстати, это не ник, а настоящее имя-отчество. Если я тебе свой ник покажу, то тебе еще смешнее станет.
...
Рейтинг: 0 / 0
11.07.2003, 21:03
    #32206213
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подстановка цен из справочника...
я делаю проще

при выписке документа , стоя на товаре раскрываю формочку а там последние 10 покупок этого товара этим клиентом дата - цена.
если список пуст этот товар этот клиент не покупал. хочет скидку или еще чего пусть отправляется к начальнику. (правда у нас на каждый товар с конктреным клиентом свои отношения) хотя можно к клиетну привязать поле где будет указана персональная скидка на все и при выписке дока оператор принимает решенье
...
Рейтинг: 0 / 0
11.07.2003, 21:41
    #32206231
VIG
VIG
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подстановка цен из справочника...
Твой вариант не катит
Но я же сразу сказал ,что не понял
сделать TOP 1
В принципе красиво,но что делать ,если будет более одной записи с null
Код: plaintext
1.
2.
Сидоров Ботинок Завод1 110р
null Ботинок Завод  1  105р
null Ботинок Завод  1  115р

Правда это уже проблема автора
...
Рейтинг: 0 / 0
11.07.2003, 22:51
    #32206248
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подстановка цен из справочника...
> Но я же сразу сказал ,что не понял

Я тоже сказал, что не понял. :^)
...
Рейтинг: 0 / 0
12.07.2003, 01:54
    #32206273
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подстановка цен из справочника...
По хорошему я бы сделал общий справочник ботинков (с ценами), и плюс ценовые соглашения на некоторых клиентов на некоторые товары.
Тогда бы все решалось простым Left Join' ом и функцией Nz
Но, как сказал вери импотент гест, это " это уже проблема автора " (которому кажись на усе пофик)
...
Рейтинг: 0 / 0
12.07.2003, 17:42
    #32206378
TRoUbLEs
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подстановка цен из справочника...
То <b>Лох Позорный:</b>
1) Мне не "пофигу" как ты сказал, просто не могу тусоваться на форуме полдня. :((
2) Ты совершенно правильно понял что я хочу сделать. Я действительно несколько неправильно выразился. Ошибка не выдается, а просто не вытягивается ни одной записи. :( Соответственно, когда я в формы пытаюсь подставить это самое "ничего" в поле появляется запись "#Ошибка".
3) > "Рекордсет может просто не вернуть ни одной записи. Ну и хорошо. Лови этот случай и запускай другой запрос."
<b>Как это сделать???</b> Я не умею. :( Именно это я и пытаюсь сделать, но вот знаний пока не хватает.
> "Можно конечно и одним запросом сделать, но меня ник обязывает сделать все через жопу."
Вот это намного предпочтительней. Может попробоем все сделать не через @#$% а по-человечески?
4) > "По хорошему я бы сделал общий справочник ботинков (с ценами), и плюс ценовые соглашения на некоторых клиентов на некоторые товары.
Тогда бы все решалось простым Left Join' ом и функцией Nz "
Вот тут я тебя чуть-чуть не понял. :( Т.е. делаем справочник цен на товары с заводов, а потом для отдельных клиентов делаем еще один справочник по ценам, которые установлены в допах с этими клиентами???
То <b>Владимир Саныч</b>
Все здорово, действительно можно вытащить две записи (если есть).
Сидоров Ботинок Завод1 110р
null Ботинок Завод1 105р
Но где гарантия, что первой будет именно не пустое поле? Если только задать сортировку по убыванию и тянуть, как и сказал Лох, TOP1
To <b>VIG</b>
> "В принципе красиво,но что делать ,если будет более одной записи с null.
Правда это уже проблема автора"
Если такая запись появляется, то все не будет работать, поэтому при заненсении новой цены в справочник, сначала выполняется праверка, а нет ли уже такой записи в справочнике (изначально думал сделать 3 ключевых поля, Контрагент, Товар, Завод, но в ключеванном поле не может быть Null, поэтому пришлось делать через ..... ну вы поняли ) и если такая запись уже имеется, то предлагается изменить ее, либо идти на фиг. Поэтому тот вариант что ты описал исключен (как мне кажется).
<br><br>
Текст запроса (по просьбам трудящихся):
-------------------------
SELECT Цена_реализация.Контрагент, Цена_реализация.Товар, Цена_реализация.Подразделение, Цена_реализация.Цена
FROM Цена_реализация
WHERE (((Цена_реализация.Контрагент)=[Forms]![Последовательно_реализация]![Контрагент] Or (Цена_реализация.Контрагент) Is Null) AND ((Цена_реализация.Товар)=[Forms]![Последовательно_реализация]![Товар]) AND ((Цена_реализация.Подразделение)=[Forms]![Последовательно_реализация]![Подразделение] Or (Цена_реализация.Подразделение) Is Null))
ORDER BY Цена_реализация.Контрагент DESC;
--------------------------
Запрос уже изменил, как и сказал Владимир Саныч. Теперь вроде все нормально выдергивается и кажись даже можено работать. :)) Но хотелось бы до конца в этом разобраться.
P.S.
Народ, а как теги вставлять нормально?
...
Рейтинг: 0 / 0
12.07.2003, 18:06
    #32206384
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подстановка цен из справочника...
> Но где гарантия, что первой будет именно не пустое поле? Если только задать сортировку по убыванию и тянуть, как и сказал Лох, TOP1

А я как раз и предложил сортировку по убыванию - см. мой пост от вчера, 15:57. Читать надо внимательнее. :^)

Что касается TOP 1, то это важно только в смысле количества данных, пересылаемых с сервера, а так и без этого все будет работать.

> Народ, а как теги вставлять нормально?

Над окошечком для написания поста есть кнопки, которые вставляют правильные теги.
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Подстановка цен из справочника... / 25 сообщений из 30, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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