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

    [Resolvido]Importar do excel para access

    Compartilhe

    maryprego
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Angola
    Mensagens : 46
    Registrado : 16/07/2017

    [Resolvido]Importar do excel para access

    Mensagem  maryprego em Ter 22 Ago 2017, 18:14

    olá a todos,
    encontrei aqui um exemplo de importar dados do Excel para access do amigo  marcelo3092.
    consegui adaptar para minha bd mas encontrei um problema ao importar: não está a importar os dados para o campo departamento, seccao, funcao e centro. visto que esses campo estão vinculados com tabela tbl_departamento, tbl_seccao, tbl_funcao e tbl_centroloja.

    estou dando no duro para sai dessa mas não estou tendo exito, alguém pode me ajudar.
    segue a bd
    Anexos
    exemplo.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (461 Kb) Baixado 13 vez(es)

    maryprego
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Angola
    Mensagens : 46
    Registrado : 16/07/2017

    Re: [Resolvido]Importar do excel para access

    Mensagem  maryprego em Qua 23 Ago 2017, 17:58

    de realçar que também anexei o ficheiro do Excel.
    aguardando a vossa ajuda.
    avatar
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 6388
    Registrado : 05/11/2009

    Re: [Resolvido]Importar do excel para access

    Mensagem  Alexandre Neves em Qua 23 Ago 2017, 21:11

    Boa noite,
    está a utilizar a função TransferSpreadsheet
    Em vez disso, utilize a abertura do Excel e crie recordset, depois é importar para onde pretende
    Dá mais trabalho mas fica à sua medida


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo

    maryprego
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Angola
    Mensagens : 46
    Registrado : 16/07/2017

    Re: [Resolvido]Importar do excel para access

    Mensagem  maryprego em Qua 23 Ago 2017, 22:31

    obrigado pelo breve retorno,
    sou leigo em vba, será que podes me ajudar...
    mas vou tentando aqui também.
    avatar
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 6388
    Registrado : 05/11/2009

    Re: [Resolvido]Importar do excel para access

    Mensagem  Alexandre Neves em Qui 24 Ago 2017, 08:59

    Bom dia,

    Adapte do género

    dim Rst as dao.recordset, LivroExcel as object

    'criar ligação com excel
    Set LivroExcel = CreateObject("Excel.Application")
    LivroExcel.Workbooks.Open (NomeCompletoFicheiro)
    'criar recordet
    set Rst =currentdb.openrecordset("instrução sql de tabela/consulta dos campos que pretende utilizar para acrescentar novos registos")

    'cria novo registo na tabela e importa do excel
    Rst.AddNew
    Rst("NomeCampo") = LivroExcel.Cells(Linha, Coluna)
    ... importação de outros dados como na linha anterior

    'fechaexcel
    LivroExcel.ActiveWorkbook.Close SaveChanges:=False
    Set LivroExcel = Nothing

    'fecha rst
    set rst=nothing


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo

    maryprego
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Angola
    Mensagens : 46
    Registrado : 16/07/2017

    Re: [Resolvido]Importar do excel para access

    Mensagem  maryprego em Qui 24 Ago 2017, 17:06

    agradeço imenso pela ajuda que tem prestado mestre Alexandre Neves,

    criei um novo form importarexcel e coloquei no botão btnimportar e tentei adaptar não está a funfar.
    alguem pode me ajudar.
    desde já agradeço
    Anexos
    exemplo2.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (455 Kb) Baixado 6 vez(es)
    avatar
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 6388
    Registrado : 05/11/2009

    Re: [Resolvido]Importar do excel para access

    Mensagem  Alexandre Neves em Qui 24 Ago 2017, 22:25

    Boa noite,
    Reveja, porque está a querer importar Departamento (nome) mas na tabela está número
    Código:
    Private Sub btnImportar_Click()
    Dim Rst As DAO.Recordset, LivroExcel, Linha As Integer

    'criar ligação com excel
    Set LivroExcel = CreateObject("Excel.Application")
    LivroExcel.Workbooks.Open CurrentProject.Path & "\Funcionarios.xlsx"
    'criar recordet
    Set Rst = CurrentDb.OpenRecordset("SELECT NumFuncionario, NomeFuncionario, Departamento, Seccao, Funcao, Centro, DataAdmissao FROM Tbl_CadFuncionario")
    'cria novo registo na tabela e importa do excel
    Linha = 2
    Do While LivroExcel.Cells(Linha, 1)
    Rst.AddNew
    Rst("NumFuncionario") = LivroExcel.Cells(Linha, 1)
    Rst("NomeFuncionario") = LivroExcel.Cells(Linha, 2)
    Rst("Departamento") = LivroExcel.Cells(Linha, 3)
    Rst("Seccao") = LivroExcel.Cells(Linha, 4)
    Rst("Funcao") = LivroExcel.Cells(Linha, 5)
    Rst("Centro") = LivroExcel.Cells(Linha, 6)
    Rst("DataAdmissao") = LivroExcel.Cells(Linha, 7)
    Rst.Update
    Linha = Linha + 1
    Loop
    'fechaexcel
    LivroExcel.ActiveWorkbook.Close SaveChanges:=False
    Set LivroExcel = Nothing

    'fecha rst
    Set Rst = Nothing
    End Sub


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo

    maryprego
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Angola
    Mensagens : 46
    Registrado : 16/07/2017

    Re: [Resolvido]Importar do excel para access

    Mensagem  maryprego em Sab 26 Ago 2017, 16:44

    boa tarde,

    na tabela departamento está número porque usei assistente de pesquisa para buscar os dados na tabela departamento...
    é ai onde está o problema. não tenho conhecimento avançado de como ir buscar dados em outras tabelas sem que elas não se convertam em números.
    se tiveres uma ideia de como ultrapassar essa situação agraço.
    Anexos
    exemplo3.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (450 Kb) Baixado 5 vez(es)

    marcelo3092
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 79
    Registrado : 19/08/2010

    Importar do excel

    Mensagem  marcelo3092 em Sab 26 Ago 2017, 21:11

    Boa tarde amigo eu tenho dois exemplos de importar para o excel e exportar. Minha duvida e qual motivo vc precisa importar do excel para o access pois como vc falo no excel vc precisa saber o código do departamento que esta cadastrado na tabela seção e função e mesmo que se coloque nome nesses campos que pesquisa vc não pode colocar qualquer nome no excel e importar para o access pois vai da erro. o certo seria nos campos que vc pois para buscar nas tabela fique como texto normal. Pois vc vai ter que saber de cabeça como esta cadastrado a função departamento seção para não da erro.
    avatar
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 6388
    Registrado : 05/11/2009

    Re: [Resolvido]Importar do excel para access

    Mensagem  Alexandre Neves em Sab 26 Ago 2017, 21:24

    Boa noite,
    Bastava utilizar o DLookup
    Código:
    Private Sub btnImportar_Click()
        '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
        '  código criado por Alexandre Neves, do Fórum MaximoAccess                                                '
        '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
        Dim Rst As DAO.Recordset, LivroExcel, Linha As Integer

        'criar ligação com excel
        Set LivroExcel = CreateObject("Excel.Application")
        LivroExcel.Workbooks.Open CurrentProject.Path & "\Funcionarios.xlsx"
        'criar recordet
        Set Rst = CurrentDb.OpenRecordset("SELECT NumFuncionario, NomeFuncionario, Departamento, Seccao, Funcao, Centro, DataAdmissao FROM Tbl_CadFuncionario")
        'cria novo registo na tabela e importa do excel
        Linha = 2
        Do While LivroExcel.Cells(Linha, 1)
        Rst.AddNew
        Rst("NumFuncionario") = LivroExcel.Cells(Linha, 1)
        Rst("NomeFuncionario") = LivroExcel.Cells(Linha, 2)
        Rst("Departamento") = DLookup("ID_Dep", "Tbl_departamento", "Departamento='" & LivroExcel.Cells(Linha, 3) & "'")
        Rst("Seccao") = DLookup("ID_Sec", "Tbl_Seccao", "Seccao='" & LivroExcel.Cells(Linha, 4) & "' and ID_Dep=" & DLookup("ID_Dep", "Tbl_departamento", "Departamento='" & LivroExcel.Cells(Linha, 3) & "'"))
        Rst("Funcao") = DLookup("ID_Func", "Tbl_Funcao", "Funcao='" & LivroExcel.Cells(Linha, 5) & "' and ID_Dep=" & DLookup("ID_Dep", "Tbl_departamento", "Departamento='" & LivroExcel.Cells(Linha, 3) & "'"))
        Rst("Centro") = DLookup("ID_Cen", "Tbl_CentroLoja", "Centro='" & LivroExcel.Cells(Linha, 6) & "'")
        Rst("DataAdmissao") = LivroExcel.Cells(Linha, 7)
        Rst.Update
        Linha = Linha + 1
        Loop
        'fechaexcel
        LivroExcel.ActiveWorkbook.Close SaveChanges:=False
        Set LivroExcel = Nothing
       
        'fecha rst
        Set Rst = Nothing
    End Sub


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo

    maryprego
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Angola
    Mensagens : 46
    Registrado : 16/07/2017

    Re: [Resolvido]Importar do excel para access

    Mensagem  maryprego em Dom 27 Ago 2017, 15:58

    boa tarde,
    agradeço imenso pelo grande esforço por me ajudar,
    agora sim, está funcionar, magnífico mestre Alexandre Neves. cheers

    não querendo abusar dos seus grandes conhecimentos, mas como ficaria se o ficheiro do Excel ficasse em outra pasta qualquer/local para poder proceder a importação a partir daquele local.
    avatar
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 6388
    Registrado : 05/11/2009

    Re: [Resolvido]Importar do excel para access

    Mensagem  Alexandre Neves em Dom 27 Ago 2017, 21:02

    Boa noite,
    Está indicada a pasta da bd (LivroExcel.Workbooks.Open CurrentProject.Path & "\Funcionarios.xlsx")
    Altere para a que pretender


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo

    maryprego
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Angola
    Mensagens : 46
    Registrado : 16/07/2017

    Re: [Resolvido]Importar do excel para access

    Mensagem  maryprego em Seg 28 Ago 2017, 18:03

    grato!

      Data/hora atual: Ter 19 Set 2017, 12:47