I got the help to create a Calendar from the YouTube "Creating A Calendar - Introduction - MS Access VBA Intermediate Tutorials"
I modified the information according the Database I created.
The modified LoadArray is as follows:
Private Sub LoadArray()
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim rsFiltered As DAO.Recordset
Dim strSQL As String
Dim i As Integer
strSQL = "SELECT tblSeason.Season, tblCenter.CenterName, tblOperation.Operation, tblVariety.VtyName, Sum([tblKpsPurchase]![KpsLoosePurQtl]+[tblKpsPurchase]![KpsPackedPurQtl]) AS TotalKps, " _
& "tblKpsPurchase.DtOfPurchase, DateNo([DtOfPurchase]) AS DateNumber, " _
& "DLookUp('[LintBudget]','[tblMarketAndBudget]','DateNo([DtOfMkt])=' & DateNo([DtOfPurchase]) & 'And[Center_ID]=' & [CenterID] & 'And[Variety_ID]=' & [VtyID]) AS LintPC, " _
& "DLookUp('[SdRtBudget]','[tblMarketAndBudget]','DateNo([DtOfMkt])=' & DateNo([DtOfPurchase]) & 'And[Center_ID]=' & [CenterID] & 'And[Variety_ID]=' & [VtyID]) AS BudSdRt, " _
& "SdSaleDaysAvgRate([CenterID],[VtyID],DateNo([DtOfPurchase])) AS DaysSeedAVrate, " _
& "tblCenter.CenterID, tblHeap.Operation_ID, tblVariety.VtyID " _
& "FROM tblOperation INNER JOIN (tblVariety INNER JOIN (tblSeason INNER JOIN ((tblCenter INNER JOIN tblHeap ON tblCenter.CenterID = tblHeap.Center_ID) " _
& "INNER JOIN tblKpsPurchase ON tblHeap.HeapID = tblKpsPurchase.Heap_ID) ON tblSeason.SeasonID = tblHeap.Season_ID) ON tblVariety.VtyID = tblHeap.Variety_ID) " _
& "ON tblOperation.OperationID = tblHeap.Operation_ID " _
& "GROUP BY tblSeason.Season, tblCenter.CenterName, tblOperation.Operation, tblVariety.VtyName, tblKpsPurchase.DtOfPurchase, DateNo([DtOfPurchase]), " _
& "DLookUp('[LintBudget]','[tblMarketAndBudget]','DateNo([DtOfMkt])=' & DateNo([DtOfPurchase]) & 'And[Center_ID]=' & [CenterID] & 'And[Variety_ID]=' & [VtyID]), " _
& "DLookUp('[SdRtBudget]','[tblMarketAndBudget]','DateNo([DtOfMkt])=' & DateNo([DtOfPurchase]) & 'And[Center_ID]=' & [CenterID] & 'And[Variety_ID]=' & [VtyID]), tblCenter.CenterID, tblHeap.Operation_ID, tblVariety.VtyID " _
& "ORDER BY tblKpsPurchase.DtOfPurchase; "
Set db = CurrentDb
Set rs = db.OpenRecordset(strSQL)
If Not rs.BOF And Not rs.EOF Then 'This line ensures that the recordset is populated
For i = LBound(myArray) To UBound(myArray) 'Loops through the Array using dates for the filter
If myArray(i, 1) Then
rs.Filter = "[DtOfPurchase]=" & myArray(i, 0) & "" 'Filter recordset with array dates
Set rsFiltered = rs.OpenRecordset 'Open up new recordset based on filter
Do While (Not rsFiltered.EOF) 'Loop through new recordset
'Adds text to the 3rd column of the array
myArray(i, 2) = myArray(i, 2) & vbNewLine _
& "Oper: " & rsFiltered!Operation & vbCrLf _
& "Cent: " & rsFiltered!centerName & vbCrLf _
& rsFiltered!VtyName & ": " _
& rsFiltered!TotalKps & " Qtl" & vbCrLf _
& "Bud Li%: " & rsFiltered!LintPC & vbCrLf _
& "Bud Sd Rt: " & rsFiltered!BudSdRt & vbCrLf _
& "Avg Sd Rt: " & rsFiltered!DaysSeedAVrate
rsFiltered.MoveNext
Loop
End If
Next i
End If
rsFiltered.Close
rs.Close
Set rsFiltered = Nothing
Set rs = Nothing
Set db = Nothing
End Sub
What I need is to create a ComboBox named "Centre" on the Form to select the CenterID and the Calendar should display the information only for the Center selected. I need to know how the strSQL should written with WHERE or HAVING Clause.
Thanks.