Прежде всего, пожалуйста, будьте терпеливы. У меня нет опыта работы с базами данных, и мне было поручено вводить некоторые данные в доступе, и это чрезвычайно утомительно, поэтому я начал кодировать кнопки, чтобы облегчить себе жизнь.
Я хочу вставить строку в МОДЕЛИ FINLDATA с FINLDATA_ID и MODEL из формы (F_EDIT_ENTRIES_MODEL_SUB), где MODEL не существует.
FINLDATA - что заполняет верхнюю часть формы
МОДЕЛИ FINLDATA — заполняет подформу (где указано время)
Для каждого ВАРИАНТА мы назначаем БАЗОВОЕ ВРЕМЯ для текущих МОДЕЛЕЙ. Традиционно человек до меня копировал и вставлял времена в форме (смешно). Я закодировал кнопку для обновления времени для ВСЕХ моделей, однако это не работает, если у модели нет предыдущей записи для этого идентификатора. Форма имеет список всех моделей, которые в настоящее время находятся в T_MODEL_LIST. Во многих случаях модели не привязаны ко времени для процесса, поскольку в FINLDATA MODELS нет записи.
Каждый процесс для данной опции имеет уникальный FINLDATA_ID, этот FINLDATA_ID одинаков для всех моделей. FINLDATA MODELS — это время, которое мы обновляем. Каждая запись имеет свой уникальный FINLDATA_MODEL_ID для каждой модели (см. T_MODEL_LIST). FINLDATA_MODEL_ID — это просто число, которое считается вверх, например. если бы я добавил время в форму к модели, у которой раньше не было времени для этого процесса, это было бы общее количество записей в МОДЕЛЯХ FINLDATA +1.
Я хочу закодировать еще одну кнопку, которая добавляет запись в FINLDATA MODELS для каждой модели без учета времени.
Логика будет примерно такой:
ВСТАВИТЬ в МОДЕЛИ FINLDATA ИДЕНТИФИКАТОР FINLDATA из ФОРМЫ (Me.FINLDATA_ID.Value) и МОДЕЛЬ из T_MODEL_LIST, если он еще не присутствует в МОДЕЛЯХ FINLDATA.
Например. Для конкретного FINLDATA_ID, если MODEL из T_MODEL_LIST не существует в FINLDATA MODELS. ВСТАВЬТЕ в МОДЕЛИ FINLDATA (FINLDATA_ID, МОДЕЛИ, КОТОРЫЕ НЕ ИМЕЮТ ЗАПИСЕЙ)
Надеюсь, это прояснит ситуацию. Подформа перечисляет все модели слева, это заполняется T_MODEL_LIST, если это помогает.
SQL для запроса, который заполняет список моделей в подчиненной форме
ВЫБЕРИТЕ T_MODELS_LIST.MODEL AS MASTER_MODEL, T_MODELS_LIST.MODEL_NAME, models.FINLDATA_MODEL_ID, models.FINLDATA_ID, models.MODEL, models.[BASE TIME], models.VERIFICATION, models.COMMENTS, models.[ВРЕМЯ УСТАНОВКИ], models.STATION
FROM T_MODELS_LIST LEFT JOIN (SELECT * FROM [FINLDATA MODELS] WHERE FINLDATA_ID = Forms![F_EDIT_ENTRIES]![FINLDATA_ID]) КАК модели ON T_MODELS_LIST.MODEL = models.MODEL
ГДЕ (((T_MODELS_LIST.REMOVED)=Нет)) ORDER BY T_MODELS_LIST.MODEL;
Спасибо всем.
INSERT INTO ... VALUES
с предложениемWHERE
.INSERT INTO ... VALUES
вставляет только одну строку. Похоже, вам нужен запросUPDATE
илиINSERT INTO ... SELECT
, но с вашим текущим описанием я не уверен на 100%, что вы хотите. Можете ли вы добавить образцы данных для обеих таблиц, входные данные в этой форме и ожидаемый результат на основе этих входных данных? - person Erik A   schedule 08.06.2018