Sql 将数据库规范化为1NF

Sql 将数据库规范化为1NF,sql,ms-access,vba,Sql,Ms Access,Vba,是否有人有更改表格格式的代码/想法 Bldg____Meter1___Meter2___Meter3 Bldg1___1________2________3_____ Bldg2___4________5________6_____ 到 这是正常化为1NF,对吗 无论如何,通过VBA或SQL来实现这一点也没问题,只是想找一些想法。您看过Access中的交叉表查询吗?没有,我以前没有见过,但我现在正在查看它们。我都不知道该找什么,谢谢!我在FROM子句中不断遇到语法错误,我可以随意命名newTa

是否有人有更改表格格式的代码/想法

Bldg____Meter1___Meter2___Meter3
Bldg1___1________2________3_____
Bldg2___4________5________6_____

这是正常化为1NF,对吗


无论如何,通过VBA或SQL来实现这一点也没问题,只是想找一些想法。

您看过Access中的交叉表查询吗?没有,我以前没有见过,但我现在正在查看它们。我都不知道该找什么,谢谢!我在FROM子句中不断遇到语法错误,我可以随意命名newTab吗?或者它需要是一个现有的表吗?如果我想创建一个新表怎么办?@hypetech您需要首先创建
newTab
。此外,在Access中,这些需要作为3个单独的语句运行。i、 e.一次只能在查询窗口中显示其中一行。我是否必须创建3个查询,或者我是否可以编写一些VBA来同时执行所有查询?好的,因此我将其拆分为三个SQL语句,并在VBA中运行它们,但实际上只有第一个语句插入。我仍然没有得到另一列的数据。这是我正在使用的代码
Private Sub cmdUpdate\u Click()DoCmd.RunSQL“插入TBLBLDGELECTRICMTR(Bldg,Meter)选择Bldg,Meter1从QryleMetersSplit;”,False DoCmd.RunSQL“插入TBLBLDGELECTRICMTR(Bldg,Meter)从QrylecterSplit选择Bldg,Meter2;”,False DoCmd.RunSQL“插入TBLBLDGELECTRICMTR(Bldg,Meter)从QRYLEMETERSPLIT;“,假端接头中选择建筑物,仪表3
INSERT INTO newTab (Bldg, Meter) SELECT Bldg, Meter1 FROM oldTab
INSERT INTO newTab (Bldg, Meter) SELECT Bldg, Meter2 FROM oldTab
INSERT INTO newTab (Bldg, Meter) SELECT Bldg, Meter3 FROM oldTab
INSERT INTO newTab (Bldg, Meter) SELECT Bldg, Meter1 FROM oldTab
INSERT INTO newTab (Bldg, Meter) SELECT Bldg, Meter2 FROM oldTab
INSERT INTO newTab (Bldg, Meter) SELECT Bldg, Meter3 FROM oldTab