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

Форум: MS ACCESS

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

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

 
 

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

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

тема: помогите с формой( повторяющиеся данные)
 
 автор: nedvedav   (31.03.2011 в 22:39)   личное сообщение
 
 

Здравствуйте! Помогите пожалуйста. Такое дело. у меня база данных авто рынок. Есть форма сделка, в ней выбирается имя покупателя, имя продавца и модель авто. Нужно сделать так, чтобы в поле модель при выборе уже проданной машины, выдавал соответствующее сообщение. Я в этом деле чайник, прошу помочь.

  Ответить  
 
 автор: kot_k_k   (01.04.2011 в 09:57)   личное сообщение
 
 

базу в студию (или кусок)
а так вариантов 10 мона придумать

  Ответить  
 
 автор: Дядя Федор   (01.04.2011 в 12:42)   личное сообщение
 
 

надо полагать, что в базе есть кроме модели VIN и логическое поле типа bflagprodano .
или непустое поле даты продажи
или непустое поле покупателя и т.п.
Проверяйте соотв. поле и выдавайте сообщение
msgbox "Продано!"
а вообще в запросе-источнике можно исключить уже проданные машины. Тогда их и выбрать нельзя будет.
А то, право же, одной модели недостаточно. Может у вас десяток мерседесов. Только по VIN+поле.

  Ответить  
 
 автор: Explorer   (01.04.2011 в 12:57)   личное сообщение
 
 

курсовик ИМХО

  Ответить  
 
 автор: Гоблин   (01.04.2011 в 18:06)   личное сообщение
 
 

Странная задача. Может не модель продана, а какой-то номер ее. Модель "Мерседес-LS460" на складе 4 штуки. 1 продан 3 осталось. Но продать их будет невозможно, так как при выборе данной модели, будет выходить "продано". Может номер двигателя вбивать? Но не модель.

  Ответить  
 
 автор: Гоблин   (01.04.2011 в 21:45)   личное сообщение
15 Кб.
 
 

Вот. Попробуй в этом направлении поработать. =>
Что-то другого придумать никак. Но должны быть некие стандартные решения. Там если уж все продали, то и предложить нечего, ни то что сообщения какие слать.

  Ответить  
 
 автор: nedvedav   (01.04.2011 в 23:03)   личное сообщение
 
 

http://zalil.ru/30782693 - пример базы

  Ответить  
 
 автор: kot_k_k   (02.04.2011 в 10:28)   личное сообщение
 
 

SELECT Сделка.* FROM Автосостав INNER JOIN Сделка ON Автосостав.id=Сделка.id_Авто WHERE (((Автосостав.продажа)=False));

вот источник запроса должен быть таким

и както связь один ко мнегим не имеет смысла т.к. продать больше 1-го раза тачку не получится (разве что возврат но тут нужно отдельно заморачиваться)

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

http://zalil.ru/30783965 - beta2.2 с резюме.
А вообще все не так. Там текстовый файл с 16 пунктами и это далеко не все. Почитай, пересмотри структуру.
Согласен с котом.

  Ответить  
 
 автор: nedvedav   (02.04.2011 в 23:07)   личное сообщение
 
 

это моя курсовая. я ее делал беря пример из разных баз. поэтому и иакрос 2 присутствует. Я немного ошибся, отправил не последнюю версию. Там я запросы на мин и макс цены исправил. Марка была изначально в автосоставе, потом я заменил ее на модель id.
1. id таблы прдавец связан с id_Владелец таблы Автосостав. Это одно и то же?
да, это одно и тоже.
2. id изготовитель таблы Изготовитель связан с таблой автосостав к чему?
там просто в автосоставе есть id изготовителя.
3, 4. исправлено.
5. Слабо уверен в том, что все эти запросы нужны в принципе. эти запросы нужны для задания, просто мозгов не хватает, поэтому они похожие и нужны для количества....
6. согласен неподумал
7, исправлю
8. исправил,
9. Макрос2 убрал. К чему он тут лишний такой? он нужен был для формы ПТС
формы тоже для кол-ва
13. там я пытался сделать так что-бы проданная машина отмечалась и в сделке не выбиралась
14. В таблице автосостав дата прихода есть, модель и прочее есть, а сколько пришло - ХЗ. Добавил поле наличие. Вообще тут начинается хрень. Модель и
ее характеристики в отдельной табле. А от нее в отдельную даты прихода, сколько пришло и пришло, от кого пришло. Затем уже от этого плясать продажами.
Ну тут ладно, натянул как попало. Хотя не правильно все это по структуре. Как мне каа-аца.
15. Остаток машин натянул через данный интерфейс кое как. Вроде работает, но не тестировал как следует. Для этого добавил 2 запроса "Всего моделей"
и "Всего продано" эти 2 не особо правильно работают, там не количество показывает, у меня нет нигде 25 машин....
16. Все не так. Интерфейс и прочее делал бы все иначе. (Но это на мой взбляд) :))
я же сказал, что я новичок, оч слабо знаю бд, нашел в нете 2 базы, на основе них сделал свою, разобрал ихнюю структуру и себе в базу, это только для задания...

  Ответить  
 
 автор: Гоблин   (03.04.2011 в 09:36)   личное сообщение
 
 

Ну по поводу 15 пункта. Я же сам туда и всадил разное количество машин, что бы было что продавать. В общем смотри внимательнее. Если модель продана, то и в выпадающем списке ее не будет. И логического поля не надо. Макрос 2 убран, да и макрос 1 тоже не очень нужен.
В общем внимательнее посмотри переделки. Там работы не много осталось.

  Ответить  
 
 автор: nedvedav   (03.04.2011 в 13:37)   личное сообщение
 
 

Спасибо большое за помощь.
Вы там добавили поле наличие, но, у меня сделано чуть не так, у каждой машины есть свой вин код, №шасси и т.д. одинаковых нет. Если только сделать еще одну таблицу, или запрос, в котором будет только марка, модель, тогда да, можно там прописать кол-во, а так как сейчас так не подходит.

  Ответить  
 
 автор: Гоблин   (03.04.2011 в 15:06)   личное сообщение
 
 

Понятно. Таких мелочей не знаю. Если повторений быть не может, то нужно плясать от группового запроса, сколько в наличии count. Оставить логическое поле "продано" и ставить отметку запросом на обновление в строке, когда продано.
Как-то так.

  Ответить  
 
 автор: Гоблин   (03.04.2011 в 15:06)   личное сообщение
 
 

Понятно. Таких мелочей не знаю. Если повторений быть не может, то нужно плясать от группового запроса, сколько в наличии count. Оставить логическое поле "продано" и ставить отметку запросом на обновление в строке, когда продано.
Как-то так.

  Ответить  
 
 автор: nedvedav   (03.04.2011 в 19:14)   личное сообщение
 
 

а как это сделать, можно пожалуйста поподробнее.

  Ответить  
 
 автор: Гоблин   (03.04.2011 в 21:21)   личное сообщение
 
 

http://zalil.ru/30791707
Изобразил нечто. Но это подгонка под то, что уже есть. Вроде работает и без отметки на продажу, поскольку везде фигурирует id и наличие.
Если ставить галку, то, допустим, если выбрали модель, при этом запустили запрос на обновление, потом чел передумал, ввели другую модель, то надо делать отмену продажи, что бы та, что была введена вначале, отменилась. Этом можно сделать кнопкой отмена, возврат и т.д. В крайнем случае, при удалении записи, автоматически должна возвращаться и модель.
В общем сделал без этого запроса. Он лишний будет. В крайнем случае
UPDATE Автосостав SET Автосостав.продажа = Yes
WHERE (((Автосостав.id)=[forms]![Сделка]![ПолеСоСписком16]));

  Ответить  
 
 автор: nedvedav   (03.04.2011 в 21:53)   личное сообщение
 
 

спасибо большое. Последняя просьба, в этой сделке-покупке форме есть просмотреть отчет, отчет выводится не тот, т.е. если я создаю новую сделку, то отчет выводится весь, т.е. с первой покупки, надо пролистывать до нужного. Как это сделать? Спасибо

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

Отчет не смотрел. Однако тут сделать ничего сложного нет. Если отчет открывается с формы "Сделка", то его источником сделай запрос, где будет фигурировать таблица Сделка. Далее на id сделки поставь условие Forms!Сделка!Полеid где отображается id этой самой таблицы. Кстати поле само можно на экран не выводить. И будет счастье.
В общем вот http://zalil.ru/30792421

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

http://zalil.ru/30792421

  Ответить  
 
 автор: nedvedav   (04.04.2011 в 22:25)   личное сообщение
 
 

спасибо большушее

  Ответить  
 
 автор: nedvedav   (07.04.2011 в 00:35)   личное сообщение
 
 

Здравствуйте! У меня к вам последняя просьба. Начал уже делать курсовую, оформлять и столкнулся с такой проблемой, в форме сделка вы мне помогли сделать выбор остатка машин, но еще такая ерунда, машина привязана к владельцу, и необходимо сделать так, что бы при выборе продавца-владельца список авто сокращался до того, который закреплен за продавцем. Как это сделать, подскажите пожалуйста, если это вообще возможно. Еще раз прошу прощения за беспокойство, заранее благодарю.

  Ответить  
 
 автор: kot_k_k   (07.04.2011 в 08:58)   личное сообщение
 
 

при получении фокуса полем выбора машин -ставим обработчик
который при наличии продавца добавляет в Recordsourse поля_авто строчку типа "Where владелец=" & Me.Поле_Владелец
как-то так

  Ответить  
 
 автор: Гоблин   (07.04.2011 в 18:32)   личное сообщение
 
 

Ну а вообще. глянул схему. Авто закреплены за продавцами. Есть связь продавец - авто. Стало быть любой запрос покажет за кем что. Далее связь Авто - сделка по id авто. Стало быть запрос с таблицами продавец - авто - сделка покажет проданные авто и соответствующего продавца. То бишь сколько дохода принес каждый продавец, а дата покажет за какой период. Подмазав сюда покупателя, можно посмотреть какой продавец продал сколько машин какому хмырю. Отсюда вывод - связь продавец - сделка лишняя. (А вдруг продавец сменит фамилию?) но на время сделки он же был под каким-то именем? Ну а если уволится и на его место пришел другой? - тогда все подвиги и грехи плавно перейдут на нового. Долг тоже переходит по наследству. А если удалить с базы - тогда все проданное уйдет в небытие, и существующее тоже.
Вывод: связывать продавец - авто нельзя. Надо по принципу покупатель +авто=сделка. Также и назначать авто продавцам.

Вариан 2 При выборе продавца в поле, обновлять данные в поле выбора техники. А в источинке строк для полясосписком выбора моделей, указать условие, где будет фигурировать поле выбора продавца. Т.Е. Выбрав продавца, будем видеть только тот остаток машин, который есть у данного продавца. Отсюда вывод, при выборе машины - не ошибись в продавце.


Во замутил

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