所以我在工作中陷入了困境。我得到了这张表“IP”。它与另一个表有关系。为了查看实体的“真实姓名”,我创建了一个查询。
查看我的 IP 表查询图片 --> 主机/主机名
我想创建一个表单来编辑tbl_IP
. 在这种形式中,我想显示主机的相关名称,以便查看我正在查看的 IP。
但是,当我基于此查询创建表单时,我可以看到信息但无法对其进行编辑。
我想这与查询与另一个表有关系这一事实有关。但在这一点上,我的经验还不够。
有人可以解释如何做到这一点吗?
提前致谢。
所以我在工作中陷入了困境。我得到了这张表“IP”。它与另一个表有关系。为了查看实体的“真实姓名”,我创建了一个查询。
查看我的 IP 表查询图片 --> 主机/主机名
我想创建一个表单来编辑tbl_IP
. 在这种形式中,我想显示主机的相关名称,以便查看我正在查看的 IP。
但是,当我基于此查询创建表单时,我可以看到信息但无法对其进行编辑。
我想这与查询与另一个表有关系这一事实有关。但在这一点上,我的经验还不够。
有人可以解释如何做到这一点吗?
提前致谢。
我认为一个例子值一千字。下载这个例子,我希望它是你想要的。
使用这个
我认为你可以四处看看它的其余部分是如何构建的。
插入表格控件后,您需要右键单击要更改的字段Host ID
并Port ID
从数字字段更改为列表框字段。
(请注意,组合框不能在 LO 中用于此操作,因为它们仅在单个字段上操作,您需要两个字段,一个 ID 和对该 ID 的人类可读引用。在 Access 中,组合框或列表框将工作。)
我特意让主机查找使用查询,端口查找使用 SLQ,因此您可以看到两种最常见的获取下拉列表的方法。
有时 SQL 更好,有时 Query 更好,这取决于你在做什么。如果您的表格是这样布置的,您可以直接使用表格进行下拉,即 field1=显示的文本或值,field2=ID 键,按此顺序。但作为一项规则,我喜欢将我的 Key ID 作为我所有表中的第一个字段,所以永远不要使用这种方法。
此外,我将表与左或右连接而不是内连接相关联。我几乎从不使用内连接,因为当用于在查询中链接两个表时,如果其中一个表丢失,它会隐藏两个表中的记录,而不是将丢失的数据显示为我更喜欢的空容器。
多年来我制定的其他未要求的一般设计技巧,我希望你会考虑:
我发现以复数形式命名表和以单数形式命名记录,并仔细坚持这一点,这是最有意义的,例如IPs
表(包含多个 IP 记录),并且IP ID
, 是表示或指向特定记录的整数。有时像 Data 这样的词是没有“s”的复数形式,因此您将使用 Datum 来表示记录,而使用 Data 来表示表格。
我认为给指针和目标提供完全相同的名称是最有帮助的,尤其是当您的数据库增长并且对于什么指向什么存在混淆时。保持两个名称相同更简单,并且更防弹。换句话说,使用Host ID
在主表中命名的字段,这指向Host ID
在查找表中命名的字段。(其他人称之为外键查找,但我从来没有发现这个名字很有帮助)。
而且我总是尝试使用以“ID”为后缀的表名本身来命名主键,而不是使用其他单词或文本字符串。这样,当我查看 ID 时,我可以确定它与哪个表相关联。因此,例如,如果表名为Hosts
,则主键始终为Host ID
(不是Hosts ID
因为那将是复数,而实际上 ID 仅指一条记录,而不是所有记录)。例如,IP ID
,或者IP_ID
你喜欢两者都可以正常工作。我发现IP ID
(带有空格)更容易阅读和输入,因为它允许使用多个单词的更复杂的名称,例如Word1 word2 word3 ID
. 空格比下划线更容易输入。但这假设您必须引用所有标识符,我总是这样做,但并不总是需要。我喜欢严格遵守这样的一些基本规则。
希望这对您有所帮助。