Форумы HiProg.com - MS ACCESS, VBA, VB

 

Ответить на сообщение

Вернуться к теме

Вы отвечаете на сообщение:

ник: dimonicss
Уже голову всю сломал, не пойму почему не работает.
Есть форма "ОтчетыПоЗаказам", в ней Список "ВыборВодителя", источник строк:

SELECT Водители.Водитель
FROM Водители
ORDER BY Водители.Водитель;

При выборе одной из записей жмем кнопку "Просмотр" или кнопку "Печать" - должен открыться отчет по Водителю. Если ни одной из строк не выбрано должен открыться отчет по всем Водителям.
Вот код закрепленный за формой.

Option Compare Database
Option Explicit

Sub ПечатьОтчетов(PrintMode As Integer)
On Error GoTo Err_Просмотр_Click
Dim strWhereCategory As String
strWhereCategory = "Водитель = [forms]![ОтчетыПоЗаказам]![ВыборВодителя]"

If IsNull([Data1]) Or IsNull([Data1]) Then
MsgBox "Необходимо ввести начальную и конечную даты."
DoCmd.GoToControl "Data1"
Exit Sub
Else
If [Data1] > [Data2] Then
MsgBox "Конечная дата должна превосходить начальную дату."
DoCmd.GoToControl "Data2"
Exit Sub
Else
Me.Visible = False
End If
End If
Select Case Me!ВыборТипа
Case 1
If IsNull(Forms![ОтчетыПоЗаказам]!ВыборВодителя) Then
DoCmd.OpenReport "ОтчетВодители", PrintMode
Else
DoCmd.OpenReport "ОтчетВодители", PrintMode, , strWhereCategory
End If
Case 2
DoCmd.OpenReport "ОтчетДиспетчера", PrintMode
Case 3
DoCmd.OpenReport "СлужебныеОтчеты", PrintMode
End Select
DoCmd.Close acForm, "ОтчетыПоЗаказам"

Exit_Просмотр_Click:
Exit Sub

Err_Просмотр_Click:
Resume Exit_Просмотр_Click

Private Sub Отмена_Click()

On Error GoTo Err_Отмена_Click

DoCmd.Close

Exit_Отмена_Click:
Exit Sub

Err_Отмена_Click:
MsgBox Err.Description
Resume Exit_Отмена_Click

End Sub

Private Sub Просмотр_Click()

ПечатьОтчетов acPreview

End Sub

Private Sub Печать_Click()

ПечатьОтчетов acNormal

End Sub

Private Sub ВыборТипа_AfterUpdate()

Const conSalesByCategory = 1

If Me!ВыборТипа.Value = conSalesByCategory Then
Me!ВыборВодителя.Enabled = True
Else
Me!ВыборВодителя.Enabled = False
End If

End Sub


Отчет открывается на основании запроса

SELECT Водители.Водитель, Заказы.ДатаПринятияЗак, [ГородОткудаЗак]+" "+[УлицаОткудаЗак]+" "+[ДомПодъездОткудаЗак] AS Откуда, [ГородКудаЗак]+" "+[РайонКудаЗак] AS Куда, Заказы.КоличПассЗак AS Чел, Заказы.ФормаНачЗак AS Форма, Заказы.ДиспетчерЗак AS Диспетчер
FROM Водители INNER JOIN Заказы ON Водители.Позывной = Заказы.ВодительЗак
WHERE (((Заказы.ДатаПринятияЗак)>=[forms]![ОтчетыПоЗаказам]![Data1] And (Заказы.ДатаПринятияЗак)<[forms]![ОтчетыПоЗаказам]![Data2]) AND ((Заказы.ПринятиеЗаказаЗак)=True) AND ((Заказы.ВыполнениеЗаказаЗак)=True))
ORDER BY Водители.Водитель, Заказы.ДатаПринятияЗак;

И при открытии запроса Водитель не передается из Формы в Отчет.
То ли здесь
DoCmd.OpenReport "ОтчетВодители", PrintMode, , strWhereCategory
что не так, то ли еще где.


Ваше имя:

Пароль:

Цитировать: [quote][/quote] Код: [code][/code]
Жирный: [b][/b] Наклонный: [i][/i]
URL: [url][/url] 

Сообщение:

 Размер файла не более 50 Кбт. Большие файлы можно размещать на www.slil.ru

Прикрепить:

 

Для вставки смайлов в текст щелкните по значку.