MaximoAccess

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

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

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

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

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


2 participantes

    [Resolvido]Importar campos do access em colunas específicas do excel

    avatar
    e_souza2
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 8
    Registrado : 24/11/2013

    [Resolvido]Importar campos do access em colunas específicas do excel Empty [Resolvido]Importar campos do access em colunas específicas do excel

    Mensagem  e_souza2 24/11/2013, 11:25

    Bom dia a todos!
    Não sei se este é o forum certo, mas vamo-lá.
    Tenho uma macro que, a partir do excel, seleciona alguns campos de uma base no access e importa para o excel.
    Minha dúvida é como importar cada coluna da base do access em colunas específicas do excel?
    Exemplo:
    Faço um SELECT de CPF, Nome Fantasia, Categoria e Sub-Categoria na base do access.
    Gostaria de pegar os resultados desse SELECT e distribuir no excel da seguinte forma:
    Dados de CPF na coluna A do Excel
    Dados de Nome Fantasia na coluna C do Excel
    Dados de Categoria na coluna E do Excel
    Dados de Sub-Categoria na coluna F do Excel

    Alguém pode me ajudar?

    Abs

    Eduardo
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Importar campos do access em colunas específicas do excel Empty Re: [Resolvido]Importar campos do access em colunas específicas do excel

    Mensagem  criquio 24/11/2013, 13:25

    Olá, seja bem vindo ao fórum!

    Como está fazendo esse procedimento atualmente? Poste o código VBA completo para analisarmos. Enquanto isso, pode tentar algo assim em uma macro:

    Código:
    Sub Importar()

    Dim bdAccess As Access.Application, Tabela As Object, N As Double

    Set bdAccess = GetObject("C:\Pastas\Nome do banco.mdb")
    bdAccess.Visible = False
    Set Tabela = bdAccess.CurrentDb.OpenRecordset("NomeDaTabela")

    N = 1

    Do While Not Tabela.EOF
        Plan1.Range("A" & N) = Tabela(0)
        Plan1.Range("C" & N) = Tabela(1)
        Plan1.Range("E" & N) = Tabela(2)
        Plan1.Range("F" & N) = Tabela(3)
        N = N + 1
        Tabela.movenext
    Loop

    MsgBox "Dados importados com sucesso", vbInformation, "Status"

    Set Tabela = Nothing
    bdAccess.Quit
    Set bdAccess = Nothing

    End Sub
    Tabela(0) até Tabela(3) são os campos da tabela na ordem em que eles aparecem nela. O primeiro campo tem índice 0. Portanto, se os campos forem o terceiro, quarto, sexto e sétimo por exemplo, troque esses números por Tabela(2), Tabela(3), Tabela(5) e Tabela(6). Ou coloque os nomes dos campos mesmo assim:

       Plan1.Range("A" & N) = Tabela!CPF
       Plan1.Range("C" & N) = Tabela!NomeFantasia
       Plan1.Range("E" & N) = Tabela!Categoria
       Plan1.Range("F" & N) = Tabela!SubCategoria


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    e_souza2
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 8
    Registrado : 24/11/2013

    [Resolvido]Importar campos do access em colunas específicas do excel Empty Re: [Resolvido]Importar campos do access em colunas específicas do excel

    Mensagem  e_souza2 25/11/2013, 14:07

    Olá! Obrigado pela receptividade e pela resposta!!!

    Seu código inclui uma informação de cada vez até atingir a ultima linha, na ultima coluna conforme o loop, correto?
    Como a consulta pode trazer mais de 1000 linhas, o processo de trazer um por um pode demorar.
    Gostaria de trazer para a coluna do excel, de uma unica vez, toda a coluna respectiva do access.
    Seria possível?

    Este é o código que estou utilizando:


    Public CX As New ClasseConexao
    Public RS As ADODB.Recordset
    Public SQL As String

    Sub CONSULTA()

    On Error GoTo trataErro
    'CRIAR CONEXÃO COM O BANCO
    CX.CONEXAO

    'QUERY SQL
    SQL = "SELECT ID, [CPF/CNPJ], [Nome Fantasia], Categoria, SubCategoria FROM TB_CLIENTES_FORNECEDORES "
    SQL = SQL & "WHERE ID LIKE '" & Range("AR9").Value & "%' "

    'ABRIR CONEXÃO E EXECUTAR SQL
    CX.ABRIR_CONEXAO

    'PROCEDIMENTO EXCEL
       'Exemplo de como gostaria de trazer as informações
        Plan1.Range("A1") = RS!CPF 'Toda coluna
        Plan1.Range("C1") = RS!NomeFantasia 'Toda coluna
        Plan1.Range("E1") = RS!Categoria 'Toda coluna
        Plan1.Range("F1") = RS!SubCategoria 'Toda coluna

    'FECHAR CONEXÃO
    CX.FECHAR_CONEXAO2

    MsgBox ("Consulta realizada com sucesso.")

    Exit Sub

    'TRATAMENTO DE ERRO
    trataErro:
       MsgBox ("Erro : " & Err.Description)
       CX.FECHAR_CONEXAO2

    End Sub
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Importar campos do access em colunas específicas do excel Empty Re: [Resolvido]Importar campos do access em colunas específicas do excel

    Mensagem  criquio 25/11/2013, 17:57

    1000 linhas não deve ser problema não, a não ser que esteja em uma rede um tanto lenta. Já experimentou para ver?


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    e_souza2
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 8
    Registrado : 24/11/2013

    [Resolvido]Importar campos do access em colunas específicas do excel Empty Re: [Resolvido]Importar campos do access em colunas específicas do excel

    Mensagem  e_souza2 25/11/2013, 18:34

    Com os arquivos na máquina, a consulta para 75 linhas está levando exatamente 12 segundos.
    Isso para mim é uma eternidade...rsrsrs
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Importar campos do access em colunas específicas do excel Empty Re: [Resolvido]Importar campos do access em colunas específicas do excel

    Mensagem  criquio 25/11/2013, 20:16

    Talvez seja melhor usar ADO, que nesse caso será bem mais rápido:

    Código:
    Sub ImportarComAdo()

    Dim rs As New ADODB.Recordset, cnn As New ADODB.Connection, strsql As String, N As Double

    strsql = "SELECT * FROM NomeDaTabela;"

    cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Pastas\Nomes do banco.mdb;Jet OLEDB:Database Password=Senha;"
    cnn.Open
    Set rs.ActiveConnection = cnn
    rs.CursorType = adOpenKeyset
    rs.LockType = adLockReadOnly
    rs.Open strsql

    Do While Not rs.EOF
        N = N + 1
        Plan1.Range("A" & N) = rs(0)
        Plan1.Range("C" & N) = rs(1)
        Plan1.Range("E" & N) = rs(2)
        Plan1.Range("F" & N) = rs(3)
        rs.movenext
    Loop

    MsgBox "Procedimento realizado com sucesso, vbInformation, "Status"

    rs.Close
    Set rs = Nothing

    cnn.Close
    Set cnn = Nothing

    End Sub
    Tem que marcar a referência do ADO, "Microsoft ActiveX Data Objects 6.1 Library". Caso não tenha a 6.1 na lista, procure a maior versão que tiver.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    e_souza2
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 8
    Registrado : 24/11/2013

    [Resolvido]Importar campos do access em colunas específicas do excel Empty Re: [Resolvido]Importar campos do access em colunas específicas do excel

    Mensagem  e_souza2 26/11/2013, 00:00

    Muito bom!!!!
    Funcionou legal!!!
    Muito obrigado!!!
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Importar campos do access em colunas específicas do excel Empty Re: [Resolvido]Importar campos do access em colunas específicas do excel

    Mensagem  criquio 26/11/2013, 00:19

    Grato pelo retorno. O fórum agradece.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.


    Conteúdo patrocinado


    [Resolvido]Importar campos do access em colunas específicas do excel Empty Re: [Resolvido]Importar campos do access em colunas específicas do excel

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 28/3/2024, 19:42