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] botão vba importar dados do excel com avisos.

    avatar
    carmelito
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Anónimo
    Mensagens : 30
    Registrado : 12/08/2011

    [Resolvido] botão vba importar dados do excel com avisos. Empty [Resolvido] botão vba importar dados do excel com avisos.

    Mensagem  carmelito 16/7/2021, 18:37

    study Eu pesquisei no fórum e testei vários exemplos, mas ainda não consegui.
    Se for possível, uma grande ajuda.
    Tenho access 2016.

    O formulário com um botão para importar do excel, inclusive peguei o exemplo do MaximoAccess:

    Private Sub btn_importar_Click()
    Dim strPathFile As String, strFile As String, strPath As String
    Dim strTable As String
    Dim blnHasFieldNames As Boolean
    CurrentDb.Execute "DELETE * from Tb_dados"
    blnHasFieldNames = True

    strPath = CurrentProject.Path & "\pasta_importar_dados_excel_somente_xlsx\" ' drive onde se situa o seu documento excel
    strTable = "Tb_dados" 'nome da tabela no seu banco
    strFile = Dir(strPath & "*.xlsx") 'pegar o arquivo que constar na pasta com xlsx.'


    Do While Len(strFile) > 0
    strPathFile = strPath & strFile
    DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, _
    strTable, strPathFile, blnHasFieldNames
    strFile = Dir()
    Loop
       
    End Sub


    Ele está fazendo tudo certo.
    Porém, quero inserir 2 avisos.
    1 aviso quando não tiver arquivo xlsx na pasta. ele informar: inserir o arquivo xlsx na pasta, e tentar novamente.

    outro aviso, tendo o arquivo na pasta...  quando terminar de importar os dados, informar que realizou a  cyclops importação.

    Só isso. Não consegui.


    Última edição por carmelito em 20/7/2021, 18:05, editado 1 vez(es)
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido] botão vba importar dados do excel com avisos. Empty Re: [Resolvido] botão vba importar dados do excel com avisos.

    Mensagem  Alexandre Neves 19/7/2021, 22:46

    Boa noite,

    Tente
    Private Sub btn_importar_Click()
    Dim strPathFile As String, strFile As String, strPath As String
    Dim strTable As String
    Dim blnHasFieldNames As Boolean
    CurrentDb.Execute "DELETE * from Tb_dados"
    blnHasFieldNames = True

    strPath = CurrentProject.Path & "\pasta_importar_dados_excel_somente_xlsx\" ' drive onde se situa o seu documento excel
    strTable = "Tb_dados" 'nome da tabela no seu banco
    LeFicheiro:
    strFile = Dir(strPath & "*.xlsx") 'pegar o arquivo que constar na pasta com xlsx.'
    if strFile="" then
    msgbox "Falta o ficheiro."
    goto LeFicheiro
    end if
    Do While Len(strFile) > 0
    strPathFile = strPath & strFile
    DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, _
    strTable, strPathFile, blnHasFieldNames
    strFile = Dir()
    Loop
    msgbox "Importação terminada."
    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

    carmelito gosta desta mensagem

    avatar
    carmelito
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Anónimo
    Mensagens : 30
    Registrado : 12/08/2011

    [Resolvido] botão vba importar dados do excel com avisos. Empty Re: [Resolvido] botão vba importar dados do excel com avisos.

    Mensagem  carmelito 20/7/2021, 18:03

    cheers Muito obrigado... Não conseguia fazer o começo... ótimo. funcionou perfeitamente, coloquei até uma caixa para cancelar a operação, qdo não localizar o arquivo. muitíssimo obrigado. cheers

    Private Sub btn_importar_Click()

    Dim strPathFile As String, strFile As String, strPath As String
    Dim strTable As String
    Dim blnHasFieldNames As Boolean
    CurrentDb.Execute "DELETE * from Tb_dados"
    blnHasFieldNames = True

    strPath = CurrentProject.Path & "\pasta_importar_dados_excel_somente_xlsx\" ' drive onde se situa o seu documento excel
    strTable = "Tb_dados" 'nome da tabela no seu banco
    LeFicheiro:
    strFile = Dir(strPath & "*.xlsx") 'pegar o arquivo que constar na pasta com xlsx.'
    If strFile = "" Then
    X = MsgBox("Favor, inserir o arquivo excel no formato xlsx na pasta: \pasta_importar_dados_excel_somente_xlsx\ :::::Se desejar continuar a importação - clicar no botão repetir, ou se quiseres cancelar a importação, clicar no botão cancelar.", vbRetryCancel, "Erro de importação - arquivo excel não localizado.")
    If X = vbCancel Then
    Exit Sub
    End If
    GoTo LeFicheiro
    End If
    Do While Len(strFile) > 0
    strPathFile = strPath & strFile
    DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, _
    strTable, strPathFile, blnHasFieldNames
    strFile = Dir()
    Loop
    MsgBox "Importação da planilha excel para o banco de dados terminada."

    End Sub

      Data/hora atual: 25/9/2022, 15:52