如何在Excel中使用参数化查询使用列作为参数?

我正在尝试开发一个电子表格,可以在外部数据源中find相应的logging。 所以,假设我有列A的身份值列表。 我想开发列B,它可能显示表中的行数与该值。 就像是:

AB 758348 "=SELECT COUNT(*) FROM MYTABLE WHERE IDVALUE=$A$1" 173483 "=SELECT COUNT(*) FROM MYTABLE WHERE IDVALUE=$A$2" 

… 等等。 所以,我想我会使用参数化查询(其中IDVALUE =?),但是这会提示我input参数值,而不是使用单元格左侧的值。 有什么办法可以做到这一点?

我会使用参数化查询(其中IDVALUE =?),但是会提示我input参数值

从你提到我站在你使用MS查询,你需要按照以下步骤

在Excel中进行参数化查询的步骤使用单元格值作为参数

  1. 首先转到Excel中的“数据”选项卡,然后在“外部数据源”下select“MS查询”

MS查询

  1. 出现一个popup窗口,要求您select数据源。 select数据源或添加一个新的数据源并select它。 确保取消选中Use the query wizard to create or edit queries这在大多数情况下并不是非常有用

数据源

  1. 然后出现一个popup窗口,要求您现在添加表格select任何表格。 最好select一个行数较less的表格。

添加表格

  1. 然后出现一个查询窗口,其中包含您select的表格及其数据

查询窗口

  1. 然后点击view菜单并取消选中tables 。 这将删除查询窗口中的graphics表示,并使其更容易改变你的sql查询

查看菜单

  1. 在查询窗口中点击format菜单下方的SQLbutton。 popup式窗口可以随意编辑查询。 确保为所需的参数添加问号。

编辑查询

  1. 然后出现一个popup窗口,询问你现在input一个有效值的参数值

参数

  1. 然后查询窗口根据input的参数显示查询结果

结果

  1. 点击查询窗口中view菜单下方的exitbutton。 然后查询窗口closures,popup导入数据来询问在Excel中的哪个位置显示结果。 select相应的

进口

  1. 然后点击左边的属性button,然后点击确定。 出现一个新的popup窗口,并select默认使用情况标签。

属性

  1. 在此选项卡中进行所需的任何更改,然后单击Definition选项卡。 点击edit querybutton旁边popup的Parametersbutton

定义

  1. popup的参数显示查询中使用的参数。 在这里,您必须selectGet the value from following cell单选button以select单元格的值作为查询的参数。 点击确定,你应该完成。

    参数值


这种方法适用于没有VBA经验的人。 如果你知道VBA然后参考这个答案来实现类似的使用VBA的东西。

所以要做到这一点,我会创build一个UDF,并有该function的后端连接到您的访问数据库。 像这样的东西:

 Public Function countMyTable(IDValue As Double) As Long 'Requires:// Microsoft Access 16.0 Object Library 'Requires:// Microsoft Office 16.0 Access database engine Object Library Dim db As DAO.Database Dim rs As DAO.Recordset Set db = Access.DBEngine.Workspaces(0).OpenDatabase(DBFilePath, False, False) Set rs = db.OpenRecordset("SELECT COUNT(1) FROM MyTable WHERE IDValue = " & IDValue, dbOpenSnapshot) rs.MoveLast countMyTable = rs(0) db.close End Function 

希望这有助于TheSilkCode