勤哲Excel结合VBA的应用
勤哲EXCEL服务器结合VBA实现连续应用指定的表间公式
一.VBA可调用函数
ExecQuery(qryList)
功能:连续应用若干条(一条或多条)指定的表间公式
参数:qryList:表间公式名称列表,各公式名之间用逗号分割。
应用场合:在模板上写VBA程序,调用此函数,可实现用户控制(手动)表间公式的运行。
二.实例应用
某企业的物料查询
2.1功能描述
该企业在库存管理中,对库存商品的指定查询条件,方便业务人员按条件查找物料。在勤哲EXCEL服务器软件中建立一个“纯查询模板”通过运用表间公式就可以把涉及到库存信息做一个查询结果表现出来,实现查询物料信息的这样一个功能。
2.2 建立“物料查询表”
描述:该模板是“纯查询模板”
2.3
2.3 按模板定义的数据项写出表间公式
如:主表:品牌、供应商、品名、规格、
明细:库存数量
2.4 表间公式
运用勤哲EXCEL服务器表间公式提出所查询信息应用手动执行.
目的:按查找条件执行。
(1)按品牌提取
提取<物料表_明细>中满足下列条件的数据:
<数据筛选:物料表_明细.品牌 = 本报表.物料查询:品牌>
按以下方式填入<物料查询表_明细>:
物料表_明细.品牌 --->(填入值) 品牌 (升序)
物料表_明细.供应商 --->(填入值) 供应商 (升序)
物料表_明细.品名 --->(填入值) 品名(升序)
物料表_明细.规格 --->(填入值) 规格 (升序)
物料表_明细.库存数量 --->(填入值) 库存数量 (升序)
(2) 按供应商
提取<物料表_明细>中满足下列条件的数据:
<数据筛选:物料表_明细.供应商 = 本报表.物料查询:供应商>
按以下方式填入<物料查询表_明细>:
物料表_明细.品牌 --->(填入值) 品牌 (升序)
物料表_明细.供应商 --->(填入值) 供应商 (升序)
物料表_明细.品名 --->(填入值) 品名 (升序)
物料表_明细.规格 --->(填入值) 规格 (升序)
物料表_明细.库存数量 --->(填入值) 库存数量 (升序)
(3) 品名查询
提取<物料表_明细>中满足下列条件的数据:
<数据筛选:物料表_明细.品名 = 本报表.物料查询:品名>
按以下方式填入<物料查询表_明细>:
物料表_明细.品牌 --->(填入值) 品牌 (升序)
物料表_明细.供应商 --->(填入值) 供应商(升序)
物料表_明细.品名 --->(填入值) 品名 (升序)
物料表_明细.规格 --->(填入值) 规格 (升序)
物料表_明细.库存数量 --->(填入值) 库存数量 (升序)
(4) 规 格
提取<物料表_明细>中满足下列条件的数据:
<数据筛选:物料表_明细.规格 = 本报表.物料查询:规格>
按以下方式填入<物料查询表_明细>:
物料表_明细.品牌 --->(填入值) 品牌(升序)
物料表_明细.供应商 --->(填入值) 供应商 (升序)
物料表_明细.品名 --->(填入值) 品名 (升序)
物料表_明细.规格 --->(填入值) 规格(升序)
物料表_明细.库存数量 --->(填入值) 库存数量 (升序)
(5) 库 存
提取<物料表_明细>中满足下列条件的数据:
<数据筛选:物料表_明细.库存数量 <>0>
按以下方式填入<物料查询表_明细>:
物料表_明细.品牌 --->(填入值) 品牌
物料表_明细.供应商 --->(填入值) 供应商
物料表_明细.品名 --->(填入值) 品名
物料表_明细.规格 --->(填入值) 规格
物料表_明细.库存数量 --->(填入值) 库存数量
2.5 在模板中运用EXCEL VBA功能加入“命令按钮”
打开EXCEL“工具”-Viusal basic
添加“命令按钮”如图
2.6 写入VBA代码 具体格式可以参考EXCEL服务器帮助
通过双击增加的“品牌查询”命令按钮写入代码
(1)
Private Sub CommandButton1_Click()
Dim oAdd As Object
Dim ans As Boolean
′获取Excel服务器编程接口
oAdd = Application.COMAddIns.Item("ESClient.Connect").Object
ans = oAdd.execQuery("品牌查询") 这里输入表间公式名称
oAdd = Nothing
End Sub
(2) 同样的方法写入第二段代码
Private SubCommandButton2_Click() 命令按钮为“供应商查询”
Dim oAdd As Object
Dim ans As Boolean
′获取Excel服务器编程接口
oAdd = Application.COMAddIns.Item("ESClient.Connect").Object
ans = oAdd.execQuery("供应商查询") 同样写入表间公式
oAdd = Nothing
End Sub
………………………….
依次写入“品名、规格、库存数量”的代码
应用效果:
品牌查询
供应商查询
品名查询
规格查询
查全部库存