Vídeo recomendado
https://youtu.be/diWPPPhW-9E

Conexão do VBA com SQL Server 2014

Fórum para dúvidas sobre os fundamentos da linguagem de programação Visual Basic no contexto do VBA
fmartins
Acabou de chegar
Acabou de chegar
Mensagens: 2
Registrado em: Qua Jun 29, 2016 12:06 pm

Conexão do VBA com SQL Server 2014

Mensagem por fmartins »

Estou iniciando com vba, e estou com dificuldades em alguns pontos:

1 - Não consigo conectar com SQL;
2 - No campo sub Incluir ao executar a tarefa recebo a informação de variável não definida. Nesse item em aluns fóruns diserram que seria o option explicit, mas quando tiro e executo não acontece nada.
3- O que estou desenvolvendo seria realizar uma conexão com sql e tudo que eu inserir na planilha do excel seja adicionado no sql, atraves de algum comando.


Segue o Codigo que estou criando:



Option Explicit

Const SQLConStr As String = "Provider=SQLOLEDB;Server=LaboratorioSQL(SQL Server 9.00.5000.00 - INTERVALOR\fermartins); Database=dbo.tbl_teste_vba_inclusao_registro;Trusted_Connection=yes"

Sub Connection()

Dim RegistroConn As ADODB.Connection
Dim RegConn As ADODB.Command
Dim objRegistro As Object
Dim rs As New ADODB.Recordset
Dim RegistroCmd
Dim RegistroId As Object
Dim sql As String
Dim r As Range

Set objRegistro = New ADODB.Connection
Set RegistroConn = New ADODB.Command

RegistroConn.ConnectionString = SQLConStr
RegistroConn.Open

RegistroCmd.ActiveConnection = RegistroConn

RegistroConn.BeginTrans

'For Each r In Range("A1", Range("E1").End(xlDown)).Select

On Error GoTo ErrorHandler
RegistroCmd.CommandText = _
GetInsertTextSQL( _
.Offset(1, 0).Value, _
.Offset(1, 2).Value, _
.Offset(1, 3).Value)
On Error GoTo 0

RegistroCmd.Execute

Next r


RegistroConn.CommitTrans
RegistroConn.Close

Set RegistroConn = Nothing

Exit Sub

ErrorHandler:
MsgBox "Error number = " & (Err.Number - vbObjectError) & vbNewLine & Err.Description
RegistroConn.RollbackTrans
RegistroConn.Close

End Sub
Sub Incluir()

Dim SQLStr As String

SQLtr = _
"INSERT INTO dbo.tbl_teste_vba_inclusao_registro (" & _
"RegistroId, RegistroName, RegistroReleaseDate, Registrodescricao, Registrovalor)" & _
"VALUES (" & _
"(SELECT MAX(RegistroId)FROM tbl_teste_vba_inclusao_registro) + 1," & _
"'" & Replace(RegistroId, "'", "''") & "'," & _
"'" & Format(RegistroDate, "yyyy-mm-dd") & "'," & _
CStr(Registrodescricao) & _
CStr(Registrovalor) & ");"

If InStr(1, SQLStr, "drop", vbTextCompare) <> 0 Then
Err.Raise vbObjectError = 100, , "Naughty words used"
End If

GetInsertText = SQLtr

End Sub


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Avatar do usuário
webmaster
Administrador
Mensagens: 3114
Registrado em: Sex Jul 24, 2009 2:44 pm
Contato:

Re: Conexão do VBA com SQL Server 2014

Mensagem por webmaster »

Colega,

O erro está genérico demais. Onde dá o erro? Tentei conectar pelo IP do servidor? Consegue conectar direto pelo Excel (opção dados)?

Att


fmartins
Acabou de chegar
Acabou de chegar
Mensagens: 2
Registrado em: Qua Jun 29, 2016 12:06 pm

Re: Conexão do VBA com SQL Server 2014

Mensagem por fmartins »

Essa conexão eu tenho, porém eu quero tudo fazer é que todas as informações que acrescentar na planilha seja atualizado no banco de dados. Por isso montei esses comandos, mas não sei se tem outra forma de fazer esse insert do excel para o sql.

Um dos erros que aparece é na sintaxe .Offset, porem não consegui corrigir.


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Responder