MS Access中的奇怪行为

时间:2010-08-27 01:58:05

标签: ms-access access-vba

我已经定义了三个表,Stores,InventoryItems和StoreItemRecords。我的StoreItemRecords表具有外键列(StoreID,InventoryItemID),它们“指向”商店(StoreID)和InventoryItems(InventoryItemID)记录的主键。表之间的列名称相同。

如果我运行这样的查询:

SELECT StoreID, InventoryItemID FROM StoreItemRecords;

我得到了一些奇怪的结果。我明白了: 1,锤子 2,盒子钉子 3,其他一些项目名称。

所以,我正在获得StoreID。但我也得到了库存项目的名称,而不是库存项目的ID。另外,请务必注意,InventoryItemID列定义为NUMBER,而不是TEXT。

所以,不知何故,Access正试图通过提供InventoryItemName来代替InventoryItemID来帮助我,但我似乎无法找到这种行为的原因或任何阻止它的方法。

[还有一个说明。我已经编写了一些VBA代码来填充StoreItemRecords表,并且在调试模式下,我可以“监视”分配给列的InventoryItemID值,并且我已经验证了ID实际上已放入其中。]

有没有人见过这样的行为?我知道当有人指出我正在做的愚蠢的事情时,我会感到非常愚蠢,但在这一点上,这是值得的尴尬。

提前感谢您提供的任何帮助。

1 个答案:

答案 0 :(得分:5)

我的钱在其中一个字段中被设置为访问中的“查找表”。这些通常被认为是一个不太有用的访问功能,试图帮助那些难以掌握数据库工作原理的新手开发人员。

如果您在设计模式下进入表格,您应该能够验证是否在相关字段中设置了该表格。如果关闭它并再次尝试查询

这是一个关于他们为什么是邪恶的链接

http://www.mvps.org/access/lookupfields.htm