我的Access数据库中有两个外部链接的表。表格tblBatches
包含PO
和LineItem
的两个单独字段,例如
Batch PO LI
1234567 4101234567 1
1234568 4101234567 4
1234569 4107654321 13
...
我有另一个表格tblWIP
,其中包含字段PO-LineItem
,例如:
PO-LI Date
4101234567-01 1/1/2016
4101234567-04 7/7/2016
4107654321-13 12/30/2016
...
所有字段都存储为ShortText
。
由于这些表已链接到外部Excel文件,因此我创建了一个查询qryBatchByPO-LI
,以使用以下表达式处理来自PO
的{{1}}和LI
字段:
tblBatches
我想运行一个查询,它将批处理和日期从我的中间查询中的PO LI链接出来,但它似乎没有正常工作。
即,在订单项小于10时,它似乎没有链接(因此第一个表中只有一个数字)。
因此,基于上述示例的查询只会返回:
PO LI: [Purchasing Document]+"-"+Format([Purch# Doc: Item No#],"00")
我尝试过以下几种方式修改我的表达方式,包括:
Batch PO-LI Date
1234569 4107654321-13 12/30/2016
我甚至尝试通过拆分和重新加入字符串来处理第二个表中的PO LI: [Purchasing Document]+"-"+IIF(len([Purch# Doc: Item No#])<2,"0"+[Purch# Doc: Item No#],[Purch# Doc: Item No#])
字段,以尝试确保所有内容都存储为字符串,但没有运气。在所有情况下,我的中间查询的结果看起来都是正确的,但任何订单项&lt; 10都没有出现在我的最终查询中。
我不知道为什么这些项目没有出现,在我看来,PO-LI
中的PO LI表达最终看起来与qryBatchByPO-LI
字段中的PO-LI
字段相匹配{1}}。任何帮助将不胜感激:/
我使用设计视图构建了查询,但SQL代码最终结束:
tblWIP
答案 0 :(得分:1)
使用此SQL构建查询;
SELECT tblBatches.BatchID, tblBatches.PO, tblBatches.LI, [PO] & '-' & IIf(Len([LI])<2,'0' & [LI],[LI]) AS PO-LI FROM tblBatches;
然后将此查询保存为qdfOne。然后构建另一个查询并链接到表tblWIP,如下所示;
INNER JOIN qdfOne ON tblWIP.PO-LI = qdfOne.PO-LI
当我这样做时,我会将所有订单项返回1,4&amp; 13。
不同之处在于使用&#39;&amp;&#39;连接字符串。使用&#39; +&#39;最终可以将字符串视为数字,以便&#39; 01&#39; (字符串)成为&#39; 1&#39; (数字)。