Para generar el archivo:
Si estás utilizando ADO puedes utilizar el método GetString del objeto Recordset y una función para guardar el archivo:
Set MiRecordset = MiConexion.Execute("SELECT * FROM MiTabla")
StringToFile MiRecordset.GetString("",vbCrLF),App.Path & "\" & "MiArchivo.txt"
Public Function StringToFile(StringText As String, FileName As String) As Long
Dim hlngFile As Long
hlngFile = FreeFile
Open FileName For Binary Access Write As hlngFile
Put hlngFile, , StringText
Close hlngFile
StringToFile = FileLen(FileName)
End Function
Para enviarlo por correo:
Puedes utilizar MAPI. En http://my.execpc.com/~dg/tutorial/howmapi/howmapi.htm tienes un pequeño tutorial.
También puedes utilizar SMTP, fijate en http://www.freevbcode.com/ShowCode.Asp?ID=109
que tienes un ejemplo.