Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.79/19: Рейтинг темы: голосов - 19, средняя оценка - 4.79
1 / 1 / 0
Регистрация: 08.11.2018
Сообщений: 25

Работа формы с двумя таблицами

12.11.2018, 21:03. Показов 4121. Ответов 33
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Мне нужно создать форму, которая будет заполнять таблицу "Прокат", с использованием данных из таблицы "Цены".
Моя проблема заключается в том, что я не могу связать дату и время оформления заказа (из таблицы "Прокат") с датой установки цены (из таблицы "Цены"), не меняя структуры таблиц (а структуру менять нельзя). Их связь нужна для того, чтобы поле "ДатаВремя", ориентируясь на данные из таблицы "Цены", подставляло актуальные на момент введенной даты и времени цены.
Миниатюры
Работа формы с двумя таблицами   Работа формы с двумя таблицами   Работа формы с двумя таблицами  

Вложения
Тип файла: rar Prokat_22.rar (28.6 Кб, 13 просмотров)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.11.2018, 21:03
Ответы с готовыми решениями:

Связь формы с двумя таблицами
Добрый день, уважаемые Форумчане! Вопрос у меня такой: Есть две таблицы (связаные многие-ко многим). Есть одна форма. В одной...

Работа с двумя списками связанными с разными таблицами
Может кто сможет помочь... На форме находятся два списка: 1. Список районов города - связан с таблицей районов 2. Список улиц...

Работа со связаными таблицами при создании формы
Всем доброго времени суток. У меня такой вот вопрос, делаю форму для заполнения БД, на ней два компанента "Список" один...

33
Эксперт MS Access
26825 / 14505 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
12.11.2018, 21:59
Вот такая функция даст действующую цену проката для любого предмета и любой даты оформления заказа
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
Public Function LastCena(DataProkat, Predmet)
    Dim s
    s = "SELECT Цены.ЦенаПроката, Цены.Предмет " _
    & " FROM Цены INNER JOIN (SELECT MAX(ДатаУстановки) AS mx, Предмет " _
    & " FROM Цены " _
    & " Where ДатаУстановки <= " & Format(DataProkat, "\#mm\/dd\/yyyy\#") _
    & " and Предмет=" & Predmet _
    & " GROUP BY Предмет)  AS z " _
    & " ON (Цены.Предмет=z.Предмет) AND (Цены.ДатаУстановки=z.mx) "
    LastCena = CurrentDb.OpenRecordset(s).Fields(0)
End Function
Где ее применять не знаю, поскольку в присланной БД нет форм, которые Вы показываете на скрине

Например испытываем в Immediate для санок (код 7) и самого начала текущего года
Visual Basic
1
2
?LastCena(#01/01/2018#,7)
 50
Что сходится с Вашими данными
0
Эксперт MS Access
 Аватар для Eugene-LS
12065 / 5848 / 1494
Регистрация: 05.10.2016
Сообщений: 16,436
12.11.2018, 22:08
Цитата Сообщение от ilya2711 Посмотреть сообщение
Мне нужно создать форму, которая будет заполнять таблицу "Прокат", с использованием данных из таблицы "Цены".
Повтор!
Несколько топиков ниже , аналогичная задачка.
Всё уже отвечено.
Повторяю:
Таблица "Прокат" является "чеком" на услуги, и должна нести все основные данные ...
Тип и ПодТип прокатного дивайса, текущую цену проката и т.д.
Это называется "Документирование финансовых операций" (по лёгкому) ...
0
1 / 1 / 0
Регистрация: 08.11.2018
Сообщений: 25
12.11.2018, 22:27  [ТС]
mobile, на этих скринах изображена одна форма, просто на них наглядно изображено действие формы. Обновлённую базу я прикреплю, так как я не знаю, где этот код должен находиться.
Вложения
Тип файла: rar Prokat_22.rar (32.2 Кб, 12 просмотров)
0
Эксперт MS Access
 Аватар для Eugene-LS
12065 / 5848 / 1494
Регистрация: 05.10.2016
Сообщений: 16,436
12.11.2018, 22:35
Цитата Сообщение от ilya2711 Посмотреть сообщение
так как я не знаю, где этот код должен находиться.
Да простит меня ув. mobile, влезу со своими "5 копеек", хоть и не просили.
Ну раз Public Function ...
Предполагается что функция находится во "внешнем" (отдельном) модуле (Название Произвольное) и доступна на всех уровнях приложения, в т.ч. и в выражениях, и даже запросов.
Если спросите, то вам и примеры эксплуатации напишут, если и так не понятно пока.
0
1 / 1 / 0
Регистрация: 08.11.2018
Сообщений: 25
12.11.2018, 22:50  [ТС]
Eugene-LS, Вы меня простите за непонимание, но с Visual Basic я три дня назад только познакомился, потому у меня так много вопросов.
0
Эксперт MS Access
 Аватар для Eugene-LS
12065 / 5848 / 1494
Регистрация: 05.10.2016
Сообщений: 16,436
12.11.2018, 22:55
Цитата Сообщение от ilya2711 Посмотреть сообщение
потому у меня так много вопросов.
И сразу на форум программистов ... (без подготовки)
Уделите часов 30 чтению книжек по теме (+ немного тренировок в коде) - и ответы добрых Форумчан станут вам гораздо понятнее.
Успехов!
0
1 / 1 / 0
Регистрация: 08.11.2018
Сообщений: 25
12.11.2018, 22:58  [ТС]
Eugene-LS, а насчёт предыдущей темы, там я сконцентрировал внимание исключительно на автоматической подстановке, а здесь я задаю вопрос об общей работе формы, без изменения структуры участвующих таблиц. Я бы и рад был бы сделать по-Вашему, но в данном задании это не разрешено.
0
Эксперт MS Access
 Аватар для Eugene-LS
12065 / 5848 / 1494
Регистрация: 05.10.2016
Сообщений: 16,436
12.11.2018, 23:03
Цитата Сообщение от ilya2711 Посмотреть сообщение
Я бы и рад был бы сделать по-Вашему, но в данном задании это не разрешено.
Не проблема, VBA позволяет и "левой ногой правое ухо почесать", раз уж так ситуация сложилась.
Не люблю такого, но решая задачки своих добрых клиентов, иногда сталкиваюсь, ну что поделаешь, неудобно, но решаемо!
0
1 / 1 / 0
Регистрация: 08.11.2018
Сообщений: 25
13.11.2018, 00:06  [ТС]
Eugene-LS, а Вы не подскажете, как действовать в моём случае? Пусть даже и с использованием VBA...
0
Эксперт MS Access
 Аватар для Eugene-LS
12065 / 5848 / 1494
Регистрация: 05.10.2016
Сообщений: 16,436
13.11.2018, 00:22
Цитата Сообщение от ilya2711 Посмотреть сообщение
как действовать в моём случае? Пусть даже и с использованием VBA...
В каком конкретно случае?
С удовольствием подскажу, что знаю, если вопрос будет конкретизирован максимально.
0
1 / 1 / 0
Регистрация: 08.11.2018
Сообщений: 25
13.11.2018, 00:52  [ТС]
Eugene-LS, в базе (приложенной) я создал форму "Прокат", которая содержит поля "ДатаВремя", "ФИО", "ТипДокумента", "ПредметПроката" и "СрокПроката" из таблицы "Прокат", поле "Категория" из таблицы "Категории" и поле "ЦенаПроката" из таблицы "Цены". Какие я должен совершить действия (пошагово, если можно), чтобы добиться нужной функциональности формы (описано в шапке)? Буду очень Вам признателен.
0
Эксперт MS Access
 Аватар для Eugene-LS
12065 / 5848 / 1494
Регистрация: 05.10.2016
Сообщений: 16,436
13.11.2018, 01:09
Цитата Сообщение от ilya2711 Посмотреть сообщение
в базе (приложенной) я создал форму "Прокат", которая содержит поля "ДатаВремя", "ФИО", "ТипДокумента", "ПредметПроката" и "СрокПроката" из таблицы "Прокат", поле "Категория" из таблицы "Категории" и поле "ЦенаПроката" из таблицы "Цены". Какие я должен совершить действия (пошагово, если можно), чтобы добиться нужной функциональности формы (описано в шапке)? Буду очень Вам признателен.
Пример?
Действия примерно понятны.
0
1 / 1 / 0
Регистрация: 08.11.2018
Сообщений: 25
13.11.2018, 01:25  [ТС]
В этой базе в форме "Прокат" я смог только реализовать связь полей "Категория" и "ПредметПроката", а также расчёт итоговой суммы (посредством ввода арифметической операции). Задача такая: после ввода даты оформления заказа (поле "ДатаВремя") и выбора категории и предмета, в поле ЦенаПроката должна появиться цена предмета, действующая на дату оформления заказа.
Не знаю, о чём Вы имели в виду под примером, у меня только база с недоработанной формой.
Вложения
Тип файла: rar Prokat_22.rar (36.6 Кб, 12 просмотров)
0
1 / 1 / 0
Регистрация: 08.11.2018
Сообщений: 25
13.11.2018, 02:06  [ТС]
Eugene-LS, Вы это имели в виду под примером или что?
0
Эксперт MS Access
 Аватар для Eugene-LS
12065 / 5848 / 1494
Регистрация: 05.10.2016
Сообщений: 16,436
13.11.2018, 02:36
Цитата Сообщение от ilya2711 Посмотреть сообщение
Вы это имели в виду под примером или что?
... гляну пример - но результата не обещаю - отпишусь.

Добавлено через 27 минут
ilya2711, а точку входа не подскажете?
Форма пуста ...
Миниатюры
Работа формы с двумя таблицами  
0
1 / 1 / 0
Регистрация: 08.11.2018
Сообщений: 25
13.11.2018, 03:17  [ТС]
Eugene-LS, в том-то и дело, что форма не работает, при этом на доли секунды появляется надпись "Объект Recordset не является обновляемым". Можно зайти только в Конструктор и внести некоторые изменения, а какие, не знаю, но предполагаю только то, что эта ошибка напрямую связана с тем, что я добавил в источник записей две таблицы одновременно ("Прокат" и "Цены"), насчёт третьей таблицы "Категории" не знаю, может, в форме в источнике записей поле "Категория" не нужно, так как есть поле со списком. Но тогда остаются две таблицы, которые я не знаю, как связать, чтобы форма работала.

Добавлено через 5 минут
Eugene-LS, в том-то и дело, что форма не работает, только при открытии на долю секунды показывает надпись "Объект Recordset не является обновляемым". Можно конечно через конструктор в источнике записей что-нибудь изменить, чтобы два поля ДатаВремя и ДатаУстановки были связаны.



Добавлено через 6 минут
И я долго думал, почему сообщение никак не отправляется, оказывается, по некоторой причине страница не обновлялась.
0
Эксперт MS Access
 Аватар для Eugene-LS
12065 / 5848 / 1494
Регистрация: 05.10.2016
Сообщений: 16,436
13.11.2018, 03:26
ilya2711, Это "учебка" (вы не сказали)?
Если "рабочка" - всё (почти всё) переделывать!
От вашего ответа зависит = что дальше ...
Для "учебки" на "троечку" = сойдёт.
Иначе ... смена схемы данных ... с последствиями ...
0
1 / 1 / 0
Регистрация: 08.11.2018
Сообщений: 25
13.11.2018, 03:51  [ТС]
Eugene-LS, это учебное задание...
0
Эксперт MS Access
 Аватар для Eugene-LS
12065 / 5848 / 1494
Регистрация: 05.10.2016
Сообщений: 16,436
13.11.2018, 04:01
Цитата Сообщение от ilya2711 Посмотреть сообщение
это учебное задание...
Спасибо, так добрым форумчанам будет проще решать уже.
Совет: Опубликуйте задание, так вашему преподу удивляться не придётся.
А то местные профи такого напишут ... что препод начнёт задавать неправильные вопросы.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.11.2018, 04:01
Помогаю со студенческими работами здесь

Копирование вложений между двумя таблицами
Доброго времени суток. Возникла проблемка, может, кто подскажет, буду рад. По нажатию кнопки данные из одной таблицы переносятся во...

Две связи между двумя таблицами
Не могу понять,как добавить еще одну связь между таблицами Актеры и СыгранныеРоли,нужно провести связь КодАктера-КодАктера. Или нужно...

Найти разницу между двумя таблицами
Есть две заполненные, почти одинаковые, таблицы(не связаны между собой) и одна пустая. Нужно написать запрос который будет искать будет...

Автозаполнение данных между двумя таблицами
Есть две таблицы (Таблица 1 и Таблица 2). В первой таблице два столбца - Организация и Адрес. Во второй таблице столбец Организация...

Как сделать Subsheet с двумя таблицами
Коллеги, в прикрепленной базе три таблицы. 1) Разделы 2) Подразделы 3) Классы Необходимо сделать иерархическое представление....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru