2012-07-06 69 views
2

我的设置:我有两个表:tblAuthors和tblBooks。 tblAuthors包括一个列表作者:Kurt Vonnegut,Frank Herbert,JK Rowling,John Nichols等。tblBooks包括书籍清单:Slaughter House Five,Cat's Craddle,Monkey House,Dune,Harry Potter,Milagro Beanfield War等。访问2007年一对多关系计数

有tblBooks和tblAuthors之间的一对多的关系; tblAuthors中的作者被用作这种关系的主键。 tblAuthors有一个书籍数量 coloumn它告诉该表的用户每个作者写了多少本书,其中包括在表中。目前,用户(可悲的是)必须手动输入这些信息,在每一本书输入并给予作者后更新它。虽然这并不是特别困难,因为我可以简单地看到tblAuthors中有多少书与作者有关​​系,但有时候很难记住更新它(更不用说屁股上有巨大的痛苦了)。

我想图书数量随着我添加更多图书自动更新。如果有代码请让我知道!

我并不真正熟悉VBA,并可以使用,朝别人谁可能不明白所有的代码刻面的面向的解释。

谢谢你提前为你给我任何帮助!

回答

3

你可能会喜欢读about relational database design它不是通常储存计算字段,因为信息可以很容易地从查询获得。

SELECT AuthorID, 
     Count(BookID) 
FROM Books 
GROUP BY AuthorID 
+0

谢谢你的帮助Remou! – 2012-07-06 16:51:08

+0

嘿雷穆,我想知道你能不能帮我一点儿忙。我将查询与作者匹配的书籍数量进行了匹配。现在我怎么把这个信息放入我的预先存在的表格中?我试图用'Make table','Append'和'Update'来尝试将信息导入tblAuthors,但无济于事。我是全新的SQL和新访问,任何帮助将是优秀的! – 2012-07-06 17:30:18

+2

他的观点是你不想将这些信息存储在Authors表中。任何时候你需要书的数量,你运行一个查询来检索它。如果您需要作者名与图书的数量一起,你可以使用联接:'选择tblAuthors.Name,COUNT(tblBooks.BookID)作为NUMBEROFBOOKS FROM tblAuthors INNER JOIN tblBooks ON tblAuthors.AuthorID = tblBooks.AuthorID' – Ghost 2012-07-06 17:39:59