Sending email using a query based on a value from a subform produces error
access 2010 vba
I'm trying to send an email in the body of outlook. adding the results from a query.
The query is based on an ID in the subform.
the code is working fine on just a regular query. without "WHERE" clause.
Set MyDB = CurrentDb
Set rst = MyDB.OpenRecordset("Query_FOR_HTML")
But when using the following query. I get an error " too few parameters expected 1"
Trying to use value from subform field RBP_MASTER_ID
SELECT dbo_t_pricing_escalation_detail.RBP_MASTER_ID, dbo_t_pricing_escalation_detail.SKU, dbo_t_pricing_escalation_detail.QTY, dbo_t_pricing_escalation_detail.TARGET_PRICE, dbo_t_pricing_escalation_detail.TARGET_GP
FROM dbo_t_pricing_escalation_detail
WHERE (((dbo_t_pricing_escalation_detail.RBP_MASTER_ID)=[Forms]![Main]![dbo_t_pricing_escalation_detail_subform]![RBP_MASTER_ID]));
Dim MyDB As DAO.DatabaseDim rst As DAO.RecordsetSet MyDB = CurrentDbSet rst = MyDB.OpenRecordset("Query_FOR_HTML")With rst Do While Not .EOF Mailbody = Mailbody & ![RBP_MASTER_ID] & " | " & ![Sku] & " | " & ![Qty] & " | " & ![TARGET_PRICE] & vbCrLf .MoveNext LoopEnd WithDim appOutLook As Outlook.Application Dim MailOutLook As Outlook.MailItem Dim strPath As String Dim strFileName As String Set appOutLook = CreateObject("Outlook.Application") Set MailOutLook = appOutLook.CreateItem(olMailItem) With MailOutLook .BodyFormat = olFormatRichText .To = "xxxell@xxxxxger.com" '.CC = "" '.bcc = "" .Subject = "Testing" & Date .Body = "UK Backorder Report " & vbCrLf & " " & vbCrLf & Mailbody .SendEnd Withrst.CloseSet rst = Nothing MsgBox "done"
the first part of the parameters statement is saying "item not found in this collection".
so i change it to:
qd.Parameters("dbo_t_pricing_escalation_detail.RBP_MASTER_ID"), but still did not like it ?
Thanks
fordraiders
Fordraiders
ASKER
tried this also :
qd.Parameters![RBP_MASTER_ID] = [Forms]![Main]![dbo_t_pricing_escalation_detail_subform]![RBP_MASTER_ID]
pat, just curious, trying your suggestion now...but may try a different approach: looping directly in subform and getting the data.
Dim dQuery As String
Dim rs As DAO.Recordset
Set rs = Me![dbo_t_redbook_pricing_escalation_detail_subform].Form.RecordsetClone
With rs
Do While Not .EOF
Mailbody = Mailbody & rs![Sku].Value & vbTab & rs![Qty].Value & vbTab & rs![TARGET_PRICE].Value & vbCrLf
Loop
Open in new window