|
Postada em 26/11/2007 16:04 hs
Olá, pessoal, estou com uma dúvida cruel. Quero realizar uma pesquisa de notas fiscais por período, portanto digito uma data inicial e uma final e o VB me mostra o resultado entre as datas. Acontece que no Access estes dados estão gravados como texto e não data. Como consigo fazer isso? Uso o Between? Creio já ter visto alguma coisa desse tipo mas não me recordo mais. Se alguém puder me ajudar, agradeço.
|
|
|
|
|
Postada em 26/11/2007 16:16 hs
PERCI, Tente isso : [EMISSAO] Between #" & Format(DataIni.Text, "mm/dd/yyyy") & "# And #" & Format(DataFim.Text, "mm-dd-yyyy") & "#)" EMISSÃO = AO CAMPO DA DATA DE EMISSÃO DA NOTA QQ COISA ME AVISE. Que DEUS nos ajude....
|
|
|
|
Postada em 26/11/2007 16:38 hs
Tentei assim: sqlnotas = "Select * From Notas Where emissao Between #" & Format(TxtInicio.Text, "mm/dd/yyyy") & "# And #" & Format(TxtFinal.Text, "mm/dd/yyyy") & "#" mas não deu certo. Se eu pesquisar a data inicial 30/12/2007 e final 08/01/2008, aparece na lista, registros com emissao 15/12/2007 , 17/12/2007, 15/01/2008. Por que será?
|
|
|
|
Postada em 26/11/2007 20:28 hs
Perci, não sei se pode ser seu caso, mas em muitas de minhas rotinas, esta forma funciona bem melhor com variavel tipo String, no formato de data "yyyy/mm/dd", tente assim Dim sINICIO As String Dim sFINAL As String sINICIO = "#" & Format$(TxtInicio.text, "yyyy/mm/dd") & "#" sFINAL = "#" & fORMAT$(tXTfINAL, "yyyy/mm/dd") & "#" sqlnotas = "Select * From Notas Where emissao Between " & sINICIO & " And " & sFINAL Funcionará bem, testei. vlu//
|
|
|
Perci
|
MATÃO SP - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 27/11/2007 08:45 hs
LCRamos, assim eu também não consegui. Aqui está a rotina do projeto que realiza esse procedimento. Se puder, analise e me indique onde estou errando, por favor. A ação é quando eu teclo ENTER no Txtfinal, OK? Ou talvez seja melhor alterar no BD o campo emissao para DATA ao invés de TEXTO? Private Sub TxtFinal_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = vbKeyReturn Then KeyAscii = 0 Dim sINICIO As String Dim sFINAL As String sINICIO = "#" & Format$(TxtInicio.Text, "yyyy/mm/dd") & "#" sFINAL = "#" & Format$(TxtFinal, "yyyy/mm/dd") & "#" sqlnotas = "Select * From Notas Where emissao Between " & sINICIO & " And " & sFINAL Set rsnotas = db.OpenRecordset(sqlnotas) While Not rsnotas.EOF Set linha = ListConsulta.ListItems.Add(, , Format(rsnotas("numero"), "000000")) linha.SubItems(1) = "" & rsnotas("codcli") linha.SubItems(2) = "" & rsnotas("emissao") linha.SubItems(3) = "" & Format$(Format$(rsnotas("valor"), "###,##0.00"), "@@@@@@@@@@") rsnotas.MoveNext Wend End If End Sub
Obrigado pela ajuda
|
|
|
Perci
|
MATÃO SP - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 27/11/2007 09:34 hs
Ok, amigos, eu achei a solução mais viável alterar no BD o formato do campo para data, assim eu consegui o que eu queria e é menos complicado. Valeu.
|
|
|
|