MS Access:如何更新多个值和查询多个表(许多关系)?

时间:2018-08-02 21:09:02

标签: database ms-access relational-database ms-access-2013 access

免责声明:我上周才开始使用Access进行实习,所以请耐心等待,我仍然不太了解它或它背后的理论。

在网上阅读并观看了许多教程之后,我以为我准备好开始在MS Access上创建数据库了,尽管我担心我错了。

为我提供了一个可以处理超过75,000行的Excel文件,但是我一直在努力,因为大多数教程似乎都相当讲解了数据库,其中通常是从头开始填充表。

我有我的主表X,其中主键称为NIF(表示葡萄牙语的财务编号),每个数字代表一个唯一的公司。除了许多其他字段外,我还有5列名为Banco_1,Banco_2,...,简单来说,每个公司可以在5家不同的银行中拥有一个帐户。然后,我创建了另一个表Y,在其中为每个可能的银行分配了一个数字-主键,即自动编号(Ban​​k_ID)。

因为我认为这是多对多的关系,所以我以为我必须创建一个桥接表Z,它具有唯一的PK(也是一个自动编号),在其中可以将NIF和Y的PK都查找为异域键。因此,如果特定的NIF有5个不同的银行帐户,则最多可以重复5次。

我尝试对表运行选择查询,但对我而言,这是行不通的。 NIF将一次又一次地重复,并且Bank_ID字段中将没有值,或者它将是一个完全随机的数字。我确定我做错了所有事情。

如何创建一个基本上可以用作桥接表的表,而无需在excel中操纵数据并将其导入以进行访问?我确定必须有一种方法可以连接此信息并创建上述第三个表Z。

我还想知道如何一次更新几个值?考虑一下,我不需要桥接表,只想简单地在表X和Y之间创建关系。如何将表X中的银行的值(银行名称)更新为我在表Y中创建的Bank_ID?如果您只有2个ID,但有多个ID,更新查询就很容易做到这一点。

我想通过告诉您我不精通编码(包括SQL和VBA)来完成这篇漫长的“论文”,所以同时使用这两种方法的解决方案对我来说可能比较棘手。

希望您能帮助我!预先感谢!

1 个答案:

答案 0 :(得分:0)

听起来好像您在三个表之间的连接没有正确。听起来您好像正确地将excel中的5列标准化为桥接表。最终,您将获得以下内容(sqlserver语法):

create table Company(CompanyID int, CompanyName varchar(100));
create table Bank(BankID int, BankName varchar(100));
create table Account(AccountID int, CompanyID int, BankID int, AccountNumber varchar(20));

select CompanyID, CompanyName, BankID, BankName, AccountNumber
from Company
join Account on Account.CompanyID=Company.CompanyID
join Bank on Bank.BankID=Account.BankID

我省略了外键,但我想您可以看到它们的位置。