You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

表单筛选能否替代SQL查询及DLOOKUP中的公司/业务单元限制代码?

关于表单筛选替代SQL/DLOOKUP权限过滤的方案

完全可以用表单筛选来省去这些重复的权限过滤代码,还能大幅降低后续维护成本,具体实现思路如下:

  • 设置表单全局筛选
    打开表单设计视图,在「数据」选项卡的「筛选」属性中,直接写入当前用户的公司与业务单元过滤条件,示例代码:

    [公司ID] = Forms!用户信息表单!当前公司ID And [业务单元ID] = Forms!用户信息表单!当前业务单元ID
    

    这里假设你有一个启动时自动加载登录用户权限数据的表单(比如用户信息表单)。设置完成后,表单及其关联子表单的所有基础数据交互都会自动应用这个筛选,无需在绑定SQL中重复编写权限条件。

  • 简化DLOOKUP调用
    表单应用筛选后,若DLOOKUP的数据源与表单绑定数据源一致,无需再在DLOOKUP中追加权限条件——表单的筛选上下文会自动限定DLOOKUP的查询范围。如果是获取当前表单记录的字段值,甚至可以直接用Me.Recordset.Fields("目标字段").Value替代DLOOKUP,效率更高。

  • 补充注意事项

    • 子表单需同步设置筛选属性,或通过主表单的筛选事件联动更新子表单数据范围,确保权限一致。
    • 对于独立查询、报表这类脱离表单上下文的场景,可把权限条件封装成公共函数(比如GetUserPermissionFilter()),在SQL中直接调用WHERE " & GetUserPermissionFilter(),避免重复编写代码。
    • 用户权限变更时,需触发表单筛选的重新加载,保证数据范围实时匹配最新权限。

内容的提问来源于stack exchange,提问作者Dale

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 20:12:02