gant charts can be fairly easily created using a crosstab query and conditional formatting. All depends on the size of units (days/weeks/months) and the number required. A crosstab has a limit of 255 columns
you need to create a table of dates which will form your column headings. This can be done with a query but for illustration purposes, a table will do
tblDates
CalDate
1/1/2021
2/1/2021
...
...
31/12/2021
you will need to modify your existing query, or start again to have a query result of something like
qryMilestones
project...milestone...startDT......endDT
A...........feasibiity...1/1/2021...23/1/2021
A...........conceptual..5/2/2021...9/2/2021
etc
then create a new query (qry1) to list all the dates which are 'occupied'
Code:
SELECT DISTINCT project, milestone, calDate as Evt
FROM tblDates, qryMilesones
WHERE calDate BETWEEN stDate and endDT
you should then be able to create a crosstab from this query by left joining tblDates to it
Code:
TRANSFORM First(milestone) as FirstM
SELECT project
FROM tblDates LEFT JOIN qry1 ON tblDates.calDate=qry1.Evt
WHERE calDate BETWEEN #2021-01-01# AND #2021-03-01#
GROUP BY project
PIVOT calDate
where project is the rowheader, calDate the column header, and milestone the (first) value. The WHERE clause you will need to limit the number of columns to a mximum of 254 (1 is used for project)
To show this in a form, you will need to specify headers -so generally easier to build this in VBA
Once you have your headers you can create your form or report. Use conditional formatting to colour the control back and fore depending on the value of firstM
Anyway, that is one way to do it, other may suggest alternatives