Amigos,
Tenho um formulário contínuo. No seu cabeçalho existem dois campos não acoplados, no formato Data Abreviada.
Um campo é uma Data Inicial e o outro Data Final, que correspondem a um período que o usuário deseja pesquisar.
O nome destes campos é txtDataInicial e txtDataFinal.
Quando estes campos recebem o foco, coloquei o código "DoCmd.RunCommand acCmdShowDatePicker". O calendário aparece beleza e podemos selecionar as datas pelo DatePicker.
Depois que estes campos são preenchidos, existe um botão que faz a consulta do período desejado. A pesquisa é feita a uma Tabela que também possui um campo Data, com data abreviada. Só que ao clicar neste botão aparece a mensagem "Erro em tempo de execução '13'. Tipos Incompatíveis."
Alugém poderia me esclarecer como resolver esse erro, visto que todos os campos envolvidos estão no formato Data Abreviada e o Mostrar Selecionador de Datas está "Para Datas".
Segue abaixo o código do botão:
Private Sub Cmd_NovaConsulta_Click()
Dim Rst As Recordset
Set Rst = CurrentDb.OpenRecordset("SELECT * FROM TabGeral WHERE DataViagem between #" & Format(TxtDataInicial, "mm-dd-yyyy") & "# and #" & Format(TxtDataFinal, "mm-dd-yyyy") & "# ORDER BY DataViagem, HoradoServiço, CodigoCargo, Cod;")
If Rst.EOF Then
RtlPeriodo.Caption = "ATENÇÃO!"
rtlDatas.Caption = "NÃO HÁ REGISTROS PARA O PERÍODO PESQUISADO."
RecordSource = "SELECT * FROM TabGeral WHERE DataViagem between #" & Format(TxtDataInicial, "mm-dd-yyyy") & "# and #" & Format(TxtDataFinal, "mm-dd-yyyy") & "# ORDER BY DataViagem, HoradoServiço, CodigoCargo, Cod;"
DoCmd.RefreshRecord
Else
If Not IsDate(TxtDataInicial) Or Not IsDate(TxtDataFinal) Then
MsgBox "Os campos Data inicial e a Data final devem ser preenchidos.", , "Falta de data"
TxtDataInicial.SetFocus
ElseIf CDate(TxtDataInicial) > CDate(TxtDataFinal) Then
MsgBox "A data inicial não pode ser posterior à data final.", , "Datas erradas"
Else
CopiaDataInicial.Caption = TxtDataInicial
CopiaDataFinal.Caption = TxtDataFinal
RtlPeriodo.Caption = "PERÍODO CONSULTADO:"
rtlDatas.Caption = "" & TxtDataInicial & " a " & TxtDataFinal & ""
RecordSource = "SELECT * FROM TabGeral WHERE DataViagem between #" & Format(TxtDataInicial, "mm-dd-yyyy") & "# and #" & Format(TxtDataFinal, "mm-dd-yyyy") & "# ORDER BY DataViagem, HoradoServiço, CodigoCargo, Cod;"
Me.Requery
TxtDataInicial.Value = ""
TxtDataFinal.Value = ""
Cmd_NovaConsulta.SetFocus
End If
End If
End Sub
Obrigado.
Sander
Tenho um formulário contínuo. No seu cabeçalho existem dois campos não acoplados, no formato Data Abreviada.
Um campo é uma Data Inicial e o outro Data Final, que correspondem a um período que o usuário deseja pesquisar.
O nome destes campos é txtDataInicial e txtDataFinal.
Quando estes campos recebem o foco, coloquei o código "DoCmd.RunCommand acCmdShowDatePicker". O calendário aparece beleza e podemos selecionar as datas pelo DatePicker.
Depois que estes campos são preenchidos, existe um botão que faz a consulta do período desejado. A pesquisa é feita a uma Tabela que também possui um campo Data, com data abreviada. Só que ao clicar neste botão aparece a mensagem "Erro em tempo de execução '13'. Tipos Incompatíveis."
Alugém poderia me esclarecer como resolver esse erro, visto que todos os campos envolvidos estão no formato Data Abreviada e o Mostrar Selecionador de Datas está "Para Datas".
Segue abaixo o código do botão:
Private Sub Cmd_NovaConsulta_Click()
Dim Rst As Recordset
Set Rst = CurrentDb.OpenRecordset("SELECT * FROM TabGeral WHERE DataViagem between #" & Format(TxtDataInicial, "mm-dd-yyyy") & "# and #" & Format(TxtDataFinal, "mm-dd-yyyy") & "# ORDER BY DataViagem, HoradoServiço, CodigoCargo, Cod;")
If Rst.EOF Then
RtlPeriodo.Caption = "ATENÇÃO!"
rtlDatas.Caption = "NÃO HÁ REGISTROS PARA O PERÍODO PESQUISADO."
RecordSource = "SELECT * FROM TabGeral WHERE DataViagem between #" & Format(TxtDataInicial, "mm-dd-yyyy") & "# and #" & Format(TxtDataFinal, "mm-dd-yyyy") & "# ORDER BY DataViagem, HoradoServiço, CodigoCargo, Cod;"
DoCmd.RefreshRecord
Else
If Not IsDate(TxtDataInicial) Or Not IsDate(TxtDataFinal) Then
MsgBox "Os campos Data inicial e a Data final devem ser preenchidos.", , "Falta de data"
TxtDataInicial.SetFocus
ElseIf CDate(TxtDataInicial) > CDate(TxtDataFinal) Then
MsgBox "A data inicial não pode ser posterior à data final.", , "Datas erradas"
Else
CopiaDataInicial.Caption = TxtDataInicial
CopiaDataFinal.Caption = TxtDataFinal
RtlPeriodo.Caption = "PERÍODO CONSULTADO:"
rtlDatas.Caption = "" & TxtDataInicial & " a " & TxtDataFinal & ""
RecordSource = "SELECT * FROM TabGeral WHERE DataViagem between #" & Format(TxtDataInicial, "mm-dd-yyyy") & "# and #" & Format(TxtDataFinal, "mm-dd-yyyy") & "# ORDER BY DataViagem, HoradoServiço, CodigoCargo, Cod;"
Me.Requery
TxtDataInicial.Value = ""
TxtDataFinal.Value = ""
Cmd_NovaConsulta.SetFocus
End If
End If
End Sub
Obrigado.
Sander