gpt4 book ai didi

ms-access - 过滤器和 where 子句之间的区别

转载 作者:行者123 更新时间:2023-12-02 22:36:03 24 4
gpt4 key购买 nike

我始终使用我的 Access 应用程序..

据我所知,当我向后端(accdb 文件)执行 sql 子句时,比如说

SELECT * FROM tbl WHERE id=1;

它在后端被过滤,然后只有一条记录通过网络传输。

我的问题是,当我使用过滤器参数打开一个以查询(无 where 子句)为边界的表单时,例如

DoCmd.OpenForm "Form",,, strFilter

网络上传输了多少记录?它们像 SQL 子句一样被过滤,或者它们在本地被过滤,这意味着必须通过网络发送大量数据?

我对此感到担心,因为我有许多子表单绑定(bind)到查询,然后我使用过滤器参数在主表单中打开它们。当然,这里的网络不是很好。

编辑:我的应用程序的环境位于没有本地服务器的工厂中。所有网络/信息都在300公里外的公司总部,也许是WAN。除了升级到 SQL Server 类似之外,我还有其他解决方案来使其更可靠吗?我听说过“Citrix”,我的系统托盘中碰巧有一个“Citrix Neighborhood Agent 程序”,它可以托管我的应用程序以使其速度更快吗?

最佳答案

DoCmd.OpenForm "Form",,, strFilter

网络上传输了多少记录?

与您的 strFilter 条件匹配的数量。因此,如果 WHERE id=1 在之前的 SELECT 查询中返回一行,并且 strFiler = "id=1",则 OpenForm 将打开该表单并将该行作为其记录源。

WhereCondition 参数也可用于 DoCmd.OpenReport,其操作方式与 OpenForm 相同,您可能会发现它很有用。

编辑:您应该有一个索引来支持 WHERE 条件,无论您将其构建到查询中还是使用 OpenFormWhereCondition 进行“临时”操作。通过索引,数据库引擎将读取索引以查找匹配的行,然后检索这些行。因此,与强制引擎读取每一行以确定其中哪些包含匹配项相比,检索将更有效,因此速度更快。

关于ms-access - 过滤器和 where 子句之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6422854/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com