为什么未绑定表单控件中的值不持久

探讨了在Access中为何表单上未绑定控件的设置不会持久化,以及控件如何在每个实例中应用相同的设置。分析了控件维持和持久化数据的潜在挑战,以及如何利用报告对象实现条件格式化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简介

我们在这里经常遇到这样的问题,即为什么表单上未绑定控件的设置(包括值和格式设置)为什么以后不存储以供参考,但是对于每个记录,每个设置似乎都应用于控件的每个实例。这就是如何。

我将尝试列出发生在我身上的所有推理和论据。 有时候,当事情看起来不言而喻时,很难解释。 对我来说,这完全是合乎逻辑的行为,所以请随意说,这是否会使了解情况变得更加容易。

推理

首先,我们应该认为Access中的表单是基础记录集数据的视图。 从概念上讲,它就像一个窗口。 它可能会有一些麻烦,但最终,它是一种查看基础(绑定)记录集中的数据的方式。 它也可以仅用于显示漂亮的事物(未绑定的控件,与基础记录集无关),但是我们暂时对事物的那一侧不感兴趣。

尽管表单可以显示各种记录,但它本身在任何阶段都不会存储任何值。 除了基础记录集之外,它也没有做出任何安排来记住其任何控件的任何设置。 尽管它似乎具有自己的完整实例集(以连续形式或数据表模式显示),但它只能具有尽可能多的实例,这些实例可以在屏幕上的任何一次显示。 所有这些实例都是精确的副本。 更改任何设置(包括值),这将影响其中的每一项。

几点思考

对于控件来维护和持久化关联的数据(而不是让数据由基础记录集管理),必须从根本上重组整个概念。 将需要更多资源(用于此临时任务的临时表或动态分配的RAM)。 尽管为一个数据集维护这样的资源是有可能的,但最初至少对于该数据集而言尚不知道,但是这并不是一件容易的事,并且肯定会给不需要它的情况带来复杂性。 我不能拒绝在此补充一点,以MS的声誉而闻名,它失去了对资源的跟踪并且没有适当关闭设备-这将是一个好举动吗?

如前所述,该表单就像一个窗口,允许一次查看和访问(操纵)记录集的一小部分。 扩展概念以处理完整的记录集,而不将其链接到记录集本身(换句话说,使用Bound控件),甚至将是不希望的。 实际上,它不太适合逻辑,并且是某种混合,对任何人来说都是正确的。

更新

有趣的是,尽管本文的前一部分可以保留并仍然被认为是正确的,但对于许多希望对每个控件显示不同格式和显示控件属性(及其值)的人来说,还是存在一个漏洞,这很有趣。单独记录。 令人着迷,我听你说(当这个概念由我介绍给我时,回荡了自己的想法

Stewart Ross在“ 条件格式访问2007-报告 ”线程中。

注意 由于这是如何运作的,因此只有在

报告对象,但不用于Form 。 更改控件设计后,将刷新Form上所有实例的控件,但这不是报表的工作方式。 继续阅读以了解原因。

从根本上讲,采用老式胶片相机的概念,可以在将图像绘制到报告上之前更新控件(使用

格式化事件过程,通常在“ 详细信息”部分)。 由于仅在格式化之前才对其进行更改(并且始终更改),因此格式化输出始终反映与每个单独记录有关的条件的结果。

这是一个说明灵活性的示例:

Option Compare Database
Option Explicit 
Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)
    With Me
        .lblScore.BackColor = &HFFFF00 + 2 * .txtScore
        .txtScore.BackColor = &HFF00FF + (&H100& * (&HFF& - 2 * .txtScore))
    End With
End Sub
在示例数据中,分数的范围是0到101,为避免出现灰色的插图,我从每种控件的颜色中忽略了其中一种色调。 它显示如下:

附加图片
文件类型:jpg CondFormatting.Jpg (7.2 KB,2097视图)

From: https://bytes.com/topic/access/insights/839971-why-values-unbound-form-controls-dont-persist

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值