Я получаю ошибку 3061 Слишком мало параметров. Ожидаемый 1 - PullRequest
0 голосов
/ 06 июля 2018

Я попытался добавить скобки к моим указанным параметрам, чтобы показать, что они являются отдельными, но я все еще получаю ошибку, я проверил все "&", но безрезультатно. Вот код Заранее спасибо.

Option Compare Database

Public Function SendMail()

Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim emailTo As String
Dim emailSubject As String
Dim emailText As String

Dim outApp As Outlook.Application
Dim outMail As Outlook.MailItem
Dim outlookStarted As Boolean


On Error Resume Next
Set outApp = GetObject("Outlook.Application")
On Error GoTo 0
If outApp Is Nothing Then
Set outApp = CreateObject("Outlook.Application")
outlookStarted = True
End If

Set db = CurrentDb
            strSQL = "SELECT DATE, COMPANY, CUSTOMER, EMAIL, FUP, [SAMPLES 
REQUESTED]" & _
                        " FROM Sample Query WHERE DATE = Date()"
Set rs = db.OpenRecordset(strSQL, dbOpenDynaset)
Do Until rs.EOF

emailTo = rs.Fields("EMAIL").Value

emailSubject = "Proposal Follow Up"
If IsNull(rs.Fields("COMPANY").Value) Then
    emailSubject = emailSubject & " for " & _
                    rs.Fields("COMPANY").Value & " " & 
rs.Fields("CUSTOMER").Value
End If

emailText = Trim("Hello " & rs.Fields("COMPANY").Value) & "!" & vbCrLf


emailText = emailText & _
            "Hello, " & rs.Fields("Name").Value & _
            rs.Fields("CUSTOMER").Value & " ordered " & rs.Fields("SAMPLES 
REQUESTED").Value & _
            " on " & rs.Fields("Date").Value & " its been about a month. A 
follow up would be good about now."

Set outMail = outApp.CreateItem(olMailItem)
outMail.To = emailTo
outMail.Subject = emailSubject
outMail.Body = emailText
outMail.Send

                rs.Edit
                rs("FUP") = Now()
                rs.Update


rs.MoveNext
Loop

rs.Close
Set rs = Nothing
Set db = Nothing

If outlookStarted Then
outApp.Quit
End If

Set outMail = Nothing
Set outApp = Nothing
End Function

Ответы [ 2 ]

0 голосов
/ 06 июля 2018

Дата является защищенным словом в Access. Если вам нужно использовать это точное имя поля, поместите его в скобки, как подсказывает Густав. Вы также можете переименовать поле, например TheDate или DateStart .

Вот полный список защищенных слов:

https://support.microsoft.com/en-us/help/286335/list-of-reserved-words-in-access-2002-and-in-later-versions-of-access

0 голосов
/ 06 июля 2018

Вы пропустите скобки вокруг зарезервированного слова Дата :

strSQL = "SELECT [DATE], COMPANY, CUSTOMER, EMAIL, FUP, [SAMPLES REQUESTED]" & _
         " FROM [Sample Query] WHERE [DATE] = Date()"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...