Vídeo recomendado
https://youtu.be/diWPPPhW-9E
https://youtu.be/diWPPPhW-9E
[Resolvido] Data em SQL
-
- Manda bem
- Mensagens: 173
- Registrado em: Qua Mai 17, 2017 2:27 pm
[Resolvido] Data em SQL
Pessoal
Estou fazendo uma busca em SQL de um banco de dado externo, mas estou com dificuldade para trabalhar com a data. Armazenei a data em uma variável, mas não consigo fazer o SQL reconhece. Algum me ajuda com essa data?
Segue código
Sheets("Caixa").Select
Columns("A:G").Select
Selection.Delete Shift:=xlToLeft
Range("A1").Select
Data_i = Sheets("Config").Range("B11").Value
Data_i2 = Format(Data_i, "dd-mm-yyyy") 'Data inicial
Data_f = Sheets("Config").Range("B12").Value
Data_f2 = Format(Data_f, "dd-mm-yyyy") 'Data final
With ActiveSheet.ListObjects.Add(SourceType:=0, Source:=Array(Array( _
"ODBC;DSN=Contabil;UID=USERX;;DatabaseName=Contabil;ServerName=srvContabil;AutoStop=YES;Integrated=NO;Encryption=NONE;CommLinks='TCP" _
), Array("IP{IP=XEMPRESA-server}';Description=Contabil")), Destination:=Range( _
"$A$1")).QueryTable
.CommandText = Array( _
"SELECT ctlancto.codi_emp, ctlancto.codi_lote, ctlancto.data_lan, ctlancto.cdeb_lan, ctlancto.ccre_lan, ctlancto.chis_lan, ctlancto.vlor_lan" & Chr(13) & "" & Chr(10) & "FROM bethadba.ctlancto ctlancto" & Chr(13) & "" & Chr(10) & "WHERE (ctlancto.codi_emp=3" _
, _
"92) AND (ctlancto.data_lan>= Data_i2 And ctlancto.data_lan<= Data_f2) AND (ctlancto.cdeb_lan=1)" & Chr(13) & "" & Chr(10) & "ORDER BY ctlancto.data_lan, ctlancto.codi_lote" _
)
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.ListObject.DisplayName = "Tabela_Consulta_de_Contabil6"
.Refresh BackgroundQuery:=False
End With
Range("Tabela_Consulta_de_Contabil6[[#Headers],[codi_emp]]").Select
Grato
Tov Elen Shau
Estou fazendo uma busca em SQL de um banco de dado externo, mas estou com dificuldade para trabalhar com a data. Armazenei a data em uma variável, mas não consigo fazer o SQL reconhece. Algum me ajuda com essa data?
Segue código
Sheets("Caixa").Select
Columns("A:G").Select
Selection.Delete Shift:=xlToLeft
Range("A1").Select
Data_i = Sheets("Config").Range("B11").Value
Data_i2 = Format(Data_i, "dd-mm-yyyy") 'Data inicial
Data_f = Sheets("Config").Range("B12").Value
Data_f2 = Format(Data_f, "dd-mm-yyyy") 'Data final
With ActiveSheet.ListObjects.Add(SourceType:=0, Source:=Array(Array( _
"ODBC;DSN=Contabil;UID=USERX;;DatabaseName=Contabil;ServerName=srvContabil;AutoStop=YES;Integrated=NO;Encryption=NONE;CommLinks='TCP" _
), Array("IP{IP=XEMPRESA-server}';Description=Contabil")), Destination:=Range( _
"$A$1")).QueryTable
.CommandText = Array( _
"SELECT ctlancto.codi_emp, ctlancto.codi_lote, ctlancto.data_lan, ctlancto.cdeb_lan, ctlancto.ccre_lan, ctlancto.chis_lan, ctlancto.vlor_lan" & Chr(13) & "" & Chr(10) & "FROM bethadba.ctlancto ctlancto" & Chr(13) & "" & Chr(10) & "WHERE (ctlancto.codi_emp=3" _
, _
"92) AND (ctlancto.data_lan>= Data_i2 And ctlancto.data_lan<= Data_f2) AND (ctlancto.cdeb_lan=1)" & Chr(13) & "" & Chr(10) & "ORDER BY ctlancto.data_lan, ctlancto.codi_lote" _
)
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.ListObject.DisplayName = "Tabela_Consulta_de_Contabil6"
.Refresh BackgroundQuery:=False
End With
Range("Tabela_Consulta_de_Contabil6[[#Headers],[codi_emp]]").Select
Grato
Tov Elen Shau
Editado pela última vez por Tov Elen Shau em Qua Ago 21, 2019 7:53 am, em um total de 1 vez.
Re: Data em SQL
Cada banco de dados reconhece datas de uma forma. Não consegui identificar qual está usando pela connection string.
-
- Manda bem
- Mensagens: 173
- Registrado em: Qua Mai 17, 2017 2:27 pm
Re: Data em SQL
Tomas, da maneira abaixo ele reconhece a data e faz a busca sem apresentar erros, entretanto eu preciso que a data seja alterada de acordo com a informada na célula.
Array( _
"SELECT ctlancto.codi_emp, ctlancto.codi_lote, ctlancto.data_lan, ctlancto.cdeb_lan, ctlancto.ccre_lan, ctlancto.chis_lan, ctlancto.vlor_lan" & Chr(13) & "" & Chr(10) & "FROM bethadba.ctlancto ctlancto" & Chr(13) & "" & Chr(10) & "WHERE (ctlancto.codi_emp=3" _
, _
"92) AND (ctlancto.data_lan>={d '2019-01-01'} And ctlancto.data_lan<={d '2019-01-15'}) AND (ctlancto.cdeb_lan=1)" & Chr(13) & "" & Chr(10) & "ORDER BY ctlancto.data_lan, ctlancto.codi_lote" _
)
Array( _
"SELECT ctlancto.codi_emp, ctlancto.codi_lote, ctlancto.data_lan, ctlancto.cdeb_lan, ctlancto.ccre_lan, ctlancto.chis_lan, ctlancto.vlor_lan" & Chr(13) & "" & Chr(10) & "FROM bethadba.ctlancto ctlancto" & Chr(13) & "" & Chr(10) & "WHERE (ctlancto.codi_emp=3" _
, _
"92) AND (ctlancto.data_lan>={d '2019-01-01'} And ctlancto.data_lan<={d '2019-01-15'}) AND (ctlancto.cdeb_lan=1)" & Chr(13) & "" & Chr(10) & "ORDER BY ctlancto.data_lan, ctlancto.codi_lote" _
)
- Reinaldo
- Jedi
- Mensagens: 1537
- Registrado em: Sex Ago 01, 2014 4:09 pm
- Localização: Garça - SP / SCS - SP
Re: Data em SQL
Experimente:
Formate sua variavel data como ano mes dia
Formate sua variavel data como ano mes dia
Código: Selecionar todos
Data_i = Sheets("Config").Range("B11").Value
Data_i2 = Format(Data_i, "yyyy-mm-dd") 'Data inicial
Data_f = Sheets("Config").Range("B12").Value
Data_f2 = Format(Data_f, "yyyy-mm-dd") 'Data final
inclua na query a variavel entre {d ' variavel'}
algo +/- assim:
[code]Array( _
"SELECT ctlancto.codi_emp, ctlancto.codi_lote, ctlancto.data_lan, ctlancto.cdeb_lan, ctlancto.ccre_lan, ctlancto.chis_lan, ctlancto.vlor_lan" & Chr(13) & "" & Chr(10) & "FROM bethadba.ctlancto ctlancto" & Chr(13) & "" & Chr(10) & "WHERE (ctlancto.codi_emp=3" _
, _
"92) AND (ctlancto.data_lan>={d '" & Data_i2 & "'} And ctlancto.data_lan<={d '" & Data_f2 & "'}) AND (ctlancto.cdeb_lan=1)" & Chr(13) & "" & Chr(10) & "ORDER BY ctlancto.data_lan, ctlancto.codi_lote" _
)
-
- Manda bem
- Mensagens: 173
- Registrado em: Qua Mai 17, 2017 2:27 pm
[Resolvido] Data em SQL
Agora deu certo!!! Valeu Tomás e Reinaldo. Eu tinha tentando opções bem próximas, mas não havia adiciona o & {d '" & Data_i2 & "'}. Vocês são tipo os Chuck Norris do VBA!
Grato
Tov Elen Shau
Grato
Tov Elen Shau