Your data structure does not make it easy - if you had a query header, then child records for the availability it would be muche easier.The only way to do this is to create an SQL string on the fly, then use this as the source of a recordset - you can then apply the recordset as the recordsource of a form or report - this is off the top of the my headDim strSQL AS StringstrSQL = "SELECT [Avail Query].[First Name], [Avail Query].[Last Name], [Avail Query].[Home Phone], [Avail Query].[Mon am], [Avail Query].[Mon pm], [Avail Query].[Mon eve], [Avail Query].[Tue am], [Avail Query].[Tue pm], [Avail Query].[Tue eve] {and so on} FROM [Avail Query] WHERE ((([Avail Query].[" & me.cmbSelection & "])=Yes));"SET Me.Recordsource = strSQLMe.Requery