Bom dia a todos.
Preciso da ajuda urgente de vocês para não perder um projeto que me custou boas horas de trabalho.
Montei o código abaixo via Gravador de Macros para conexão a uma base SQL e modifiquei o código SQL para efetuar uma query específica por data de lançamento (campos marcados em vermelho).
O meu problema é que esse intervalo de datas está numa sheet do Excel e não consegui montar variáveis que alimentasse o código SQL.
Há alguma alternativa para isso?
With ActiveSheet.ListObjects.Add(SourceType:=0, Source:=Array( _
"OLEDB;Provider=SQLOLEDB.1;Password=xxxxxxxxxx;Persist Security Info=True;User ID=usrgf;Data Source=LPSCLSQLCORPSQLCORP;Use Procedure" _
, "for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=BRLPS0107N0832;Use Encryption for Data=False;Tag with column " _
, "collation when possible=False;Initial Catalog=DBGF"), Destination:=Range("$A$1")).QueryTable
.CommandType = xlCmdSql
.CommandText = Array("SELECT * FROM Livro_diario WHERE ldia_dat_lancto BETWEEN 41275-2 AND 41305-2 ORDER BY emps_cod, ldia_dat_lancto, ldia_num_arquiv")
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.SourceConnectionFile = _
"C:UsersrcnunesDocumentsMinhas fontes de dadosLPSCLSQLCORP_SQLCORP DBGF Livro_diario.odc"
.ListObject.DisplayName = _
"Tabela_LPSCLSQLCORP_SQLCORP_DBGF_Livro_diario_ano_corrente"
.Refresh BackgroundQuery:=False
End With
Obrigado a todos.
Rodrigo Nunes
Postado : 20/10/2014 5:56 am