#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. Извините, пропустил, что формат месяца был для полного имени. Отредактированный ответ.