Hi everyone!
I'm getting an error that I can't figure out...here's my code...i'm trying to reference the first sqlStatement from the second sqlStatement and run the second sqlStatement. Am I doing it correctly?
The error is..."The Microsoft Jet database engine could not find the input table or query 'records'. Make sure that it exists and that its name is spelled correctly."
The error is on the DoCmd.RunSQL "sqlStateme nt2 line
[CODE=VB]Public Function CheckOutagesFor Review()
Dim sqlStatement1 As String
Dim sqlStatement2 As String
Dim records As Recordset
Dim dbs_curr As Database
Set dbs_curr = CurrentDb
'Get all Outages with chkOutage = True and group them by CaseNum
sqlStatement1 = "SELECT tblOutages.Case Number, Count(tblOutage s.RefNumber) AS CountOfRefNumbe r, Sum(tblOutages. CMI) AS SumOfCMI, tblOutages.chkO utages FROM tblOutages GROUP BY tblOutages.Case Number, tblOutages.chkO utages HAVING (((tblOutages.c hkOutages)=True ));"
Set records = dbs_curr.OpenRe cordset(sqlStat ement1, dbOpenDynaset, dbSeeChanges, dbOptimistic)
'Mark the outages that do not meet the criteria (Tree Growth (Cause = 38), Substation lock out (Swicth = FeederNumber),
'or CaseNum CMI >= 25,000) as Printed = True, Status = Reviewed, and Findings = "Outage did not meet minimum requirements for review"
sqlStatement2 = "UPDATE tblOutages SET tblOutages.Prin ted = True, tblOutages.Stat us = 4, tblOutages.Find ings = ""Outage did not meet minimum requirements for review"", tblOutages.chkO utages = False WHERE (((tblOutages.c hkOutages)=True ) AND ((tblOutages.Ca seNumber) In (SELECT CaseNumber FROM records WHERE records.CaseNum ber=tblOutages. CaseNumber)) AND ((tblOutages.CM I)<25000)) OR (((tblOutages.c hkOutages)=True ) AND ((tblOutages.Ca seNumber) In (SELECT CaseNumber FROM records WHERE records.CaseNum ber=tblOutages. CaseNumber)) AND ((tblOutages.Fe ederNumber)<>[tblOutages].[Switch])) OR (((tblOutages.c hkOutages)=True ) AND ((tblOutages.Ca seNumber) In (SELECT CaseNumber FROM records WHERE records.CaseNum ber=tblOutages. CaseNumber)) AND ((tblOutages.Ca use)<>38));"
DoCmd.SetWarnin gs False
DoCmd.RunSQL sqlStatement2
DoCmd.SetWarnin gs True
records.Close
End Function[/CODE]
I'm getting an error that I can't figure out...here's my code...i'm trying to reference the first sqlStatement from the second sqlStatement and run the second sqlStatement. Am I doing it correctly?
The error is..."The Microsoft Jet database engine could not find the input table or query 'records'. Make sure that it exists and that its name is spelled correctly."
The error is on the DoCmd.RunSQL "sqlStateme nt2 line
[CODE=VB]Public Function CheckOutagesFor Review()
Dim sqlStatement1 As String
Dim sqlStatement2 As String
Dim records As Recordset
Dim dbs_curr As Database
Set dbs_curr = CurrentDb
'Get all Outages with chkOutage = True and group them by CaseNum
sqlStatement1 = "SELECT tblOutages.Case Number, Count(tblOutage s.RefNumber) AS CountOfRefNumbe r, Sum(tblOutages. CMI) AS SumOfCMI, tblOutages.chkO utages FROM tblOutages GROUP BY tblOutages.Case Number, tblOutages.chkO utages HAVING (((tblOutages.c hkOutages)=True ));"
Set records = dbs_curr.OpenRe cordset(sqlStat ement1, dbOpenDynaset, dbSeeChanges, dbOptimistic)
'Mark the outages that do not meet the criteria (Tree Growth (Cause = 38), Substation lock out (Swicth = FeederNumber),
'or CaseNum CMI >= 25,000) as Printed = True, Status = Reviewed, and Findings = "Outage did not meet minimum requirements for review"
sqlStatement2 = "UPDATE tblOutages SET tblOutages.Prin ted = True, tblOutages.Stat us = 4, tblOutages.Find ings = ""Outage did not meet minimum requirements for review"", tblOutages.chkO utages = False WHERE (((tblOutages.c hkOutages)=True ) AND ((tblOutages.Ca seNumber) In (SELECT CaseNumber FROM records WHERE records.CaseNum ber=tblOutages. CaseNumber)) AND ((tblOutages.CM I)<25000)) OR (((tblOutages.c hkOutages)=True ) AND ((tblOutages.Ca seNumber) In (SELECT CaseNumber FROM records WHERE records.CaseNum ber=tblOutages. CaseNumber)) AND ((tblOutages.Fe ederNumber)<>[tblOutages].[Switch])) OR (((tblOutages.c hkOutages)=True ) AND ((tblOutages.Ca seNumber) In (SELECT CaseNumber FROM records WHERE records.CaseNum ber=tblOutages. CaseNumber)) AND ((tblOutages.Ca use)<>38));"
DoCmd.SetWarnin gs False
DoCmd.RunSQL sqlStatement2
DoCmd.SetWarnin gs True
records.Close
End Function[/CODE]
Comment