勤哲Excel服务器本身提供了强大的表间公式功能,已能满足大多数数据查询与填充需求。但在某些场景下,用户希望通过VBA宏代码实现更灵活的交互逻辑——例如根据用户点击按钮动态切换查询条件、批量处理数据等。
勤哲提供了 ExecQuery 函数接口,允许在VBA代码中直接调用已配置好的表间公式查询(qryList),从而将两者的优势结合起来:表间公式负责定义数据源和查询规则,VBA负责控制触发时机和用户交互。
勤哲Excel服务器本身提供了强大的表间公式功能,已能满足大多数数据查询与填充需求。但在某些场景下,用户希望通过VBA宏代码实现更灵活的交互逻辑——例如根据用户点击按钮动态切换查询条件、批量处理数据等。
勤哲提供了 ExecQuery 函数接口,允许在VBA代码中直接调用已配置好的表间公式查询(qryList),从而将两者的优势结合起来:表间公式负责定义数据源和查询规则,VBA负责控制触发时机和用户交互。
ExecQuery(qryList) 是勤哲暴露给VBA的核心接口函数,其参数 qryList 为字符串类型,指定要执行的表间公式查询名称(即在勤哲模板设计器中配置的查询列表名称)。
调用该函数后,勤哲会按照对应表间公式的配置,自动从数据源中读取数据并填入当前表单的目标单元格,效果与手动执行表间公式完全相同,但触发方式由VBA控制,可以实现条件判断、循环处理等复杂逻辑。
以下以物料查询为例,演示如何通过VBA结合勤哲表间公式实现五种不同维度的灵活查询:
在使用 ExecQuery 之前,需要在勤哲模板设计器中预先配置好对应的表间公式查询。配置时指定数据源表、查询条件字段、目标填充区域等参数,保存后即可在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
通过 ExecQuery 接口,用户可以将勤哲Excel服务器强大的数据管理能力与Excel VBA的编程灵活性有机结合,突破单纯表间公式在交互设计上的限制,实现更复杂的业务逻辑。这种组合方式特别适合有一定Excel VBA基础的高级用户,在不改变勤哲核心架构的前提下,大幅扩展系统的定制空间。