MS Access (сопоставление полей из 2-ух таблицы)

Рейтинг: 0Ответов: 0Опубликовано: 04.08.2023

Есть 3 таблицы:

  1. Measles_vaccine (с 3 полями) (Таблица хранит в себе статические данные и является справочником) (ИД, серийный номер вакцины, дата срок годности вакцины)

      id 
      measles_sn_vaccine
      measles_expire_date
    
  2. Сертефикаты (с кучей полей, вот ключевых из них)

      id 
      ID_пациента 
      Vкори
      V_measles_sn_vaccine 
      V_measles_dose_vaccine
      reVкори
      reV_measles_sn_vaccine
      reV_measles_dose_vaccine
      Врач
    
  3. Пациенты (с кучей полей, вот ключевые из них)

      ID_пациента 
      Фамилия
      Имя
      Отчество
      Дата Рождения
    

поля V_measles_sn_vaccine | reV_measles_sn_vaccine из таблицы Serteficate заполняются через форму, данные в берутся из таблицы Measles_vaccine поля measles_sn_vaccine.

Так выглядит запрос отчета, при его запуске, мы вводим № карты пациента, и формируется отчет с его данными, включая данные из поля сертефикат.

SELECT Сертификаты.Код, 
       Сертификаты.ID_пациента, 
       [Фамилия] & " " & [Имя] & " " & [Отчество] AS fio, 
       Сертификаты.Врач, 
       Пациенты.ДатаРождения,
       Сертификаты.Vкори, 
       Сертификаты.V_measles_dose_vaccine, 
       Сертификаты.V_measles_SN_vaccine, 
       Сертификаты.reVкори, 
       Сертификаты.reV_measles_dose_vaccine, 
       Сертификаты.reV_measles_SN_vaccine, 
       Measles_vaccine.measles_expire_date
FROM (     Пациенты 
INNER JOIN Сертификаты ON Пациенты.ID_пациента = Сертификаты.[ID_пациента]
      ) 
INNER JOIN Measles_vaccine ON Сертификаты.V_measles_SN_vaccine = Measles_vaccine.measles_SN_vaccine
WHERE (((Сертификаты.ID_пациента)=[Укажите № Карты]));

Все формируется отлично, но осталась последняя задача, которую я ума не приложу как можно решить: Мне нужно чтобы в отчете напротив значений поля V_measles_sn_vaccine и reV_measles_sn_vaccine, проставлялся срок годности из поля: measles_expire_date, т.е. простыми словами. Нужно чтобы в отчет-справке происходило сравнения значений полей из таблицы Сертификаты со справочником таблицы Measles_vaccine и по результатам успешного совпадения бралось значение из поля measles_expire_date и выводилось в форме.

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

Прикрепляю образец отчет-справки. введите сюда описание изображения

Ответы

Ответов пока нет.