sql-server - MS Access 提供#Name?在某些情况下 SQL SP Fed 表单上的错误
问题描述
我有一系列我正在调用的 SP 来填充我的 Access 表单。这些都是沿着相同的代码行调用的,很典型:
Public Sub cssLoadAllJobs(lngCID As Long, frm As Form)
'See methods and notes under cssLoadClient
Dim rst As New ADODB.Recordset
With rst
Set .ActiveConnection = gcn
.Source = "EXEC mysp_ActiveJobsForClient " & Nz(lngCID) 'Runs sp with parameter
.LockType = adLockOptimistic
.CursorType = adOpenKeyset
.Open
End With
Set frm.Recordset = rst
Set rst = Nothing
End Sub
这些都工作正常,没有问题。
然而,在我的主窗体上,我正在连续加载其中的几个,例如客户端、站点和作业。
对于工作,我有两个不同的 SP。一个由客户端过滤,然后由站点过滤,然后由该站点上的设备过滤。另一个仅由客户端过滤。
发生的事情是,如果我将带有大量过滤器的那个加载到主窗体中,则主窗体可以正常工作。但是,如果我加载仅由 CLient 过滤的作业,则主表单将抛出#Name?
所有客户端记录字段,并且作业子表单字段也全部发送到#Name?
.
认为这应该很容易诊断,我注释掉了加载 Job 子表单的行,一切都很好。如果我随后为完整过滤的子表单添加代码,那么主表单可以正常工作。
不要被打败,毕竟这一定是一个简单的错误,我复制了作业子表单并加载了唯一由客户端过滤的子表单,它显示了准确的记录没有问题。
尝试使这一点更清楚:
- SP1 = 由客户端过滤
SP2 = 按客户过滤和按站点过滤并按设备过滤
使用 SP2 Works 的主窗体
带有 SP1 的主窗体
#Name?
子表单加载为表单 SP1 Works
- 子表单加载为表单 SP2 工作
我想一个简单的测试是创建一个新的子表单并交换它们但是......为什么?
解决方案
推荐阅读
- javascript - 我的滚动顶部按钮工作,但它不应该显示的按钮
- laravel - 如何使用 Laravel RestApi 和 vuejs 上传照片
- docker - 如何限制 Kubernetes 容器查看主机(K8s minion)操作系统上的块设备列表?
- sql - SQL - 如何在查询中包含视图?
- mysql - SQL 存储过程:如果语句未按预期运行
- mongodb - 如何显示最大编号的客户姓名。MongoDB中的订单?
- reactjs - 如何使用 d3.select 选择链接?
- javascript - 将对象绑定到 Vue 多选
- wordpress - 在网格中显示类别帖子
- google-api - 需要在 Google Javascript API 中超过 1200 个引荐来源网址限制