Notifications
Clear all

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


HelioFaria
Posts: 50
Registered
Topic starter
(@heliofaria)
Trusted Member
Entrou: 6 anos atrás

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
Responder
3 Respostas
Wagner Morel
Posts: 4037
Registered Registered
(@wagner-morel-vidal-nobre)
Illustrious Member
Entrou: 9 anos atrás

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
Responder
HelioFaria
Posts: 50
Registered
Topic starter
(@heliofaria)
Trusted Member
Entrou: 6 anos atrás

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

Muito Obrigado!!

Responder
Wagner Morel
Posts: 4037
Registered Registered
(@wagner-morel-vidal-nobre)
Illustrious Member
Entrou: 9 anos atrás

Valeu Helio!

Bom dia!

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

Responder