2016-07-18 53 views
0

我有以下线在我的VBA代码查询字段显示数值,而不是文本在Excel

SELECT Creator,Responsible FROM MyTable 

两个列指的是查找值在不同的表。这个其他表有3个值:ID,名称,登录名。我假设我在Excel中获得的数值是唯一的ID。我想显示名称而不是ID。 Access显示名称列,但Excel向我显示唯一标识列。我也需要Excel中的名称列。

+0

意味着什么都不知道什么是数据正在采取,我想象会改变为“从表名选择名称” –

+0

我不明白你的意思。这两列都来自表“MyTable”。这两个值都是具有3列的不同表格中的查找值。如果我在Excel中获取数据(唯一ID),则获取该表的第一列,而在Access中获得第二列(名称)。我还需要Excel中的第二列(名称)。 – Tomdw94

回答

2

查找字段存储一个值,但显示不同的值。有时这似乎很方便。但是,如果实际获得存储的值而不是“查找”值,可能会非常困惑。

在你的情况,似乎Creator包含一个数字,和查找功能从行中检索Name在其他一些表,其IDCreator数量相匹配。

您需要在查询中执行类似查询:在MyTable与另一个表之间创建一个INNER JOIN。然后该查询可以显示与存储的Creator号码关联的Name

SELECT m.Creator, o.Name 
FROM 
    MyTable AS m 
    INNER JOIN OtherTable AS o 
    ON m.Creator = o.ID 

听起来你也需要将该策略应用于Responsible字段。

+0

感谢您的回答!我已经在vba中尝试了上述内容,但是出现错误:“没有给出一个或多个必需参数的值。”当我在Access中运行此查询时,它会提示我输入2个值。查询的结果是2列,其中我在提示中输入的值与MyTable中的行数相同。我看到内部连接的逻辑,但是我无法理解访问需要列的值的原因。 – Tomdw94

+1

当Access无法识别查询中的某些内容时,它会假定某些内容必须是参数。通常这是拼错字段名称的结果。 Access认为参数名称是什么?参数输入框包含参数的名称。 – HansUp

+1

我非常抱歉,我翻译了专栏名称以便于理解。我改变了除“o.name”之外的所有内容......我的专栏名称是“naam”,这个名字被翻译成我的语言。我浪费了你的时间 – Tomdw94

相关问题