Notifications
Clear all

Erro de sintaxe: Inserção de dados no SQL SERVER via VBA  

  RSS

HelioFaria
(@heliofaria)
Trusted Member
Entrou: 5 anos atrás
Posts: 50
27/08/2018 7:35 am  

Olá pessoal, estou criando uma rotina de inserção de alguns dados numa tabela dentro do SQL SERVER, a partir do Excel, e estou com um problema ( que acredito ser de sintaxe do código).
Quando mando executar o código, é gerada o erro: " O Comando de texto não foi definido para o objeto de comando". Ao mandar depurar, o erro está no código:

Rst.Open SrtRst, Cnx

.
Alguem poderia me ajudar com isso?

Sub Export_to_SQL()

'Declaração das Variáveis de conexão com o banco de dados
Dim Cnx As New ADODB.Connection
Dim Rst As New ADODB.Recordset
Dim StrCnx, StrRst As String
Dim Contador As Integer
Dim Linha_Entrada As Integer
Dim SrtRst As String


StrCnx = "Provider=SQLOLEDB;Data Source=nb-bhn-631;Initial Catalog=Banco_Dados_HFaria;Integrated Security=SSPI;"

Cnx.Open StrCnx
Linha_Entrada = 2

Do While Planilha2.Range("A" & Linha_Entrada) <> ""

REPRESENTANTE = Planilha2.Range("A" & Linha_Entrada)
COMISSAO = Planilha2.Range("B" & Linha_Entrada)


StrRst = "INSERT INTO tab_Cad_Rep(REPRESENTANTE,COMISSAO) VALUES('" & REPRESENTANTE & "'" & "," & "'" & COMISSAO & "'" & ")"

Rst.Open SrtRst, Cnx

Linha_Entrada = Linha_Entrada + 1

Loop


End Sub

ResponderCitar (Quote)
Wagner Morel
(@wagner-morel-vidal-nobre)
Illustrious Member
Entrou: 8 anos atrás
Posts: 4052
27/08/2018 4:39 pm  

HelioFaria,

Boa noite!

Tente assim:

Sub Export_to_SQL()

'Declaração das Variáveis de conexão com o banco de dados
Dim Cnx As New ADODB.Connection
Dim Rst As New ADODB.Recordset
Dim StrCnx As String, StrRst As String
Dim Contador As Integer
Dim Linha_Entrada As Integer
Dim SrtRst As String


StrCnx = "Provider=SQLOLEDB;Data Source=nb-bhn-631;Initial Catalog=Banco_Dados_HFaria;Integrated Security=SSPI;"

Cnx.Open StrCnx
Linha_Entrada = 2

Do While Planilha2.Range("A" & Linha_Entrada) <> ""

REPRESENTANTE = Planilha2.Range("A" & Linha_Entrada)
COMISSAO = Planilha2.Range("B" & Linha_Entrada)

Cnx.CommandTimeOut = 0
StrRst = "INSERT INTO tab_Cad_Rep(REPRESENTANTE,COMISSAO) VALUES('" & REPRESENTANTE & "'" & "," & "'" & COMISSAO & "'" & ")"

Set Rst = Cnx.Execute(StrRst)

Linha_Entrada = Linha_Entrada + 1

Loop


End Sub

Se a resposta foi útil para você, por gentileza, Amigo, clique em Curtir.

Atenciosamente
Wagner Morel


ResponderCitar (Quote)
HelioFaria
(@heliofaria)
Trusted Member
Entrou: 5 anos atrás
Posts: 50
27/08/2018 6:55 pm  

Vc é o cara Wagner!!!! Deu certo...

Muito Obrigado!!


ResponderCitar (Quote)
Wagner Morel
(@wagner-morel-vidal-nobre)
Illustrious Member
Entrou: 8 anos atrás
Posts: 4052
28/08/2018 5:19 am  

Valeu Helio!

Bom dia!

Peço a gentileza de votar positivamente clicando na mãozinha existente ao lado da ferramenta CITAR.

Se a resposta foi útil para você, por gentileza, Amigo, clique em Curtir.

Atenciosamente
Wagner Morel


ResponderCitar (Quote)
Compartilhar: