我有一個問題系統,用戶可以打開票並在其中輸入他們的評論。這些表是SQL鏈接表。訪問 - 對象變量或未設置塊
我試圖通過添加一個按鈕來實現自動獲取電子郵件的內容。
基本上,它將進入Outlook中的特定文件夾「Pendings」並獲取所有未標記爲「已複製」的電子郵件。
這是代碼。
Public Sub myinbox()
Dim TempRst As DAO.Recordset
Dim Olapp As Outlook.Application
Dim Inbox As Outlook.MAPIFolder
Dim InboxItems As Outlook.Items
Dim Mailobject As Object
Dim db As DAO.Database
Dim Olfolder As Outlook.MAPIFolder
'MsgBox "It will take some time. So, Hang On!"
Set db = CurrentDb
Set Olapp = CreateObject("Outlook.Application")
Set Inbox = Olapp.GetNamespace("Mapi").GetFolderFromID("000000001A447390AA6611CD9BC800AA002FC45A03003683A021347CC54C82688B880BB383EC000000B95F710000") ' working folder ID
'
Set InboxItems = Inbox.Items
Set TempRst = CurrentDb.OpenRecordset("working") ' Table
For Each Mailobject In InboxItems
'If Mailobject.UnRead Then
If Mailobject.Categories <> "Copied" Then
With TempRst
.AddNew
!Title = Mailobject.Subject
' !From = Mailobject.SenderName
' !To = Mailobject.To
' !Body = Mailobject.Body
!OpenedDate = Mailobject.ReceivedTime
'!email = Mailobject.SenderEmailAddress
!OpenedBy = "Group1"
!Priority = "(2) Normal"
!Status = "Pending"
.Update
Mailobject.Categories = "Copied"
Mailobject.Save
Mailobject.UnRead = False
End With
End If
Next
Set Olapp = Nothing
Set Inbox = Nothing
Set InboxItems = Nothing
Set Mailobject = Nothing
Set TempRst = Nothing
MsgBox "Emails updated successfully"
End Sub
上述代碼與本地表(我本地測試,而不鏈接到SQL)正常工作。但是,當我試圖運行與鏈接的SQL表相同的代碼。我收到此錯誤:
Error : "Object variable or with block not set"
在這一行:
Set TempRst = CurrentDb.OpenRecordset("working")
如果「working」是數據庫中的現有表,我很難想象這條線會如何拋出此錯誤。既然你指定了一個db變量,你應該使用'Set TempRst = db.OpenRecordset(「working」)',但這可能不會有所作爲。 – Andre
P.S.這是實際的代碼,是否重現了問題?見[mcve] – Andre
@Andre非常感謝您的回覆。 工作是數據庫中的表格。我有我的本地(不鏈接表)中的虛擬數據庫,上面的代碼工作正常。但是,當我在SQL鏈接表上運行相同的代碼時,該錯誤正在拋出。 我有「設置TempRst = db.OpenRecordset(」工作「),仍然得到相同的錯誤 – rocky09