如何自动填写LibreOffice Base中表格的字段?

时间:2015-08-05 10:44:07

标签: libreoffice libreoffice-basic libreoffice-base

我有一个包含手机表的数据库。让我们说每部手机都有10个领域。为了填写或修改表格,我将为用户提供多种表格。但是,我不希望用户每次都修改所有10个字段。我希望他只提供有关4个字段的信息,其余部分将由程序自动填写或修改。有人知道怎么做吗? :)

1 个答案:

答案 0 :(得分:0)

虽然可能使用触发器,宏或其他编码,但通常不好的数据库实践是将计算字段或重复数据存储在表中。相关数据应该通过表之间的关系存储并显示在查询中,而不是直接在表中。

因此,如果每个商店只销售一种颜色的手机,那么用户只能进入商店。你会有另一张表显示商店名称和手机颜色之间的关系。然后,当你想要一个用户列表和他们的手机颜色时,你会写一个查询,查看用户的表格列表以及他们购买手机的位置,并将其加入商店列表以及他们销售的颜色。

我的建议有三个层次:

  • 几乎肯定是最好的 - 重新设计您的数据库以使其更加规范化,这意味着使用表之间的关系来防止需要重复数据。
  • 如果您决定需要宏,那么使用OpenOffice宏的好资源是Andrew Pitonyak的书OpenOffice Macros Explained(可以从他的网站免费下载)。
  • SQL触发器通常是一种更简洁的方法(与宏相比),但是作为Base默认的旧数据库引擎不支持。 (Base本身只处理查询,表单和报告。这些表由独立的软件处理,默认情况下是HyperSQL数据库的旧版本1.8或者#B;嵌入"在Base内部的HSQLDB。)你需要升级到更新的数据库软件。升级到HSQLDB 2.3的说明在此主题中:[Tutorial] Splitting an "embedded HSQL database"