Ms access 使用下拉访问填充窗体

Ms access 使用下拉访问填充窗体,ms-access,Ms Access,我正在尝试在access中创建一个表单,该表单顶部有一个下拉列表,并使用与所选内容对应的记录填充表单的其余部分 我在网上看了两个不同的指南,但都指向旧版本的Access,我想我遗漏了一些东西 所以。命令我做所有事情: 我去桌边拿表格。我点击了表格。这形成了一个将所有字段作为文本框的快速表单 我删除了将作为下拉列表的字段,并输入了一个取消向导的下拉列表 在下拉列表的数据部分中。我编辑了rowsource,以按顺序选择下拉列表中的字段和唯一ID 我将绑定列设置为2。我已经尝试了这两种方法 我将组合框

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

我在网上看了两个不同的指南,但都指向旧版本的Access,我想我遗漏了一些东西

所以。命令我做所有事情:

我去桌边拿表格。我点击了表格。这形成了一个将所有字段作为文本框的快速表单

我删除了将作为下拉列表的字段,并输入了一个取消向导的下拉列表

在下拉列表的数据部分中。我编辑了rowsource,以按顺序选择下拉列表中的字段和唯一ID

我将绑定列设置为2。我已经尝试了这两种方法

我将组合框的名称设置为TitleSelector

在表单设置中。用于记录源。我有[表格]![Edit Piece]。[TitleSelector]&*在ID的条件中。我还列出了查询中的其余字段

我将me.requery添加到了on change 不知道这是否意味着什么。当我输入ID的条件时,下拉列表中没有显示TitleSelector

我正在使用Access 2010

编辑: 我的问题- 下拉列表本身正确地显示了所有内容。然而,当我选择某样东西时,什么也不会发生

编辑:

编辑:
以下是指向我的数据库副本的链接:

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

我已经下载了示例文件。您的问题是[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] & "*")); 
…最后的&*导致查询不返回任何记录。正在删除最后一位,以便窗体的记录源是

…让你的表格生效

编辑 要使表单显示相关表中的信息,而不仅仅是[Pieces]表中的外键值,请将表单的记录源更改为

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]));

如果在打开表单并在组合框中进行选择后打开即时窗口Ctrl+g,然后键入?[表格]![编辑件][TitleSelector]并按enter键。。。即时窗口显示什么值?如果我取出&*,当我打开表单时,它会要求参数。我照你说的做了。它给了我2,这是被选中者的ID。我觉得有些地方不对劲。我以为您正在使用SELECT查询作为表单的记录源。请编辑该查询,切换到SQL视图,复制SQL文本并将其粘贴到问题中。编辑查询时不必保存任何更改。从片段中选择Pieces.ID、Pieces.Title、Pieces.Composer、Pieces.Instrumentation、Pieces.Location、Pieces.Location\u 2,其中Pieces.ID=[forms]![编辑件][TitleSelector];我看不出这个问题有什么不对,乔恩。然而,我也没有看到你提到的。我现在更迷路了,试过了。还是不行。在您建议的更改之前,我添加了一个数据库链接。谢谢,我不太清楚为什么在我第一次尝试时,这个链接不起作用。您知道如何用下拉列表替换这些文本字段,这些下拉列表显示另一个表中的值,而不是显示Composer的ID,因为它将显示名称?我被困在只是试图让它显示ID。其余的字段更新,但该字段没有改变。
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]));