Pesquisas em SQL
Por: Ric Sis • 6/6/2015 • Artigo • 1.116 Palavras (5 Páginas) • 147 Visualizações
Uma consulta para geração de relatório por SQL Access.
Private Sub cmdOpenReport2_Click()
On Error GoTo Err_cmdOpenReport2_Click
Dim stDocName As String
Dim vSQL As String
‘Valida as Datas
If Not IsNull(txtDtInicial) Then
If Not IsDate(txtDtInicial) Then
MsgBox "Data Inicial inválida", vbCritical, "Campos inválidos"
Exit Sub
End If
Else
vSQL = vSQL
End If
If Not IsNull(txtDtFinal) Then
If Not IsDate(txtDtFinal) Then
MsgBox "Data Final inválida", vbCritical, "Campos inválidos"
Exit Sub
End If
End If
If (Not IsNull(txtDtFinal) And IsNull(txtDtInicial)) Or (IsNull(txtDtFinal) And Not IsNull(txtDtInicial)) Then
MsgBox "Para períodos, é necessário o preenchimento das DUAS DATAS !", vbCritical, "Campos inválidos"
Exit Sub
End If
vSQL = "SELECT tabDepto.coddepto, tabDepto.nome, tabCorrida.datacorrida, " & _
"tabCorrida.numboleto, tabCorrida.pedagio, tabCorrida.itinerario, tabCorrida.passageiro, " & _
"tabMotorista.nomemotorista, tabCorrida.valorcorrida, tabCorrida.adicional, " & _
"Sum(tabCorrida.valorcorrida) AS tot, tabCorrida.horasaida, " & _
"tabCorrida.horachegada, tabCorrida.totalcorrida " & _
"FROM tabDepto INNER JOIN (tabMotorista INNER JOIN tabCorrida ON " & _
"tabMotorista.codmotorista = tabCorrida.motorista) ON " & _
"tabDepto.coddepto = tabCorrida.coddepto " & _
"GROUP BY tabDepto.coddepto, tabDepto.nome, tabCorrida.datacorrida, " & _
"tabCorrida.numboleto, tabCorrida.pedagio, tabCorrida.itinerario, tabCorrida.passageiro, " & _
"tabMotorista.nomemotorista, tabCorrida.valorcorrida, tabCorrida.adicional, tabCorrida.horasaida, " & _
"tabCorrida.horachegada, tabCorrida.totalcorrida, tabcorrida.corridapaga, tabcorrida.corridacancelada "
stDocName = "RLDeptoSylvioGeral"
DoCmd.OpenReport stDocName, acDesign
If Not IsNull(cbxDepto) And Not IsNull(txtDtInicial) And Not IsNull(txtDtFinal) Then
'Traz DEPARTAMENTO por período
vSQL = vSQL + "HAVING tabDepto.coddepto = " & cbxDepto & " AND tabCorrida.datacorrida " & _
"Between datevalue('" & txtDtInicial & "') And datevalue('" & txtDtFinal & "') " & _
"and ((tabcorrida.corridapaga = false) and (tabcorrida.corridacancelada=false)) " & _
"ORDER BY tabCorrida.datacorrida; "
Reports("RLDeptoSylvioGeral").RecordSource = vSQL
Reports("RLDeptoSylvioGeral").lblcabecalho2.Caption = "Período = " & txtDtInicial & " a " & txtDtFinal
DoCmd.OpenReport stDocName, acPreview
DoCmd.Save acReport, stDocName
Exit Sub
ElseIf Not IsNull(txtDtInicial) And Not IsNull(txtDtFinal) Then
'Traz todos os departamentos de um determinado período
vSQL = vSQL + "HAVING tabCorrida.datacorrida " & _
"Between datevalue('" & txtDtInicial & "') And datevalue('" & txtDtFinal & "') " & _
"and ((tabcorrida.corridapaga = false) and (tabcorrida.corridacancelada=false)) " & _
"ORDER BY tabCorrida.datacorrida; "
Reports("RLDeptoSylvioGeral").RecordSource = vSQL
...