Запрос MS Access vba с форматом даты

#vba #ms-access

#vba #ms-access

Вопрос:

Я пытаюсь создать запрос для подсчета элементов и выполнения трех условий WHERE, но при запуске кода результата нет, даже ошибки. Что я делаю не так?

 Private Sub Command5_Click()
Dim db As DAO.Database
Set db = CurrentDb
Dim qdf As DAO.QueryDef
Dim qryMajorDesignReview As String
Dim tblMainReportLOI As String


qryMajorDesignReview = "SELECT Count(tblLOI.loiActivities) As MajorDesignReview, INTO tblMainReportLOI FROM tblLOI " amp; _
                   "WHERE tblLOI.loiActivities='PSG Major design review for new or existing facilities' " amp; _
                   "AND Format([loiDate], ""yyyy"")=[Forms]![frmMonthlyDivisionReports]![txtYear] " amp; _
                   "AND Format([loiDate], ""mmmm"")=[Forms]![frmMonthlyDivisionReports]![txtMonth]; "

On Error Resume Next
DoCmd.DeleteObject acTable, "tblMainReportLOI"

Err.Clear

CurrentDb.Execute qryMajorDesignReview
If Err.Number <> 0 Then
strError = Err.Description
End If

On Error GoTo 0
End Sub
  

Ответ №1:

Уберите запятую перед INTO. Кроме того, необходимо объединить переменные. Ссылки на элементы управления формой являются переменными. Вместо двойных кавычек в Format() можно использовать апостроф. Можно было бы использовать функцию Year () вместо Format.

 qryMajorDesignReview = "SELECT Count(tblLOI.loiActivities) As MajorDesignReview INTO tblMainReportLOI FROM tblLOI " amp; _
                   "WHERE tblLOI.loiActivities='PSG Major design review for new or existing facilities' " amp; _
                   "AND Year([loiDate])=" amp; [Forms]![frmMonthlyDivisionReports]![txtYear] amp; _
                   " AND Format([loiDate], 'mmmm')='" amp; [Forms]![frmMonthlyDivisionReports]![txtMonth] amp; "'"
  

Комментарии:

1. Текстовые версии месяца, мммм, также должны быть заключены в кавычки.

2. Сделал это, у меня все еще нет результатов, таблица не создается при запуске кода. Форма с элементами управления данными открыта

3. Он отлично работает без формата, но мне нужны эти условия для запроса, год и месяц из формы

4. Извините, пропустил, что формат месяца был для полного имени. Отредактированный ответ.