Rocky Smolin
rockysmolin at bchacc.com
Mon Nov 16 13:08:27 CST 2009
Dear List:
I have a query in code as a SQL statement which I use to open a recordset in
DAO. It retrieves 16 records but it should retrieve 20. I display this SQL
text on the calling form so I can cut it and paste it into the SQL view of a
query and run it there. When I run it as a query it retrieves all 20
records. The four missing records from the DAO recordset are the ones where
the field fldUSRHeaderAdjustment is TRUE.
Question is why the records retrieved would differ when using the same
string to open a DAO recordset and pasting the SQL into a query_
Here*s the SQL
strSQL = "SELECT tblLicensee.fldLicenseeID, tblLicensee.fldLicenseeName, " _
& "tblUSRDetail.fldUSRDetailQuantity, tblUSRDetail.fldUSRDetailShipDate,
" _
& "tblUSRHeader.fldUSRHeaderShipmentYear,
tblUSRHeader.fldUSRHeaderShipmentQuarter, " _
& "tblUSRHeader.fldUSRHeaderAdjustment,
tblUSRHeader.fldUSRHeaderReportingQuarter, " _
& "tblUSRHeader.fldUSRHeaderReportingYear,
Trim(Str([fldUSRHeaderShipmentYear])) & " _
& "Trim(Str([fldUSRHeaderShipmentQuarter])) AS ShipYearQuarter FROM
tblUSRHeader " _
& "INNER JOIN ((tblLicensee INNER JOIN tblProduct ON
tblLicensee.fldLicenseeID = " _
& "tblProduct.fldLicenseeID) INNER JOIN tblUSRDetail ON
tblProduct.fldProductID = " _
& "tblUSRDetail.fldProductID) ON tblUSRHeader.fldUSRHeaderID = " _
& "tblUSRDetail.fldUSRHeaderID WHERE (((tblLicensee.fldLicenseeName)
Like '" _
& Me.txtCDLIHScenarioPrefix & "*') AND
((Trim(Str([fldUSRHeaderShipmentYear])) & " _
& "Trim(Str([fldUSRHeaderShipmentQuarter])))<='" & Me.cboShipmentYear _
& Me.cboShipmentQuarter & "') AND
((tblProduct.fldProductCDLInvoiceEligible)=True) AND " _
& "((tblUSRHeader.fldUSRHeaderDeleteFlag)=False) AND " _
& "((tblUSRDetail.fldUSRDetailDeleteFlag)=False)) ORDER BY
tblLicensee.fldLicenseeName, " _
& "tblUSRHeader.fldUSRHeaderShipmentYear,
tblUSRHeader.fldUSRHeaderShipmentQuarter, " _
& "tblUSRHeader.fldUSRHeaderAdjustment DESC ,
Trim(Str([fldUSRHeaderShipmentYear])) & " _
& "Trim(Str([fldUSRHeaderShipmentQuarter]));"
in the code. And here it is cut from the text box and pasted into a query
SELECT tblLicensee.fldLicenseeID, tblLicensee.fldLicenseeName,
tblUSRDetail.fldUSRDetailQuantity, tblUSRDetail.fldUSRDetailShipDate,
tblUSRHeader.fldUSRHeaderShipmentYear,
tblUSRHeader.fldUSRHeaderShipmentQuarter,
tblUSRHeader.fldUSRHeaderAdjustment,
tblUSRHeader.fldUSRHeaderReportingQuarter,
tblUSRHeader.fldUSRHeaderReportingYear,
Trim(Str([fldUSRHeaderShipmentYear])) &
Trim(Str([fldUSRHeaderShipmentQuarter])) AS ShipYearQuarter FROM
tblUSRHeader INNER JOIN ((tblLicensee INNER JOIN tblProduct ON
tblLicensee.fldLicenseeID = tblProduct.fldLicenseeID) INNER JOIN
tblUSRDetail ON tblProduct.fldProductID = tblUSRDetail.fldProductID) ON
tblUSRHeader.fldUSRHeaderID = tblUSRDetail.fldUSRHeaderID WHERE
(((tblLicensee.fldLicenseeName) Like 'C7-*') AND
((Trim(Str([fldUSRHeaderShipmentYear])) &
Trim(Str([fldUSRHeaderShipmentQuarter])))<='20104') AND
((tblProduct.fldProductCDLInvoiceEligible)=True) AND
((tblUSRHeader.fldUSRHeaderDeleteFlag)=False) AND
((tblUSRDetail.fldUSRDetailDeleteFlag)=False)) ORDER BY
tblLicensee.fldLicenseeName, tblUSRHeader.fldUSRHeaderShipmentYear,
tblUSRHeader.fldUSRHeaderShipmentQuarter,
tblUSRHeader.fldUSRHeaderAdjustment DESC ,
Trim(Str([fldUSRHeaderShipmentYear])) &
Trim(Str([fldUSRHeaderShipmentQuarter]));
MTIA,
Rocky