我正在 LibreBase (v7.5.4) 中为图书馆创建一个采购管理系统,到目前为止,我的情况如下: 名为 BooksDB 的表,其中包含字段
另一个名为 AcqSys 的表包含字段
另一个名为 AcqEnt 的表包含字段
表单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"]
我该怎么做?有没有更好/更有效的方法来实现输出?
您需要联接两个表,以便可以访问两个表中的所有列。
您还需要将表名添加到不明确的列名中
SELECT "tblBDB.Title", "AcqEnt.Title"
FROM "tblBDB"
JOIN "AcqEnt" ON "tblBDB.Accession No" = "AcqEnt.Accession No"