Sql 组合框列计数剔除数据?

Sql 组合框列计数剔除数据?,sql,database,ms-access,Sql,Database,Ms Access,基本上,我有一个组合框,我用它来选择一个记录。然后,该组合框会根据ID填充在我的表单上找到的几个文本框。请参见以下两幅图像: 我希望组合框显示查询中的前两列,这两列由16个字段组成。确切地说,缩写和名称。但是,我发现,如果我在查询中隐藏字段,或者如果我限制组合框的列数,使其仅显示这两个字段,那么它实际上会剔除数据,以便文本框不会发现它因此为空 我的问题是,我怎样才能只显示组合框的前两列,而仍然使用它的ID引用所有16列 质疑 不要更改列计数,请更改列宽 Column width: 0cm;2c

基本上,我有一个组合框,我用它来选择一个记录。然后,该组合框会根据ID填充在我的表单上找到的几个文本框。请参见以下两幅图像:

我希望组合框显示查询中的前两列,这两列由16个字段组成。确切地说,缩写和名称。但是,我发现,如果我在查询中隐藏字段,或者如果我限制组合框的列数,使其仅显示这两个字段,那么它实际上会剔除数据,以便文本框不会发现它因此为空

我的问题是,我怎样才能只显示组合框的前两列,而仍然使用它的ID引用所有16列

质疑


不要更改列计数,请更改列宽

Column width: 0cm;2cm;1cm;0cm
等等

只选择相关列应该不难。您可以发布组合的行源属性

在我看来,您应该将表绑定到数据源TradeShows,并使用向导创建一个组合框来查找记录

您可以通过选择表Tradeshows并选择createform或form来实现这一点。现在,您将有一个RecordSource属性设置为TradeShows的表单。接下来,选择向表单中添加一个组合框,确保您已选择向导,并突出显示魔术棒按钮。您可以根据我在组合框中选择的值在我的表单上查找记录。您可以选择此选项并逐步完成向导。当您进入选择字段的步骤时,请确保首先选择TradeShowID,然后选择名称和/或缩写。如果TradeShowID是主键(应该是主键),则该列将在下一步中自动隐藏,这将显示所选字段。 这些操作的结果将是具有以下属性的组合框:

Row Source    : SELECT [Tradeshows].[tradeShowID], [Tradeshows].[tradeShowName], 
                [Tradeshows].[tradeShowAppreviation] FROM [Tradeshows];
Bound Column  : 1
Column Count  : 3
Column Widths : 0cm;2.54cm;2.54cm
在更新后的事件2010中,您还将有[Embedded Macro],对于早期版本,可能有[2007]或[event Procedure]。向导代码非常糟糕,但这是另外一天的工作


如果您仍希望将每个控件设置为可能更改的列顺序,则可以按照组合的类似布局,适当设置计数和宽度。

确保绑定列是组合框中的ID列,并执行上述操作。我假设您正在执行查询,以根据组合框中放置的ID填充组合框选择后的文本框。上表是行源。对于另一个文本框,我将控制源设置为=[cmbAbbr].[Column]x,其中x是正确的列。设置宽度没有多大作用,因为由于某些原因,0的宽度仍然可见。图像在问题中的用途非常有限。您需要从行源发布文本,或者如果文本基于查询,则发布查询的sql。为什么不将表单绑定到查询并使用组合查找相关记录?
Row Source    : SELECT [Tradeshows].[tradeShowID], [Tradeshows].[tradeShowName], 
                [Tradeshows].[tradeShowAppreviation] FROM [Tradeshows];
Bound Column  : 1
Column Count  : 3
Column Widths : 0cm;2.54cm;2.54cm