gpt4 book ai didi

ms-access - 字段和控件名称中的空格引起的问题

转载 作者:行者123 更新时间:2023-12-02 22:53:54 25 4
gpt4 key购买 nike

显然,在表名、字段名和控件名中包含空格是一个坏主意(因为它在当今商业使用的几乎所有命令式编程语言中都用作分隔符*)。您必须用 [] 等包围这些控件和字段。我正在尝试向其他人演示空格的另一个问题。

我似乎记得有一种情况可能会出现,因为字段名称中包含空格(例如“Foo ID”)并且基于它的控件也称为“Foo ID”,因此您可以最终意外地引用了底层字段而不是控件。

例如,您将 Foo ID 从空更新为“hello world”,然后您需要在保存记录之前检查该值是否为 null;类似“me.[Foo ID]”返回 Null 而不是“Hello World”

如何复制这种意外行为?

(* - Lisp、Prolog 和 APL 不是命令式编程语言)

最佳答案

由于当您使用表单的默认控件属性(即 Me.Foo_ID)在代码中引用控件时,控件名称中不能包含空格,空格被下划线替换。 因此,在您的示例中, Me.Foo_ID 将引用 control,但 Me![Foo ID] 将引用 < em>底层字段。 (即使这个陈述在进一步考虑时也显得不正确:Me![Foo ID]几乎肯定指的是名为“Foo ID”的控件。)

正如 David Fenton 正确指出的那样,控件本身可以用空格命名。当引用时,可以在带有空格的代码中引用它,如下所示: Me.Controls("Foo ID")Me![Foo ID] 因为这些表单可以正确处理空间。但如果您想使用简写,则需要添加下划线:Me.Foo_ID

在这种情况下, Me.Foo_ID 将在保存记录之前返回“Hello World”(而表单为 Dirty),但是 Me ![Foo ID] 将返回 Null。

编辑:经过一些测试,我无法真正重现您所追求的奇怪行为(使用几种不同的组合)。

感谢 David Fenton 为我指点迷津(如果我还在某处,请告诉我)。

关于ms-access - 字段和控件名称中的空格引起的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5170985/

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