N; hrwertdatenbank - Основи доступу

У світі існує багато об’єктів, якими можна керувати в базі даних, крім звичайних адрес та даних клієнтів. У пошуках менш тривіального вмісту ми натрапили на дані про харчові продукти та їх харчові цінності - можливо, цікава тема в часи зростаючої невизначеності щодо харчування. Результат - програма з додатковим управлінням рецептами та калькулятором калорій.

Зразок бази даних

Приклади цієї статті можна знайти в базі даних 1609_Naehrwerte.accdb

Факти про їжу та харчування

В Інтернеті можна знайти численні збірники даних про харчові продукти та їх харчові цінності. Однак якість цих даних дуже неоднорідна. В одному випадку обсяг занадто малий, в іншому вміст частково неправильний. Однак проблема з форматами даних є більшою. Ви можете знайти таблиці в тексті або CSV-Формат, як файли Excel або навіть як Дамп SQL Postgres. Це тягне за собою перетворення в Access, яке, як правило, пов'язане з подальшою обробкою. Але навіть якщо ви знайдете оригінальну базу даних Access для завантаження, у вас часто виникають проблеми.

Хорошим прикладом є регулярно оновлювана база даних Міністерства сільського господарства США (Посилання), яка також доступна у форматі ACCDB. Ця база даних із приблизно 9000 записами даних не залишає бажати кращого щодо повноти. Тим часом їхня номенклатура повністю англійська, а модель даних із 13 таблиць настільки розгалужена, що використання її для простої бази даних про харчові продукти практично неможливе.

Коротше кажучи: наша таблиця поживних речовин отримана з кількох джерел, які, нарешті, були отримані шляхом перетворення та додавання та оновлення запитів. Ми утримуємось від опису процедури тут. Результат - пул даних із приблизно 12000 записами даних, кожен з яких містить 48 ключових цифр. Висока кількість пов’язана з тим, що до списку входять не лише елементарні продукти харчування, а й складні продукти, такі як Горщик з сирним супом Allgäu або Свинячий язик з соусом з білого вина, Отже, в основному готові рецепти.

Модель даних

Це не може бути простіше: харчові дані містяться в одній таблиці tblNaehrwerte, який можна знайти праворуч на малюнку 1. Посвідчення особи коли Вартість автомобіля представляє первинний ключ таблиці, поле їжа його назва. Він також має унікальний індекс для запобігання дублювання. Далі слідують 48 полів для всіх можливих ключових цифр, таких як заробітна плата Кальцій, жиру, або амінокислоти. Усі ці числові поля - як Подвійний Визначаються. Дизайн таблиці показаний на малюнку 2. З’єднані з харчовим столом tblrecipes і tblrecipesingredients. У першому створені рецепти записуються за назвою, а передбачуваний - у рецепті Порції-Вказана сума. Другий посилає рецепти та продукти n: м. Тому рецепт може містити кілька продуктів, їх кількість у таблиці посилань як Подвійний-Кількість ваги вказана в грамах.

основи

Зображення 1: tblNaehrwerte у проекті

Рисунок 2: Досить проста модель даних бази даних про харчування

Під час виконання таблиця поживних речовин виглядає як аркуш даних, як на малюнку 3. Ви можете відфільтрувати та відсортувати її відповідно до своїх критеріїв, використовуючи стрілки фільтру в заголовках стовпців. Сортувати за спаданням білка, визначити продукти з найбільшим вмістом білка.

Рисунок 3: Ось як частина 50 полів основної таблиці tblNaehrwerte представлена ​​у поданні паспорта

Однак багато полів, які вимагають горизонтальної прокрутки, є дуже недоцільними, тому дані про продукт харчування ніколи не можна побачити з одного погляду, навіть на великому моніторі. Тут потрібно заповнити форму з полями деталей!

Харчова форма

Завдяки 12000 записів даних пошук їжі насправді здійсненний лише за допомогою функції пошуку. Ось чому ми оснащуємо нашу форму одним. На малюнку 4 показана структура. Текстове поле для введення пошукового терміну знаходиться вгорі праворуч. Відразу після кожного натискання клавіш список продуктів повинен з’являтися у підформі ліворуч sfrmList постійно оновлювати. Для цієї підформи на основі форми sfrmfood це проста форма у поданні паспорта, яка взята з таблиці tblNaehrwerte лише перелічує назви продуктів через цей запит:

Зображення 4: Проект харчової форми містить дві підформи

Якщо натиснути на їжу в цьому списку, то в підформі sfrmDetail його дані з’являються праворуч. Тут використана форма sfrmNahrmittel_E прямо на столі tblNaehrwerte пов'язаний і виглядає так, як на малюнку, як на малюнку 5. Основна форма сама, зауважте, не пов'язана з походженням даних! Це означає, що будь-які польові зв'язки між основною та підформами більше не потрібні.

Зображення 5: Детальна підформа sfrmNahrmittel_E у проекті

Завдання підпрограм VBA форми - це, з одного боку, фільтрувати базу даних через поле пошуку, а з іншого - створити активний зв’язок між підформою списку ліворуч та підформою деталей справа. В процесі роботи це виглядає приблизно так, як показано на малюнку 6. Пошуковий термін тут був Пшеничний хліб увійшов. Як видно зі списку ліворуч, база даних фільтрується не на початок терміну, а за змістом, тобто ПОДІБНО ДО. Отже, вони теж пірнають Хліб з хлібцями з пшениці в результаті. Але це було позначено Хліб білий хлібно-пшеничний, деталі яких, отже, з’являються праворуч у формі.

Фото 6: Ось як виглядає харчова форма в дії

Насправді є лише 32 із 48 полів. Це найбільш відповідні параметри. Решта з них більш академічні за характером, і їх не враховують через брак місця. Ви можете додати їх самі, якщо хочете.

Чи хотіли б Ви продовжувати читати? Тоді купіть свій квиток!
Ви можете замовити річну передплату на журнал тут Доступ [основи]:
Для замовлення .
Потім негайно підніміть всього близько 400 найменувань нашої пропозиції - включаючи цю!
Або ви вже маєте дані доступу? Тоді увійдіть тут:

Залиште коментар скасувати відповідь

Ви повинні увійти в систему, щоб залишити коментар.