从 Libre Base 中的数据库自动填充表单字段的简单方法是什么?

问题描述 投票:0回答:1

我正在 LibreBase (v7.5.4) 中为图书馆创建一个采购管理系统,到目前为止,我的情况如下: 名为 BooksDB 的表,其中包含字段

  1. 入藏号(数字类型)(也是主键)
  2. 标题(VARCHAR类型)
  3. 其他信息等

另一个名为 AcqSys 的表包含字段

  1. 获取 ID (主键)
  2. 收购日期
  3. 获取自
  4. 订单金额
  5. 其他信息等

另一个名为 AcqEnt 的表包含字段

  1. AcqUEID(主键)
  2. 入藏号(数字型)
  3. 标题(VARCHAR类型)
  4. 书籍费用
  5. 获取ID
  6. 其他信息等

表单frmAcqSys由两张表组成(主表单=AcqSys,子表单=AcqEnt,通过Acq ID链接关系,认为一个AcqID应包含各种AcqEntries)

现在,根据在 AcqEnt 子表单中输入的 Accession No,我希望 AcqEnt.Title 自动填充/从 BooksDB 表中获取 BooksDB 中相应 Title 的数据,以获得相同的 入藏号(AcqEnt.Title 根据 AcqEnt.Acession No = BooksDB.Accession No 获取 BooksDB.Title)。

我无法在文本字段中将数据类型更改为 SQL,因此我在子窗体 AcqEnt 中使用 AcqEnt.Title 的 ListBox,并使用以下 SQL:

SELECT "Title", "Title" FROM "tblBDB" WHERE "Accession No" = "AcqEnt.Accession No"

SELECT "Title", "Title" FROM "tblBDB" WHERE "Accession No" = 'AcqEnt.Accession No'

他们返回以下错误:

SQL Status: S0022
Error code: -28

Column not found: AcqEnt.Accession No in statement [SELECT "Title", "Title" FROM "tblBDB" WHERE "Accession No" = "AcqEnt.Accession No"]

我该怎么做?有没有更好/更有效的方法来实现输出?

sql database libreoffice libreoffice-base
1个回答
0
投票

您需要联接两个表,以便可以访问两个表中的所有列。

您还需要将表名添加到不明确的列名中

SELECT "tblBDB.Title", "AcqEnt.Title" 
FROM "tblBDB"  
JOIN "AcqEnt" ON "tblBDB.Accession No" = "AcqEnt.Accession No"
© www.soinside.com 2019 - 2024. All rights reserved.