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