VBA code can construct SQL statements.
Action SQL statements (UPDATE, INSERT, DELETE) can be executed from VBA. Example: CurrentDb.Execute "DELETE FROM tablename"
SELECT statement can be used to set recordset object and then VBA can manipulate the recordset. A very simple example:
Code:
Sub SendEmail()
Dim rs As DAO.Recordset
Set rs = CurrentDb.OpenRecordset("SELECT EmailAddress, FirstName, LastName FROM Contacts")
While Not rs.EOF
DoCmd.SendObject acSendNoObject, , , rs!EmailAddress, , , "Subject Here", "Dear " & rs!FirstName & vbCrLf & " some text here"
Wend
End Sub
So far, I don't understand why you feel VBA is even needed for your requirement.
Are you familiar with domain aggregate functions?