如何在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中进行参数化查询的步骤使用单元格值作为参数
- 首先转到Excel中的“数据”选项卡,然后在“外部数据源”下select“MS查询”
- 出现一个popup窗口,要求您select数据源。 select数据源或添加一个新的数据源并select它。 确保取消选中
Use the query wizard to create or edit queries
这在大多数情况下并不是非常有用
- 然后出现一个popup窗口,要求您现在添加表格select任何表格。 最好select一个行数较less的表格。
- 然后出现一个查询窗口,其中包含您select的表格及其数据
- 然后点击
view
菜单并取消选中tables
。 这将删除查询窗口中的graphics表示,并使其更容易改变你的sql查询
- 在查询窗口中点击
format
菜单下方的SQL
button。 popup式窗口可以随意编辑查询。 确保为所需的参数添加问号。
- 然后出现一个popup窗口,询问你现在input一个有效值的参数值
- 然后查询窗口根据input的参数显示查询结果
- 点击查询窗口中
view
菜单下方的exit
button。 然后查询窗口closures,popup导入数据来询问在Excel中的哪个位置显示结果。 select相应的
- 然后点击左边的属性button,然后点击确定。 出现一个新的popup窗口,并select默认使用情况标签。
- 在此选项卡中进行所需的任何更改,然后单击
Definition
选项卡。 点击edit query
button旁边popup的Parameters
button
-
popup的参数显示查询中使用的参数。 在这里,您必须select
Get 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