Ir ao conteúdo
  • Cadastre-se

Carlos Primo

Membro Júnior
  • Posts

    1
  • Cadastrado em

  • Última visita

Reputação

0
  1. Olá, fiz um código VBA Sql para consultar dados de uma tabela e atribuí os valores dos dados em 3 variveis, porém uma das váriaveis não funciona corretamente. Os dados desta variavel que não funciona possui letras e números, pois os dados da tabela referente a esta variavel possui letras e números. Quando coloco o valor direto dentro do select o código funciona, mas com variável não da certo. Também funciona quando retiro esta variável. No código o nome da variável é PREFIX O erro que aparece é esse: Run-time error '-2147217900 (80040e14)': [Microsoft][ODBC SQL Server Driver] Invalid column name 'Y18HW'. segue o código completo: Sub sb_RetornaConsulta() Application.ScreenUpdating = False Dim obj_Connection As New ADODB.Connection Dim obj_RecordSet As New ADODB.Recordset Dim str_SQL As String Dim str_PlanilhaDestino As String Dim str_ConnString As String Dim str_LinhaInicial As String Dim nr_coluna As Integer Dim Prefix As Variant Dim S_Inicia As Variant Dim S_Fina As Variant Prefix = frm_Serie.Pref.Value 'Valor do prefixo digitado no textbox da userform = Y18HW S_Inicia = frm_Serie.S_Inicial.Value 'Valor do Inicial digitado no textbox da userform = 177781 S_Fina = frm_Serie.S_Final.Value 'Valor do Final digitado no textbox da userform = 179780 str_PlanilhaDestino = "Resultado" str_ConnString = "Driver={SQL Server};server=NOME DO SERVER; Database=NOME DA BASE; UID=USUÁRIO;PWD=SENHA" str_LinhaInicial = 3 str_SQL = "SELECT TABELA.NRSerie AS Serie, TABELA.BancadaID AS Bancada, " & _ " TABELA.ResQn AS Qn, TABELA.ResQt AS Qt, " & _ " TABELA.ResQm AS Qm, TABELA.Data AS [Data Produção] " & _ " FROM TABELA " & _ " WHERE TABELA.Serie >= " & S_Inicia & " " & _ " AND TABELA.Serie <= " & S_Fina & " " & _ " AND TABELA.Prefixo = " & Prefix & " " & _ " ORDER BY TABELA.NRSerie DESC " ' Limpa dados Sheets(str_PlanilhaDestino).Select Cells.Select Selection.ClearContents Range("A1").Select ' Executa query no SQL obj_Connection.Open str_ConnString obj_RecordSet.Source = obj_Connection obj_RecordSet.Open str_SQL, obj_Connection ' Inclui cabeçalhos da query: For nr_coluna = 0 To obj_RecordSet.Fields.Count - 1 Worksheets(str_PlanilhaDestino).Cells(str_LinhaInicial, nr_coluna + 1).Value = obj_RecordSet.Fields(nr_coluna).Name Next ' Salva dados no Excel Sheets(str_PlanilhaDestino).Cells(CInt(str_LinhaInicial + 1), 1).CopyFromRecordset obj_RecordSet ' Finaliza conexão e objetos obj_RecordSet.Close obj_Connection.Close Set obj_RecordSet = Nothing Set obj_Connection = Nothing Application.ScreenUpdating = True frm_Serie.Hide End Sub Na TABELA que faz a consulta existem as seguintes colunas: NRSerie, Serie, Prefixo, BancadaID, Fucnionário, ResQn, ResQt, ResQm, Data, No entanto, preciso das colunas: NRSerie, BancadaID, ResQn, ResQt, ResQm, Data, A coluna NRSerie é a junção da coluna Prefixo + Coluna Serie. Quando faço a consulta, tenho as informações de Prefixo e Serie, porém existe uma sequencia numérica da Serie, onde tenho a Serie inicial e final.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...