Есть ли эффект V-lookup в Microsoft Access? - PullRequest
0 голосов
/ 28 февраля 2019

Я начинающий самоучка Microsoft Access.

У меня есть база данных MS Access с таблицей студентов (Таблица1).

Таблица1

+----+-----------+----------+------------+------------+
| id | firstname | lastname | Year_Group | Form_Group |
+----+-----------+----------+------------+------------+
|  2 | mnb       | nbgfv    |          7 |          1 |
|  3 | jhg       | uhgf     |          8 |          2 |
|  4 | poi       | ijuy     |          9 |          2 |
|  5 | tgf       | tgfd     |         10 |          2 |
|  6 | wer       | qwes     |         11 |          2 |
+----+-----------+----------+------------+------------+

Каждый день в студенческих днях записывается вроде таблицы 2.

Таблица2

+----------+----+-----------+----------+------------+--------+-----------+----------+
|   Date   | id | firstname | lastname | Year_Group | Effort | Behaviour | Homework |
+----------+----+-----------+----------+------------+--------+-----------+----------+
| 28/02/19 |  2 | mnb       | nbgfv    |          7 | Good   | Good      | Y        |
| 28/02/19 |  3 | jhg       | uhgf     |          8 | OK     | OK        | Y        |
| 28/02/19 |  4 | poi       | ijuy     |          9 | Bad    | Bad       | N        |
| 01/03/19 |  5 | tgf       | tgfd     |         10 | Good   | OK        | Y        |
| 01/03/19 |  6 | wer       | qwes     |         11 | Good   | Good      | Y        |
+----------+----+-----------+----------+------------+--------+-----------+----------+

Есть ли способ (при использовании списка илиполе со списком), чтобы выбрать ученика из Таблицы 1, чтобы его информация использовалась для соответствующих столбцов в Таблице 2?

Или есть более эффективный способ сделать это?

1 Ответ

0 голосов
/ 28 февраля 2019

Во-первых, вы должны нормализовать ваши данные .

В настоящее время вы повторяете данные firstname, lastname и Year_Group в двухотдельные таблицы, которые не только раздувают вашу базу данных, но и означают, что такие данные должны храниться в двух разных местах, что может привести к несоответствиям и затем к неопределенности относительно того, кто является хозяином.

Вместо этого я бы предложилВаша таблица Students должна содержать всю информацию, касающуюся характеристик учащегося:

Учащиеся

+----+-----------+----------+------------+------------+
| id | firstname | lastname | Year_Group | Form_Group |
+----+-----------+----------+------------+------------+
|  2 | mnb       | nbgfv    |          7 |          1 |
|  3 | jhg       | uhgf     |          8 |          2 |
|  4 | poi       | ijuy     |          9 |          2 |
|  5 | tgf       | tgfd     |         10 |          2 |
|  6 | wer       | qwes     |         11 |          2 |
+----+-----------+----------+------------+------------+

И информация, относящаяся к каждому учебному дню, должна содержать только ссылкиидентификатор студента в таблице Students:

SchoolDays

+----------+----+--------+-----------+----------+
|   Date   | id | Effort | Behaviour | Homework |
+----------+----+--------+-----------+----------+
| 28/02/19 |  2 | Good   | Good      | Y        |
| 28/02/19 |  3 | OK     | OK        | Y        |
| 28/02/19 |  4 | Bad    | Bad       | N        |
| 01/03/19 |  5 | Good   | OK        | Y        |
| 01/03/19 |  6 | Good   | Good      | Y        |
+----------+----+--------+-----------+----------+

Затем, если вы хотите отобразить данные целиком, вы должны использовать запроскоторая объединяет две таблицы, например:

select  
    t2.date,
    t1.firstname,
    t1.lastname, 
    t1.year_group, 
    t2.effort, 
    t2.behaviour, 
    t2.homework
from 
    students t1 inner join schooldays t2 on t1.id = t2.id
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...