Ir para conteúdo

Carlos Primo

Members
  • Total de itens

    1
  • Registro em

  • Última visita

Tudo que Carlos Primo postou

  1. Olá, fiz um código VBA Sql para consultar dados de uma tabela e atribuí os valores dos dados em 3 variveis, porem 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: 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
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.