Esqueceu sua senha? Você pode usar o mecanismo de lembrete neste link: Recuperar senha

Você receberá um link de reativação no email cadastrado.

Não recebeu o email? Lembre-se checar o Lixo Eletrônico.

[Resolvido] Data em SQL

Fórum para dúvidas sobre os fundamentos da linguagem de programação Visual Basic no contexto do VBA
Tov Elen Shau
Manda bem
Manda bem
Mensagens: 144
Registrado em: Qua Mai 17, 2017 2:27 pm

[Resolvido] Data em SQL

Mensagem por Tov Elen Shau » Ter Ago 20, 2019 2:14 pm

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
Editado pela última vez por Tov Elen Shau em Qua Ago 21, 2019 7:53 am, em um total de 1 vez.



Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Avatar do usuário
webmaster
Administrador
Mensagens: 2608
Registrado em: Sex Jul 24, 2009 2:44 pm
Contato:

Re: Data em SQL

Mensagem por webmaster » Ter Ago 20, 2019 4:20 pm

Cada banco de dados reconhece datas de uma forma. Não consegui identificar qual está usando pela connection string.


Tomás
https://www.tomasvasquez.com.br/blog
https://www.tomasvasquez.com.br/cursocsharp
https://twitter.com/tomamais
Se sua dúvida foi solucionada, acrescente [RESOLVIDO] ao título.

Tov Elen Shau
Manda bem
Manda bem
Mensagens: 144
Registrado em: Qua Mai 17, 2017 2:27 pm

Re: Data em SQL

Mensagem por Tov Elen Shau » Ter Ago 20, 2019 4:25 pm

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" _
)



Avatar do usuário
Reinaldo
Jedi
Jedi
Mensagens: 1205
Registrado em: Sex Ago 01, 2014 4:09 pm
Localização: Garça - SP / SCS - SP

Re: Data em SQL

Mensagem por Reinaldo » Ter Ago 20, 2019 10:16 pm

Experimente:
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" _
)


Reinaldo
Gostou da resposta?:?: :oops: :D :mrgreen:

Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Tov Elen Shau
Manda bem
Manda bem
Mensagens: 144
Registrado em: Qua Mai 17, 2017 2:27 pm

[Resolvido] Data em SQL

Mensagem por Tov Elen Shau » Qua Ago 21, 2019 7:51 am

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



Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Responder