【发布时间】:2014-01-01 05:13:29
【问题描述】:
我在工作中维护了一个 Access 数据库,我们使用它来发送员工生产力的每小时更新。目前,我将表单排列成列:第一列包含一个 ComboBox,我们可以从中选择员工的姓名。选择名称后,下一列会自动填写代理的员工 ID (TID),通过以下代码:
AgentName = rs.Fields("AgentName")
sqlString2 = "SELECT * FROM " & "AllAgents WHERE FullName ='" & AgentName & "'"
rs2.Open sqlString2, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
AgentTID = rs2.Fields("TID").Value
rs2.Close
在公司网络上的办公室工作时一切正常,但我刚刚发现使用此表单时通过 VPN 工作会导致可怕的速度下降。缓慢是我一直在与 VPN 斗争的一个问题,但在这种情况下我有一个想法可能会导致缓慢,我想在麻烦重新编码之前知道我是否正确.
我的想法是,我可以在 VBA 中创建一个数组,该数组将在表单首次加载时填充代理的名称和 ID,甚至在每台笔记本电脑上打开数据库时填充。然后数据库只需要从“AllAgents”表中读取一次,并且可以简单地将数组用作源。我不知道这是否会产生影响。基本上,如果将 Access DB 保存到网络驱动器并通过 VPN 访问,那么该阵列是否会存储在笔记本电脑的 RAM 中?如果是这样,我认为这将缓解速度问题,并且值得花时间重新编码。
谢谢,
【问题讨论】:
-
AllAgents 表有多少行?
-
目前有 163 个,但随着我们获得或失去代理,这种变化相当规律
标签: sql arrays vba ms-access vpn