MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

Obrigado

Administração do MaximoAccess

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access

    Tipos Incompatíveis - VBA

    Compartilhe

    Moma
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 11
    Registrado : 22/09/2016

    Tipos Incompatíveis - VBA

    Mensagem  Moma em Qua 8 Fev 2017 - 18:18

    Boa tarde pessoal.

    Estou com uma macro que deve jogar dados do excel para um banco access, porém dá o erro de Dados Incompatíveis. Alguém pode me ajudar?

    Sub TransfereDados()

    'Cria variável que armazena os comandos SQL
    Dim ComandoSQL As String

    'looping das colunas

    Sheets("BaseGeral").Select
    Range("A2").Activate


    'lopping das linhas
    Do While ActiveCell <> ""

    linha = ActiveCell.Row

    'Armazena na variável o comando que fará a consulta SQL no BD Access

    ComandoSQL = "select * from TB_Base_Banco_geral"

    'Chama a rotina que faz a conexão com o BD
    Call Conecta

    'Atribui a variável de Objeto de BD a execução dos comandos SQL

    Set consulta = banco.OpenRecordset(ComandoSQL) - O Erro acontece nessa linha

    With consulta
    'Abre o Recordset do BD para inserção

    .AddNew

    .Fields("Contratada") = Sheets("BaseGeral").Cells(linha, 1)
    .Fields("OS") = Sheets("BaseGeral").Cells(linha, 2)
    .Fields("Tecnologia") = Sheets("BaseGeral").Cells(linha, 3)
    .Fields("Sistema") = Sheets("BaseGeral").Cells(linha, 4)



    'Se houver erro
    On Error Resume Next

    'Efetiva a atualização do BD
    .Update

    'Fecha o Recorset e a conexão com o BD
    consulta.Close
    banco.Close

    'Chama a rotina que desconecta do BD (libera variáveis objeto de BD)
    Call Desconecta

    ActiveCell.Offset(1, 0).Select

    End With

    Loop

    'Abandona a subrotina
    Exit Sub

    End Sub
    avatar
    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2807
    Registrado : 29/06/2012

    Re: Tipos Incompatíveis - VBA

    Mensagem  Noobezinho em Qua 8 Fev 2017 - 19:31

    Olá Aline

    Não tenho muito conhecimento dos comandos/códigos do Excell.

    Mas, olhando teu código, vejo que a estrutura da função está um tanto errada.

    Vou deixar aqui como deve ser a estrutura dela, e acredito que entenderá.

    Por exemplo, o loop que estava sendo feito na planilha do excel, abria e fechava

    a tabela toda vez que pegava um dado na planilha e transferia pra tabela.

    É o mesmo que ter um cofre e você o abre coloca uma cédula dentro, fecha,
    pega outra cédula, abre o cofre, coloca a cédula dentro, fecha, e o loop
    continua até colocar todos o dinheiro dentro do cofre.
    Cansativo, né?

    Isso eu arrumei.

    Abre-se a tabela uma vez somente.
    Faz o loop na planilha e transfere os dados para a tabela.
    Fecha a tabela
    Fecha o BD.

    Leia as observações em verde no código (ficará verde no Access).


    [ ]'s

    Código:

    Sub TransfereDados()
    'Cria variável que armazena os comandos SQL
    Dim ComandoSQL As String

    'Chama a rotina que faz a conexão com o BD

    Call Conecta ' Primeiro, conectar banco de dados

    'Armazena na variável o comando que fará a consulta SQL no BD Access

    ComandoSQL = "select * from TB_Base_Banco_geral"


    'Abre o Recordset do BD para inserção

    Set consulta = banco.OpenRecordset(ComandoSQL)

    With consulta

         'looping das colunas

         Sheets("BaseGeral").Select
         Range("A2").Activate


         'lopping das linhas
         Do While ActiveCell <> ""

            linha = ActiveCell.Row

            AddNew

            .Fields("Contratada") = Sheets("BaseGeral").Cells(linha, 1)
            .Fields("OS") = Sheets("BaseGeral").Cells(linha, 2)
            .Fields("Tecnologia") = Sheets("BaseGeral").Cells(linha, 3)
            .Fields("Sistema") = Sheets("BaseGeral").Cells(linha, 4)

            'Se houver erro, tem que mostrar o erro pra podermos consertar então
            'On Error Resume Next  '<--- isso não pode

            'Efetiva a atualização do BD
            .Update
      
            ActiveCell.Offset(1, 0).Select '<----- Esse comando não conheço,se for pra mudar de linha, fica ai mesmo
     
         loop

    End With

    Consulta.Close

    Banco.close

    Call Desconecta

    End sub


    .................................................................................
    Noobezinho

    * A solução funcionou?  [Você precisa estar registrado e conectado para ver esta imagem.] 
    Agradeça e feche o tópico clicando no botão Resolvido
    Se não sabe como, veja [Você precisa estar registrado e conectado para ver este link.].

    Como anexar imagem no teu post do fórum : [Você precisa estar registrado e conectado para ver este link.]

    * Criar arquivos.zip com o Winrar - veja [Você precisa estar registrado e conectado para ver este link.].

    Atualmente estou verificando se quem está pedindo ajuda, ajudamos e não retornou.
    Se a pessoa em questão não deu retorno, não tentarei ajudar novamente .

    Moma
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 11
    Registrado : 22/09/2016

    Re: Tipos Incompatíveis - VBA

    Mensagem  Moma em Qui 9 Fev 2017 - 10:53

    Noobezinho, fiz as alterações que vc sugeriu, porém continua com o erro de dados incompatíveis na linha:

    Set consulta = banco.OpenRecordset(ComandoSQL)
    avatar
    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2807
    Registrado : 29/06/2012

    Re: Tipos Incompatíveis - VBA

    Mensagem  Noobezinho em Qui 9 Fev 2017 - 11:00

    Aline

    Anexe aqui, a tabela, consulta, formulário e a planilha do excel, para eu analisar, ok?

    Lembrando que o site só aceita arquivos.zip.

    Se tiver o winrar, veja ali embaixo na minha assinatura como fazer zip com ele.

    Aguardo


    .................................................................................
    Noobezinho

    * A solução funcionou?  [Você precisa estar registrado e conectado para ver esta imagem.] 
    Agradeça e feche o tópico clicando no botão Resolvido
    Se não sabe como, veja [Você precisa estar registrado e conectado para ver este link.].

    Como anexar imagem no teu post do fórum : [Você precisa estar registrado e conectado para ver este link.]

    * Criar arquivos.zip com o Winrar - veja [Você precisa estar registrado e conectado para ver este link.].

    Atualmente estou verificando se quem está pedindo ajuda, ajudamos e não retornou.
    Se a pessoa em questão não deu retorno, não tentarei ajudar novamente .

    Moma
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 11
    Registrado : 22/09/2016

    Re: Tipos Incompatíveis - VBA

    Mensagem  Moma em Qui 9 Fev 2017 - 11:04

    Planilha
    Anexos
    Base_Banco_Backlog.xlsm
    Você não tem permissão para fazer download dos arquivos anexados.
    (49 Kb) Baixado 2 vez(es)

    Moma
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 11
    Registrado : 22/09/2016

    Re: Tipos Incompatíveis - VBA

    Mensagem  Moma em Qui 9 Fev 2017 - 11:09

    Não estou conseguindo subir o arquivo do banco em .zip Sad
    avatar
    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2807
    Registrado : 29/06/2012

    Re: Tipos Incompatíveis - VBA

    Mensagem  Noobezinho em Qui 9 Fev 2017 - 11:16

    O tamanho máximo é 4.98 Mb

    Se estiver ultrapassando isso, faça assim:

    Abra o aplicativo segurando o Shift.

    Na primeira opção do menu Ferramentas de Banco de Dados, clique nela (compactação e rest....)

    Depois compacte com o zip.

    [ ]'s


    .................................................................................
    Noobezinho

    * A solução funcionou?  [Você precisa estar registrado e conectado para ver esta imagem.] 
    Agradeça e feche o tópico clicando no botão Resolvido
    Se não sabe como, veja [Você precisa estar registrado e conectado para ver este link.].

    Como anexar imagem no teu post do fórum : [Você precisa estar registrado e conectado para ver este link.]

    * Criar arquivos.zip com o Winrar - veja [Você precisa estar registrado e conectado para ver este link.].

    Atualmente estou verificando se quem está pedindo ajuda, ajudamos e não retornou.
    Se a pessoa em questão não deu retorno, não tentarei ajudar novamente .

    Moma
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 11
    Registrado : 22/09/2016

    Re: Tipos Incompatíveis - VBA

    Mensagem  Moma em Qui 9 Fev 2017 - 11:25

    Segue o banco
    Anexos
    BD_Backlog.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (32 Kb) Baixado 2 vez(es)
    avatar
    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2807
    Registrado : 29/06/2012

    Re: Tipos Incompatíveis - VBA

    Mensagem  Noobezinho em Qui 9 Fev 2017 - 11:46

    Só com as tabelas, não posso fazer nada

    Cade teu código,consultas, etc?


    .................................................................................
    Noobezinho

    * A solução funcionou?  [Você precisa estar registrado e conectado para ver esta imagem.] 
    Agradeça e feche o tópico clicando no botão Resolvido
    Se não sabe como, veja [Você precisa estar registrado e conectado para ver este link.].

    Como anexar imagem no teu post do fórum : [Você precisa estar registrado e conectado para ver este link.]

    * Criar arquivos.zip com o Winrar - veja [Você precisa estar registrado e conectado para ver este link.].

    Atualmente estou verificando se quem está pedindo ajuda, ajudamos e não retornou.
    Se a pessoa em questão não deu retorno, não tentarei ajudar novamente .

    Moma
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 11
    Registrado : 22/09/2016

    Re: Tipos Incompatíveis - VBA

    Mensagem  Moma em Qui 9 Fev 2017 - 11:49

    O código está no excel, no access só tenho as tabelas... e a única consulta que criei é esta que segue em anexo, porém não a utilizo no código uso apenas para unir as informações que preciso no excel que anexei aqui.
    Anexos
    Select_Backlog.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (1 Kb) Baixado 1 vez(es)
    avatar
    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2807
    Registrado : 29/06/2012

    Re: Tipos Incompatíveis - VBA

    Mensagem  Noobezinho em Qui 9 Fev 2017 - 12:05

    Sinto Aline Crying or Very sad

    Sou programador de Access e não de excel.

    E como pode ver, o fórum só atende sobre Access.

    Aguarde, talvez tenha alguém que entenda de Excel possa  te ajudar.

    [ ]'s


    .................................................................................
    Noobezinho

    * A solução funcionou?  [Você precisa estar registrado e conectado para ver esta imagem.] 
    Agradeça e feche o tópico clicando no botão Resolvido
    Se não sabe como, veja [Você precisa estar registrado e conectado para ver este link.].

    Como anexar imagem no teu post do fórum : [Você precisa estar registrado e conectado para ver este link.]

    * Criar arquivos.zip com o Winrar - veja [Você precisa estar registrado e conectado para ver este link.].

    Atualmente estou verificando se quem está pedindo ajuda, ajudamos e não retornou.
    Se a pessoa em questão não deu retorno, não tentarei ajudar novamente .
    avatar
    FabioPaes
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3271
    Registrado : 14/08/2013

    Re: Tipos Incompatíveis - VBA

    Mensagem  FabioPaes em Qui 9 Fev 2017 - 14:52

    Uma coisa que não consegui achar foi o momento em que a variavel "Banco" recebe/conecta a um banco de dados...

    ...banco.OpenRecordset(ComandoSQL)

    Verifique se realmente esta passando o banco de dados correto para essa Variável.



    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!

      Data/hora atual: Ter 22 Ago 2017 - 15:04