我有一个组合框有3个值:“是,否,*”。 *旨在代表是和否选项。Microsoft访问查询与IIf
在名为service的字段的条件框内的查询中。 CompletedOn我已经放置了下面的IIf语句:
IIf([Forms]![serviceReportForm]![workcompletedDropdown] =“Yes”,([service]。[CompletedOn])不为空([service]。[ CompletedOn])是空)
我想确保在组合框中选择是时,显示任何包含完成的值的记录。如果选择no,则不显示,如果选择*,则显示所有记录。目前代码根本没有显示任何记录。您能否提一些建议?
SQL低于
SELECT customer.CustomerID,
customer.[Customer Name],
Equipment.Description,
Equipment.PurchaseID,
service.Date,
service.Fault,
service.JobNo,
service.costOfRepair,
service.ServiceID,
service.CompletedOn,
CalloutUrgency.CalloutDescription,
CalloutUrgency.CalloutUrgencyID,
service.AgentID,
agent.Serviceagentname,
supplier.supplierID,
supplier.supplierName,
Equipment.ManufacturerID,
Manufacturer.[Manufacturer Name]
FROM Manufacturer
INNER JOIN ((customer
INNER JOIN (supplier
INNER JOIN Equipment
ON supplier.supplierID = Equipment.SupplierID)
ON customer.CustomerID = Equipment.CustomerID)
INNER JOIN (agent
INNER JOIN (CalloutUrgency
INNER JOIN service
ON CalloutUrgency.CalloutUrgencyID = service.CalloutUrgencyID)
ON agent.AgentID = service.AgentID)
ON Equipment.EquipmentID = service.EquipmentID)
ON Manufacturer.ManufacturerID = Equipment.ManufacturerID
WHERE (((customer.[Customer Name]) Like [Forms]![ServiceReportForm]![houseDropdown])
AND ((service.Date) Between [Forms]![ServiceReportForm].[fromDate] And [Forms]![ServiceReportForm].[toDate])
AND ((service.CompletedOn)=IIf([Forms]![ServiceReportForm]![workcompletedDropdown]="Yes",Not Null,Null))
AND ((CalloutUrgency.CalloutDescription) Like [Forms]![ServiceReportForm]![urgencyDropdown])
AND ((agent.Serviceagentname) Like [Forms]![ServiceReportForm]![serviceagentDropdown])
AND ((supplier.supplierName) Like [Forms]![ServiceReportForm]![supplierDropdown]))
OR (((service.Date) Between [Forms]![ServiceReportForm].[fromDate] And [Forms]![ServiceReportForm].[toDate])
AND (([Forms]![ServiceReportForm])=" All"));
你能告诉你的完整的查询?它看起来像你正在试图使动态SQL,但iif不能像那样使用 – Brad
完整的查询?你的意思是所有其他领域和标准? – Simon
当然,这个查询比您所展示的还要多。有一个表和列的某个地方和一个完整的where子句。把这个问题放在这个问题上会非常有帮助。 – Brad