我是新手,我正在努力研究如何使用查找,因为vlookup在Access中不可用。我想获得与某个ID /标记相对应的值。
我有2张桌子。
表A包含值,例如产品编号,产品类型,价格,剩余库存#,产品类型+产品编号标签。假设产品编号不是唯一的,但将其与产品类型相结合,它将是唯一的,因此我创建了该标签。
表B包含卖方名称,已售商品数量,产品编号,产品类型,产品类型+产品编号标签。
现在使用表A和表B,如何创建一个查询/表格,当我尝试获取某个项目的价格时,我可以使用“产品编号+产品类型”标签,这样我就可以获得总收入每个卖家。
我希望你能理解我想说的话。我想要做的是当我尝试创建查询/表时,我想使用这个“Type + Number”标记作为获取相应项的数据的参考点。它就像Excel中的INDEX / MATCH。但是如何在Access中做到这一点?
请告诉我是否不清楚。
谢谢!
您需要根据两个表中“产品编号”和“产品类型”字段之间的关系加入两个表。
表A中的两个字段应标记为复合主键(选择这两个字段,然后在“设计”功能区中单击“主键”图标)。
在表B中,它们将是外键 - 卖方可以多次出售这些产品,因此这里允许重复。
你不需要Product Type+Product Number Tag
字段。
您的查询的SQL将是:
SELECT *
FROM [Table A] LEFT JOIN [Table B] ON [Table A].[Product Number] = [Table B].[Product Number] AND
[Table A].[Product Type] = [Table B].[Product Type]
这将返回表A中的所有记录,并仅返回表B中与主键匹配的那些记录。
最后....不要将Access表视为Excel电子表格。访问是关于数据之间的关系 - 对于开始查询可以用简单的英语表达更容易。
E.g返回表B中所有记录,其中卖方名称为“Dave”,日期为1月1日至1月31日,将写为:
SELECT *
FROM [Table B]
WHERE [Seller Name]='Dave' AND
[Sale Date] Between #01/01/2018# AND #01/31/2018#
(SQL仅以美国日期格式处理)。
你可以使用DlookUp Function。
它可以作为计算字段用于查询,也可以用在VBA中的代码中:
例如,要获得PRoduct的价格,您可以使用以下内容:
DlookUp("[Price]";"Table A";"[Product Type+Product Number Tag]='" & Value & "'")
从我的角度来看,DlookUp的复杂部分是第三个参数,WHERE clausule。如果您有使用SQL的经验,那么您将没有任何问题。如果你不这样做,不要担心,只需阅读一些信息,如果你遇到困难,请到这里来
您可以使用DlookUp根据条件(应用于唯一字段的标准,ofc)获取任何字段的任何值。
是的,您可以使用它从表或查询中获取值。在我之前提供的链接中,它解释了参数的工作原理。
最复杂的部分是标准部分。您必须编写,就像在SQL more info here上键入WHERE clausule一样
关于标准,请记住:
[field_criteria]=my_numeric_criteria
[field_criteria]='my_text_criteria'
SQL需要围绕文本值使用单引号。
试试吧!