これは Access 2010 にあり、VBA の経験や知識はほとんどありません。
私のフォーム (frmEmailLookup) には、コンボ ボックスとリスト ボックス、およびサブフォームが設定されているため、ユーザーが cmbBuilding から建物を選択すると、フォームの残りの部分に、最大 4 人分の連絡先メール アドレスを含む、その建物に関するデータが入力されます。建物内の人々 (lstBuildingRepEmail1、lstBuildingRepEmail2、lstBuildingRepEmail3、lstBuildingRepEmail4)。サブフォーム (qryBuildingAreaLookup) からのクエリを添付ファイルとして電子メールを生成するには、ボタン (butEmailRecords) が必要です。何かを閉じるマクロを設定できますが、動的な電子メール アドレスは使用できません。ユーザーが更新を行うためにプログラムに深く入り込む必要はありません。
どんな助けでも大歓迎です。私は、多くのコード作成の助けを求めていることを知っています。
これが私が試したことです:
Option Compare Database
Private Sub butEmailRecords_Click()
Dim outputFileName As String
outputFileName = CurrentProject.Path & "\BuildingInventory" & ".xlsx"
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "qryBuildingAreaLookup", outputFileName, True
On Error GoTo Error_Handler
Dim objOutlook As Outlook.Application
Dim objEmail As Outlook.MailItem
Set objOutlook = CreateObject("Outlook.application")
Set objEmail = objOutlook.CreateItem(olMailItem)
Dim rs As DAO.Recordset
Set rs = CurrentDb.OpenRecordset("qryBuildinAreaLookup")
With rs
With objEmail
.To = tblBuilding.BuildingRep1
.To = tblBuilding.BuildingRep2
.To = tblBuilding.BuildingRep3
.To = tblBuilding.BuildingRep4
.Subject = "Look at this sample attachment"
.body = "The body doesn't matter, just the attachment"
.Attachments.Add "L:\Administration\FacilityInventoryDatabase\BuildingInventory.xls x"
.Send
'.ReadReceiptRequested
End With
Exit_Here:
Set objOutlook = Nothing
Exit Sub
Error_Handler:
MsgBox Err & ": " & Err.Description
Resume Exit_Here
End Sub