Bom dia, Srs.
Estou tentando utilizar a função abaixo inserir colunas em uma tabela do banco access do Excel, mas não estou conseguindo ...
Olhei alguns código na internet informando para fazer da seguinte forma:
Banco.Execute "ALTER TABLE ESTACAONEW ADD COLUMN LatitudeNew LONG;"
Dá erro de compilção:
Método ou membro ode dados não encontrado
Tentei desse outro modo
DoCmd.RunSQL "ALTER TABLE ESTACAONEW ADD COLUMN LatitudeNew LONG;"
Dá erro de compilção:
Variável não definida
Essa parte esta dentro de um Módulo Classe
Public Conn As New ADODB.Connection
Public Sub Conectar()
Dim nConectar As String
Dim BancoDados As String
BancoDados = Plan2.Range("D6")
If Val(Application.Version) < 12 Then
nConectar = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & BancoDados & ";Jet OLEDB:Database"
Else
nConectar = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & BancoDados & ";Jet OLEDB:Database"
End If
Conn.ConnectionString = nConectar
Conn.Open
End Sub
Public Sub Desconectar()
Conn.Close
End Sub
Function VerificaCampoTabela() As Boolean
Dim Tabela As String
Dim Campos As String
Dim vCampo1 As Long
Dim vCampo2 As Long
Dim vCampo3 As Long
On Error GoTo Erro
SQL = "SELECT * FROM ESTACAONEW"
Set Banco = New ADODB.Recordset
ConexaoBanco.Conectar
' ABRE A CONEXAO DO BANCO
Banco.Open SQL, ConexaoBanco.Conn, adOpenForwardOnly, adLockOptimistic
' VERIFICA SE O CAMPO "LATITUDENEW" EXISTE NA TABELA
If Not Banco.Fields("LatitudeNew") Is Nothing Then
Campos = Campos & vbNewLine & " LatitudeNew"
vCampo1 = 1
End If
' VERIFICA SE O CAMPO "LONGITUDENEW" EXISTE NA TABELA
If Not Banco.Fields("LongitudeNew") Is Nothing Then
Campos = Campos & vbNewLine & " LongitudeNew"
vCampo2 = 1
End If
' VERIFICA SE O CAMPO "ALTITUDENEW" EXISTE NA TABELA
If Not Banco.Fields("AltitudeNew") Is Nothing Then
Campos = Campos & vbNewLine & " AltitudeNew"
vCampo3 = 1
End If
MsgBox "A tabela ESTACAO recebeu novos campos, são eles:" & vbNewLine & Campos
' LIMPA A CONEXAO DO BANCO
Set Banco = Nothing
' ENCERA A CONEXAO DO BANCO
ConexaoBanco.Desconectar
' FINALIZA A FUNCAO
Exit Function
Erro:
' CASE COM A VERIFICACAO DO CAMPO
Select Case Err
' O CAMPO NAO EXISTE
Case 3265
' SQL INSERIR COLUNAS LATITUDENEW - LONGITUDENEW - ALTITUDENEW
If vCampo1 = 0 Then
SQL = ""
SQL = SQL & "ALTER TABLE ESTACAONEW ADD COLUMN LatitudeNew LONG "
MsgBox "Criado o campo LATITUDENEW "
ElseIf vCampo2 = 0 Then
SQL = ""
SQL = SQL & "ALTER TABLE ESTACAONEW ADD COLUMN LongitudeNew LONG "
MsgBox "Criado o campo LONGITUDENEW "
ElseIf vCampo3 = 0 Then
SQL = ""
SQL = SQL & "ALTER TABLE ESTACAONEW ADD COLUMN AltitudeNew LONG "
MsgBox "Criado o campo ALTITUDENEW"
End If
Resume Next
' O CAMPO EXISTE
Case Else
MsgBox "Outro tipo de erro"
End Select
' LIMPA A CONEXAO DO BANCO
Set Banco = Nothing
' ENCERA A CONEXAO DO BANCO
ConexaoBanco.Desconectar
End Function
Gostaria de uma ajuda dos senhores ... Onde estou errando ?
Se a resposta foi útil! Clique na mãozinha ao lado do botão Citar.
Sua dúvida foi respondida? Marque como RESOLVIDO em seus tópicos, usando o botão com marca verde.
Postado : 04/11/2016 8:47 am