我最近从 Excel 2007 转到了 Access 2007,以便管理本不该是电子表格的东西。不幸的是,据我所知,Excel 中的 LOOKUP 函数与 Access 中的 Lookup 列的工作方式并不完全相同。
我使用 Access 时遇到的困难在于将 Excel 中的 LOOKUP 功能翻译成如下形式:
=LOOKUP(A47, Winning!A1:A112, Winning!B1:B112)
我在构建一个表达式来捕获此功能时遇到了麻烦。在搜索如何使用从前一列输入的数据填充一列的解释时,我发现了涉及过滤器和 VBA 的各种方法,但没有解释它们的工作原理,如果我对它的工作原理没有太多解释,我不愿意简单地插入代码。
- 如何使用前一列的输入来填充一列?
- 有没有办法利用关系来做到这一点,或者表达式是一种更好的方法?
- 我希望在选择过滤器中输入一个表达式,该表达式根据输入列进行选择,或者类似于 DATE() 的内容,其中默认值基于列名([FILTER]);这种方法是否存在完整性问题?
- 这里是否
DLookup
有更有效的工具?例如:DLookup([CCD].[Name], [CCDBackend], [CCD].[ClientID]=[CCDBackend].[ClientID])
- 是否有一种资源可以帮助被 Excel 搞乱的大脑以某种 Access 可访问的方式重塑自我?
我尽量不让 VBA 的无聊术语充斥问题队列。请记住,对于这个问题,答案和方法的解释比代码片段更有帮助。
答案1
Access 处理数据的方式与 Excel 不同。在 Access 表中,数据存储在字段(列)的记录(单元格)中。无法像 Excel 那样在表的其他“单元格”中引用记录。
要将数据从一条记录复制到另一条记录(仅一次),您可以在数据表视图中打开表格并复制和粘贴一列。如果您认为需要多次执行此操作或想要使用条件进行筛选,则附加查询可能是最佳选择。
无需深入了解如何创建查询,这里有一篇文章,在 Access 2010 中使用表达式生成器,它展示了如何使用表达式生成器向表中添加字段,然后使用另一个字段的数据填充该字段。
这应该能让您对其工作原理有一个基本的了解,从而帮助您完成任务。
答案2
excel 函数=LOOKUP(A47, Winning!A1:A112, Winning!B1:B112)
可以改为 dlookup(但如果经常这样做,您可能需要使用记录集或查询)
翻译如下:
Result=dlookup("[B Column]","Table with A & B Data","[A column]=A47")
当然,我在使用的名称上有些随意,因为我不知道你的数据到底是如何存储的