2

我正在尝试在访问中创建一个表单,该表单在顶部有一个下拉菜单,并将使用与所选内容对应的记录填充表单的其余部分。

我在网上查看了 2 个不同的指南,但都指向旧版本的 Access,我认为我遗漏了一些东西。

所以。我做所有事情的顺序:

  1. 我走到桌子旁取表格。我点击了表格。这制作了一个快速表单,其中所有字段都作为文本框。

  2. 我删除了将成为下拉列表的字段,并在下拉列表中取消了向导

  3. 在下拉列表的数据部分中。我编辑了“行源”以按该顺序选择将在下拉列表中的字段和唯一 ID。

  4. 我将绑定的 Column 设置为 2(我都尝试过)

  5. 我将组合框的名称设置为“TitleSelector”

  6. 在表单设置中。对于“记录源”。我在“ID”的条件中有“[forms]![Edit Piece].[TitleSelector] 和“*”。我还列出了查询中的其余字段

  7. 我在更改中添加了“me.requery”不确定它是否意味着什么。当我输入“ID”的标准时,下拉菜单中没有显示“TitleSelector”。

我正在使用 Access 2010

编辑:我的问题-下拉列表本身正确显示了所有内容。但是,当我选择某些东西时没有任何反应

编辑:

SELECT Pieces.ID, Pieces.Title, Pieces.Composer, Pieces.Instrumentation, Pieces.Location, Pieces.Location_2
FROM Pieces
WHERE (((Pieces.ID)=[forms]![Edit Piece].[TitleSelector]));

编辑:这是我的数据库副本的链接:https ://www.dropbox.com/s/tpnqm686tj653fg/Trisha%20Database.accdb

4

2 回答 2

2

将 me.requery 添加到 ON CHANGE EVENT(选择 CODE BUILDER - 并在那里输入 me.requery)应该可以工作。

于 2013-05-24T22:17:23.703 回答
1

我已经下载了示例文件。您的问题是Record Source[Edit Piece] 表单设置为...

SELECT Pieces.ID, Pieces.Title, Pieces.Composer, Pieces.Instrumentation, Pieces.Location, Pieces.Location_2 FROM Pieces WHERE (((Pieces.ID)=[forms]![Edit Piece].[TitleSelector] & "*")); 

...& "*"最后导致查询不返回任何记录。删除最后一点,所以表格Record Source是......

SELECT Pieces.ID, Pieces.Title, Pieces.Composer, Pieces.Instrumentation, Pieces.Location, Pieces.Location_2 FROM Pieces WHERE (((Pieces.ID)=[forms]![Edit Piece].[TitleSelector])); 

...让你的表格工作。

编辑

要让您的表单显示相关表中的信息(而不仅仅是 [Pieces] 表中的外键值),Record Source请将表单的...

SELECT Pieces.ID, Pieces.Title, Pieces.Composer, Pieces.Instrumentation, Pieces.Location, Pieces.Location_2 FROM Pieces WHERE (((Pieces.ID)=[forms]![Edit Piece].[TitleSelector])); 

...至...

SELECT Pieces.ID, Pieces.Title, Composer.Composer, Instrumentation.Instrumentation, Location.Location, Location_1.Location AS Location_2 FROM (Location INNER JOIN (Instrumentation INNER JOIN (Composer INNER JOIN Pieces ON Composer.ID = Pieces.Composer) ON Instrumentation.ID = Pieces.Instrumentation) ON Location.ID = Pieces.Location) INNER JOIN Location AS Location_1 ON Pieces.Location_2 = Location_1.ID WHERE (((Pieces.ID)=[forms]![Edit Piece].[TitleSelector]));
于 2013-05-25T12:43:30.410 回答