Página 1 de 1

Como usar células definir intervalos de datas instrução SQL

Enviado: 01 Fev 2017 às 09:02
por cyberlacs75
Amigos minha planilha de Excel esta conectada em uma base de dados MS SQL Server através do recurso Conexões que esta na Aba Dados

Como faço para inserir intervalos entre duas datas usando células do excel e elas intervirem em minha instrução sql

Na linha abaixo podemos perceber que esta fixa pegando informações do Mês e do Ano atual, gostaria de utilizar celulas do Excel para informar o intervalo de datas:
WHERE Usuario LIKE 'antonio@bb.com' AND MONTH(dbo.Trabalhos.Data) = MONTH(GETDATE()) AND YEAR(dbo.Trabalhos.Data) = YEAR(GETDATE())

SQL COMPLETO
Código: Selecionar todos
SELECT
dbo.Trabalhos.TrabalhoID,
dbo.Trabalhos.Data,
dbo.Trabalhos.HoraInicial,
dbo.Trabalhos.HoraFinal,
dbo.Trabalhos.QtdHoras,
dbo.Setores.Nome,
dbo.Trabalhos.Equipamento,
dbo.Trabalhos.Parada,
dbo.Trabalhos.Emergencia,
dbo.Trabalhos.Descricao
FROM dbo.Trabalhos 
INNER JOIN dbo.Setores 
ON dbo.Trabalhos.SetorID = dbo.Setores.SetorID
WHERE Usuario LIKE 'antonio@bb.com' AND MONTH(dbo.Trabalhos.Data) = MONTH(GETDATE()) AND YEAR(dbo.Trabalhos.Data) = YEAR(GETDATE())
ORDER BY dbo.Trabalhos.Data

Como usar células definir intervalos de datas instrução SQL

Enviado: 01 Fev 2017 às 10:50
por Feka
Creio que pelo recurso de conexões não será possível, mas daria para fazer pelo VBA.

Como usar células definir intervalos de datas instrução SQL

Enviado: 01 Fev 2017 às 13:52
por cyberlacs75
Amigo @Feka como poderia então fazer isto por VBA, você tem algum exemplo, para me mostrar fico no aguardo.

Obrigado

Re: Como usar células definir intervalos de datas instrução

Enviado: 01 Fev 2017 às 14:29
por Feka
Posso te fornecer um código padrão, mas se você não souber de VBA e SQL ficará meio díficil para você ajustar o código.

antes você tem que habilitar a referência : Microsoft activeX data objects 2.8
Código: Selecionar todos
Dim Banc As ADODB.Connection  
Dim tabe As ADODB.Recordset
Dim SQLL As String

Set Banc = New ADODB.Connection
Set tabe = New ADODB.Recordset

Banc.Open "Driver={SQL Server};Server=Servidor;Database=Banco;Uid=usuario; Pwd=senha"   'Aqui você altera com os dados do seu banco

SQLL = "select campos  from tabela " &  _
"where campo = " & plan2.range("a1") & " and campo2 = 0"	'Um exemplo de como encaixar um valor de uma célula no script do SQL

tabe.Open SQLL, Banc, adOpenStatic, adLockReadOnly

Plan1.Range("a1").CopyFromRecordset tabe   'Local do excel que receberá a consulta

Set Banc = Nothing 
Set tabe = Nothing