在microsoft access表中自动生成列

ivqmmu1c  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(294)

如何在microsoft access表中自动生成列/字段?
脚本。。。。。。我有一张表,上面有我员工的个人信息(employdetails),我想把他们每天的出勤情况放在另一张表上。与其每天使用单独的记录,我想使用一个单独的记录作为雇员。。例如:我想创建一个包含如下字段的表:employid、01jan2020、02jan2020、03jan2020、……25may2020等等。。。。。。。这意味着每天我都要自动生成一个列。。。有人能帮我吗?

5ktev3wc

5ktev3wc1#

通常您会手动定义列(无论是通过ui还是sql)。
根据所提供的信息,我认为适当的解决办法是有两张表。
你有你的“employdetails”,你会把他们的一般信息(姓名,联系信息等),关键是员工id(唯一,可以自动生成或手动,只需要是唯一的)
第二个表的“employdetails”中包含employeeid的外键,其中一个列名为date,另一个表名为details(或者在date列idea中尝试捕获的任何内容)。
然后您只需为每天添加行。然后在表之间执行联接查询,以查找员工的所有“天”。这就是所谓的规范化,以及关系数据库(如access)的使用方式。
员工表:

EmpID |  NAME  | CONTACT
----------------------
 1    |  Jim   | 222-2222
 2    |  Jan   | 555-5555

明细表:

DetailID | EmpID (foreign key) | Date     | Hours_worked | Notes
-------------------------------------------------------------
10231    | 1                   | 01Jan2020| 5            | Lazy Jim took off early
10233    | 2                   | 02Jan2020| 8            | Jan is a hard worker
10240    | 1                   | 02Jan2020| 7.5          | Finally he stays a full day

要查找jim的工作内容,请执行连接:

SELECT Employee.EmpID, Employee.Name, Details.Date, Details.Hours_worked, Details.Notes
FROM Employee
JOIN Details ON Employee.EmpID=Details.EmpID;

当然,这会给你一个标准化的结果(这通常是你想要的,所以你可以迭代):

EmpID |  NAME  | Date      | Hours_worked | Notes
-----------------------------------------------
1     | Jim    | 01Jan2020 | 5            | ......
1     | Jim    | 02Jan2020 | 7            | .......

如果你想让结果非规范化,你就必须查看pivot表。
有关创建外键的详细信息,请参见

相关问题