LibreOffice Base表单通过查询编辑表

时间:2017-04-10 10:27:11

标签: mysql libreoffice-base

所以我坚持工作的一点。 我得到了这张桌子“IP”。 它与另一个表有关系。 为了查看实体的“真实姓名”,我创建了一个查询。

查看我的IP表查询图片 - >主机/主机名

我想创建一个表单来编辑tbl_IP中的条目。 在这种形式中,我想显示主机的相关名称,以便查看我正在查看的IP。

但是当我根据此查询创建表单时,我可以看到该信息但无法编辑它。

我想这是因为查询与另一个表有关系。 但此时我的经验不足。

有人可以解释一下如何做到这一点吗?

提前致谢。

1 个答案:

答案 0 :(得分:0)

我认为一个例子胜过千言万语。下载example,我希望这是你想要的。

enter image description here

使用此

enter image description here

你可以四处寻找,看看其余部分是如何构建的。

插入表格控件后,您需要右键单击字段,将Host IDPort ID从数字字段更改为列表框字段。

(请注意,在LO中不能使用组合框,因为它们只在单个字段上运行,并且您需要两个字段,一个ID以及对该ID的人类可读引用。在Access中,无论是组合还是列表框将起作用。)

我故意让Hosts查找使用查询,端口查找使用SLQ,这样您就可以看到获取下拉列表的两种最常用方法。

有时候SQL更好,有时候查询会更好,这取决于你正在做什么。如果您的表格布局正确,您可以直接使用该表格进行下拉,即field1 =显示的文本或值,field2 = ID键,按此顺序。但作为一项规则,我喜欢将我的密钥ID作为我所有表中的第一个字段,所以永远不要使用这种方法。

此外,我将表与左或右连接相关联,而不是内连接。我几乎从不使用内连接,因为当用于链接查询中的两个表时,它会隐藏两个表中的记录(如果缺少),而不是将缺少的数据显示为我喜欢的空容器。

我多年来一直在研究的其他一般性设计技巧,我希望你能考虑一下:

  • 我找到了复数形式的命名表,并以单数形式记录,并仔细地坚持这一点,这是最有意义的,例如: IPs表(包含多个IP记录)和IP ID是表示或指向特定记录的整数。有时像数据这样的单词是复数而没有's',所以你将使用Datum作为记录和数据表。

  • 我认为给出完全相同名称的指针和目标是最有帮助的,特别是当您的数据库增长时,对于什么指向什么存在混淆。保持两个名称相同,更具弹性,更简单。换句话说,在主表中使用名为Host ID的字段,这指向查找表中名为Host ID的字段。 (其他人称之为外键查找,但我从未发现该名称非常有用)。

  • 我总是尝试使用以“ID”为后缀的表名称来命名主键,而不是其他单词或文本字符串。这样,当我查看ID时,我知道它确定与哪个表相关联。因此,例如,如果表名为Hosts,则主键始终为Host ID(不是Hosts ID,因为这将是复数,而实际上ID仅指一条记录,不是所有的记录)。例如,您的IP IDIP_ID都可以正常工作。我发现IP ID(带空格)更容易读取和输入,因为它允许更复杂的名称和多个单词,如Word1 word2 word3 ID。空格比下划线更容易打字。但是这假设您必须引用所有标识符,我总是这样做,但并不总是需要。我喜欢严格遵守这样的一些基本规则。

希望这会对你有所帮助。