Hi. I have a loop that was written for me by some outstanding programmers here (willakawill and killer42). It works great if I only select one record to check for duplicates. The user can pick on one form, 13 areas they want to schedule use on and on another form they do the same and can select all 9 areas. When they select multiple areas to schedule, my application goes into an infinite loop and keeps displaying the conflicts found dialog until I end task the program. Also, the start/stop date can span many days. Any help would be greatly appreciated. Here is the code
Code:
Dim db As ADODB.Connection
Set db = New ADODB.Connection
db.CursorLocation = adUseClient
db.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Scheduling\AAGTC_Scheduling.mdb;"
Dim adoprimaryrs1 As ADODB.Recordset
Dim adoprimaryrs2 As ADODB.Recordset
Set adoprimaryrs1 = New ADODB.Recordset
Set adoprimaryrs2 = New ADODB.Recordset
Dim SchedStart As Date
SchedStart = DateValue(frmGlobalForecast.txtDate_In.Text) + TimeValue(frmGlobalForecast.txtTime_In.Text)
Dim SchedEnd As Date
SchedEnd = DateValue(frmGlobalForecast.txtDate_Out.Text) + TimeValue(frmGlobalForecast.txtTime_Out.Text)
'SQL select statement
strSQL = "SELECT ForecastTable.Flight_Schedule, ForecastTable.Ground_Schedule, ForecastTable.Impact_AREAS_Used, " & _
"ForecastTable.Land_Management_AREA_Used, ForecastTable.Environmental_Flight, ForecastTable.Land_Management_Area_Closures, " & _
"ForecastTable.Document_ID, ForecastTable.Date_In, ForecastTable.Time_in, ForecastTable.Date_Out, ForecastTable.Time_Out, " & _
"DateValue([Date_In])+TimeValue([Time_In]) AS DateTime_In, " & _
"DateValue([Date_Out])+TimeValue([Time_Out]) AS DateTime_Out " & _
"FROM ForecastTable " & _
"WHERE (((DateValue([Date_In])+TimeValue([Time_In]))<=#" & _
Format(SchedEnd, "mm/dd/yyyy hh:nn") & _
"#) AND ((DateValue([Date_Out])+TimeValue([Time_Out]))>=#" & _
Format(SchedStart, "mm/dd/yyyy hh:nn") & "#));"
Dim AllAREAS As String
Dim AllAreas1 As String
Dim AllAreas2 As String
Dim AllAreas3 As String
'Execute the first SQL statement to find conflicts, if any exist
adoprimaryrs1.Open strSQL, db, adOpenStatic, adLockOptimistic
If adoprimaryrs1!Impact_Areas_Used <> "" Then
AREAS = adoprimaryrs1!Impact_Areas_Used
End If
If adoprimaryrs1!Land_Management_Area_Used <> "" Then
AREAS1 = adoprimaryrs1!Land_Management_Area_Used
End If
If adoprimaryrs1!Environmental_Flight <> "" Then
AREAS2 = adoprimaryrs1!Environmental_Flight
End If
If adoprimaryrs1!Land_Management_Area_Closures <> "" Then
AREAS3 = adoprimaryrs1!Land_Management_Area_Closures
End If
AllAREAS = AREAS & AREAS1 & txtLandMgmtAreaForecast.Text & txtSelectImpactArea.Text & AREAS2 & AREAS3
Dim OuterLoop As Long
Dim InnerLoop As Long
Dim ar As Variant
ar = Split(AllAREAS, " ")
For OuterLoop = 0 To UBound(ar) - 1
For InnerLoop = OuterLoop + 1 To UBound(ar)
If StrComp(ar(OuterLoop), ar(InnerLoop)) = 0 Then
'we have a duplicate so name it
frmGlobalForecast.CheckAREA = 1
MsgBox "The Land Management AREA(s) and/or Impact AREA(s) " _
& " " & ar(OuterLoop) _
& " have already been scheduled for training use" _
, vbOKOnly, "Conflicting Schedule"
End If
Next InnerLoop
Next OuterLoop
Comment