概述

勤哲Excel服务器本身提供了强大的表间公式功能,已能满足大多数数据查询与填充需求。但在某些场景下,用户希望通过VBA宏代码实现更灵活的交互逻辑——例如根据用户点击按钮动态切换查询条件、批量处理数据等。

勤哲提供了 ExecQuery 函数接口,允许在VBA代码中直接调用已配置好的表间公式查询(qryList),从而将两者的优势结合起来:表间公式负责定义数据源和查询规则,VBA负责控制触发时机和用户交互。

VBA与勤哲集成概览
图:勤哲Excel服务器结合VBA的应用示意

ExecQuery 函数说明

ExecQuery(qryList) 是勤哲暴露给VBA的核心接口函数,其参数 qryList 为字符串类型,指定要执行的表间公式查询名称(即在勤哲模板设计器中配置的查询列表名称)。

调用该函数后,勤哲会按照对应表间公式的配置,自动从数据源中读取数据并填入当前表单的目标单元格,效果与手动执行表间公式完全相同,但触发方式由VBA控制,可以实现条件判断、循环处理等复杂逻辑。

ExecQuery函数文档
图:ExecQuery 函数接口说明

物料查询实例

以下以物料查询为例,演示如何通过VBA结合勤哲表间公式实现五种不同维度的灵活查询:

按品牌查询输入品牌名称,查询该品牌下所有物料的库存情况
按供应商查询输入供应商名称,列出该供应商提供的全部物料
按品名查询模糊匹配品名关键字,返回所有匹配物料记录
按规格查询精确匹配规格型号,快速定位特定规格的库存数据
按库存范围查询设置库存上下限,筛选出库存偏低或积压的物料
物料查询界面
图:物料查询界面(五种查询方式)
查询结果展示
图:查询结果展示

表间公式配置

在使用 ExecQuery 之前,需要在勤哲模板设计器中预先配置好对应的表间公式查询。配置时指定数据源表、查询条件字段、目标填充区域等参数,保存后即可在VBA中通过查询名称调用。

表间公式配置
图:勤哲表间公式查询配置界面

VBA 代码示例

以下为在按钮点击事件中调用 ExecQuery 的典型代码结构。用户点击查询按钮后,VBA读取当前选择的查询类型,动态调用对应的表间公式:

Private Sub CommandButton1_Click()
    Dim qryName As String
    ' 根据用户选择的查询类型确定查询名称
    Select Case Me.ComboBox1.Value
        Case "按品牌"
            qryName = "qry_material_brand"
        Case "按供应商"
            qryName = "qry_material_supplier"
        Case "按品名"
            qryName = "qry_material_name"
        Case "按规格"
            qryName = "qry_material_spec"
        Case "按库存"
            qryName = "qry_material_stock"
        Case Else
            MsgBox "请选择查询类型"
            Exit Sub
    End Select
    ' 调用勤哲表间公式查询
    Call ExecQuery(qryName)
End Sub
VBA代码编辑
图:VBA代码编辑器中的实际代码
运行效果
图:VBA结合勤哲表间公式的运行效果

小结

通过 ExecQuery 接口,用户可以将勤哲Excel服务器强大的数据管理能力与Excel VBA的编程灵活性有机结合,突破单纯表间公式在交互设计上的限制,实现更复杂的业务逻辑。这种组合方式特别适合有一定Excel VBA基础的高级用户,在不改变勤哲核心架构的前提下,大幅扩展系统的定制空间。