Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Access
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.05.2012, 15:11   #1
Keiju
Пользователь
 
Регистрация: 13.07.2011
Сообщений: 18
По умолчанию Подстановка значения из таблицы в таблицу.

Здраствуйте, помогите пожалуйста. Как подтянуть значения "марка и "год" из таблицы машины в таблицу аренда при вводе номера машины. (своеобразный "vlookup" )
Вложения
Тип файла: rar vaz1.rar (17.2 Кб, 38 просмотров)
Keiju вне форума Ответить с цитированием
Старый 24.05.2012, 19:57   #2
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Здравствуйте Keiju.
"..подтянуть значения .. из таблицы .. в таблицу.."
позвольте дать Вам пару советов:
1. таблицы БД (баз данных) предназначены для хранения данных для "подтягивания",
ввода, редактирования, удаления необходимо использовать использовать интерфейс - в MS Access это форма.
2. "марка и "год" в таблице аренда не нужны это избыточные данные,
в ней нужен только ключ (идентификатор) указывающий на запись в таблице Машины,
в которой уже хранится соответствующая информация ("марка и "год").

к сведению: гос.номер автомобиля не лучший идентификатор записи (точнее никакой),
т.к. сегодня по правилам при продаже владелец в праве оставить за собой номер и "повесить" его после перерегистрации на другой свой автомобиль,
любой автомобиль может быть перерегистрирован и получить другой гос.номер, следовательно уникальность может быть потеряна - что не допустимо.
И потому стоит обращаться с "более твёрдой валютой", например VIN код автомобиля или его внутренний-гаражный номер в автопредприятии.

Успехов Вам.
Евгений.
Teslenko_EA вне форума Ответить с цитированием
Старый 25.05.2012, 10:18   #3
Rom1k06
Форумчанин
 
Регистрация: 30.07.2008
Сообщений: 125
По умолчанию

Немного не понятна сама задача.
и ее цель.... какой конечный езультат должен получится.
1 - создайте запрос.
2 - постройте схему данных.
3 - создайте форму.
Rom1k06 вне форума Ответить с цитированием
Старый 12.06.2012, 16:36   #4
Keiju
Пользователь
 
Регистрация: 13.07.2011
Сообщений: 18
Печаль

Спасибо, немножко почитал вроде кое, что стал понимать. Нашёл пример с которого практически всё и слизал. Правда пример оказался с ошибкой по этому у меня к Вам сразу два вопроса, надеюсь поможете

отсюда слизал пример с "библиотекой"

1) Какую функцию нужно добавить в запросе "Выставить счёт" в поле "начало" "условие отбора или" , если нужно получить все заказы "начало аренды + 25 дней> сегодняшнего дня"? Догадываюсь, что DATE , но какая?
2) И самая главная проблема!! Как сделать запрос, что бы просмотреть товар на складе?? В "библиотеке" сделана ошибка, а кроме как скопировать на большое моих знаний не хватает. Из всех идей пришедших в голову одна кажется более менее - выбрать из всех товаров те, которые не в "аренде".

Очень прошу помочь, со вторым особенно.
Вложения
Тип файла: rar Uusi WinRAR archive.rar (28.5 Кб, 51 просмотров)
Keiju вне форума Ответить с цитированием
Старый 12.06.2012, 17:37   #5
aaaaa52
Пользователь
 
Регистрация: 06.06.2012
Сообщений: 22
По умолчанию

1) для того чтобы можно было вычислить разницу между днями используется функция DateDiff("d",отнимаемая дата,Date())параметры "d","m","yyyy" день месяц год соответсвенно, Date() или now() функция возвращает текущую системную дату
то есть условие будет ((DateDiff("d",[КтоБрал?].Начало,Date()))<=25))
конструкция запроса на выборку будет следующей
PHP код:
SELECT Товар.*, [КтоБрал?].Конец, [КтоБрал?].счёт, [КтоБрал?].Начало, [КтоБрал?].счётDateDiff("d",[КтоБрал?].Начало,Date()) AS DD
FROM Товар INNER JOIN 
[КтоБрал?] ON Товар.КодТовара = [КтоБрал?].КодТовара
WHERE 
((([КтоБрал?].КонецIs Not Null) AND (([КтоБрал?].счётIs Null) AND ((DateDiff("d",[КтоБрал?].Начало,Date()))>=25)) OR ((([КтоБрал?].счётIs Null)); 
2) условие выборки будет: товар.местонахождение="на складе"
или нужно добавить поле с пометкой, на складе товар или нет, и делать выборку по этому полю
ну или да, логически, то товар не в аренде будет на складе, так тоже можно

Последний раз редактировалось aaaaa52; 12.06.2012 в 17:53.
aaaaa52 вне форума Ответить с цитированием
Старый 13.06.2012, 10:31   #6
Keiju
Пользователь
 
Регистрация: 13.07.2011
Сообщений: 18
По умолчанию

Спасибо! С первым разобрался, со вторым идею тоже такую рассматривал, но вот как сделать не знаю.
Keiju вне форума Ответить с цитированием
Старый 13.06.2012, 13:16   #7
aaaaa52
Пользователь
 
Регистрация: 06.06.2012
Сообщений: 22
По умолчанию

а в чем проблема сделать условие "конец аренды"<now()
это выборка для не в аренде
aaaaa52 вне форума Ответить с цитированием
Старый 18.06.2012, 14:09   #8
Keiju
Пользователь
 
Регистрация: 13.07.2011
Сообщений: 18
По умолчанию

Помогите пожалуйста создать запрос для "машины в гараже".

Главная проблема заключается в том, что в запрос лезут все события из таблицы "ктовзял", а мне нужно что бы рассматривался только последний случай с каждой машиной.

Если не трудно то напишите подробней как и что,так как это первая "моя" база. Обещаю если получу эту работу то переведу денюжки на пиво
Вложения
Тип файла: zip nachalo22.zip (38.2 Кб, 36 просмотров)
Keiju вне форума Ответить с цитированием
Старый 18.06.2012, 19:45   #9
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Здравствуйте Keiju.
"машины в гараже" может отобразить подобная конструкция:
Код:
SELECT Товар.КодТовара, Товар.[Имя товара], Товар.группа, Товар.год
FROM (Товар LEFT JOIN (
SELECT Max(КодТовара) AS F
FROM [КтоБрал?]
WHERE [Начало] Is Not Null AND Конец Is Not Null
) AS T ON Товар.КодТовара = T.F) LEFT JOIN [КтоБрал?] ON Товар.КодТовара = [КтоБрал?].КодТовара
GROUP BY Товар.КодТовара, Товар.[Имя товара], Товар.группа, Товар.год, T.F, Товар.КодТовара, [КтоБрал?].КодТовара
HAVING (T.F Is Not Null) OR [КтоБрал?].КодТовара Is Null
в конструкции используются три источника:
1. Товар - базовая таблица
2. таблица [КтоБрал?] связанная с базовой Товар все > ... - для отображения записей в базовой не связанных с [КтоБрал?]
3. запрос (выделен цветом) так-же связан с базовой Товар все > ... - отображающий идентификаторы записей соответствующих завершенным заказам.
в итоге отображаются все записи базовой таблицы:
идентификаторов которых нет в [КтоБрал?] - никогда не использовался
или идентификаторы в [КтоБрал?] соответствуют только записям завершенных заказов.

Евгений.
Teslenko_EA вне форума Ответить с цитированием
Старый 19.06.2012, 14:01   #10
Keiju
Пользователь
 
Регистрация: 13.07.2011
Сообщений: 18
По умолчанию

Евгений, при данном раскладе я получу "машинывгараже" ВСЕ машины которые хоть раз были в аренде даже если они на данный момент в аренде. Тоесть условие нужно как-то изменить, на рассмотреть все последние записи каждой машины если в последней записи "конец" (Is null) тогда не брать.
Помогите ещё раз пожалуйста, а то с моим знание я как 5-летний ребёнок, который знает буквы, а соединить их не может.
Keiju вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск значений, подстановка в другую таблицу. ukrnarkotik Microsoft Office Excel 5 08.02.2013 17:26
подстановка данных в формулу и запись расчета в таблицу Eve555 Microsoft Office Excel 5 19.01.2012 16:44
MS Access. Подстановка в таблицу sVasilich Microsoft Office Access 12 03.03.2010 22:35
Автоматическая подстановка значения. Baloo007 Microsoft Office Excel 2 08.07.2009 10:37
Подстановка значений в таблицу по условию mchip Microsoft Office Access 15 01.07.2008 09:54