MS Access中的奇怪行为

rog*_*awg 2 ms-access access-vba

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

如果我运行这样的查询:

SELECT StoreID, InventoryItemID FROM StoreItemRecords;
Run Code Online (Sandbox Code Playgroud)

我得到了一些奇怪的结果.我得到:1,Hammer 2,Box of Nails 3,其他一些项目名称.

所以,我正在获得StoreID,就像我应该的那样.但我也得到了库存项目的名称,而不是库存项目的ID.此外,请务必注意,InventoryItemID列定义为NUMBER,而不是TEXT.

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

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

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

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

Kev*_*oss 5

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

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

这是他们为何邪恶的链接

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