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

    Importar do excel para access(erro)

    Compartilhe

    shirohige
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 66
    Registrado : 07/11/2012

    Importar do excel para access(erro)

    Mensagem  shirohige em Sex 11 Mar 2016, 12:06

    Bom dia,

    Se possivel, gostaria de uma ajuda de vocês para melhorar o código de importação excel.

    Hoje estou utilizando o código abaixo para importar um arquivo excel para o access, mas ainda acho que ele tem alguns problemas e por isso estou pedindo ajuda.

    1- Quando ele não localiza o arquivo, o código trava. Gostaria de verificar antes se o arquivo existe na pasta.
    2- Eu tenho 8 label's no meu formUpdate (st1 até 8.), gostaria que apos verificar que o arquivo não exista ele transfira essa informação para o label dele. Já armazeno o nome do label na variavel semaforo ->>> Form_frmUpdate.semaforo.ForeColor = &HFF&
    mas esse código não funcionou como eu queria. (Erro de compilação)

    Muito Obrigado pela ajuda


    Código:
    caminho = CurrentProject.Path & "\Dados\"
    Dim oRS As DAO.Recordset, i As Integer, j As Integer, SFile As String
        Dim oXL As Excel.application
        Dim oWb As Excel.Workbook
        Dim oWs As Excel.Worksheet
        Dim oSelect As Excel.Range




    '---
      
        Set oXL = CreateObject("Excel.Application")
        SFile = caminho & "SapE" & refMes & TAM & ".xls"
        
        Set oWb = oXL.Workbooks.Open(SFile)
        Set oWs = oWb.ActiveSheet
        Set oSelect = oWs.Cells(4, 1).CurrentRegion
        Set oRS = CurrentDb.OpenRecordset("tblTeste")
        

              
          'LOOP for include data in database
        
          i2 = 1
           For i = 2 To oSelect.Rows.Count
            If (Not oSelect.Range("A" & i) Like "*Tipo*") And (Not oSelect.Range("C" & i) Like "*Resultado*") And (Not oSelect.Range("A" & i) Like "*Resultado*") Then
            


     i2 = i2 + 1
    Form_frmUpdate.shpProgressBar.Width = Form_frmUpdate.shpProgressBar.Width + e

                oRS.AddNew
                   oRS.Fields(0) = oSelect.Range("A" & i)  
                   oRS.Fields(1) = oSelect.Range("C" & i)  
                   oRS.Fields(2) = oSelect.Range("H" & i)  
                   oRS.Fields(3) = oSelect.Range("I" & i)  
                   oRS.Fields(4) = Replace(oSelect.Range("J" & i), "/", "")
                   oRS.Fields(5) = oSelect.Range("L" & i)  
                   oRS.Fields(6) = oSelect.Range("N" & i)  
                   oRS.Fields(7) = oSelect.Range("O" & i)  

                oRS.Update
                
                End If
           Next i
       oXL.Quit
      




      
    End If

    Mauricio.Santos
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 5
    Registrado : 15/02/2016

    Importar do excel para access(erro)

    Mensagem  Mauricio.Santos em Sex 11 Mar 2016, 17:53

    shirohige....

    Para verificar se um arquivo ou pasta existe utilize a função Dir[(pathname[, atributos])]
    Essa função retorna uma String que representa o nome de um arquivo, diretório ou pasta. Se o caminho não for encontrado ela retorna uma string de comprimento zero("") e você poderá tratar como desejar.

    Exemplo:

    Código:


        SFile = caminho & "SapE" & refMes & TAM & ".xls"

        If Dir(SFile) = vbNullString then

            SuaLabel.caption = "Arquivo não encontrado"
        
            .....Restante do código.....

        End If
        


    Dê uma olhada neste link para maiores informações.

    Espero ter ajudado.

    Sucesso!!!

    shirohige
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 66
    Registrado : 07/11/2012

    Re: Importar do excel para access(erro)

    Mensagem  shirohige em Seg 14 Mar 2016, 11:11

    No caso da verificação vou testar, mas o caso da label é diferente. Ele tem transferir a informação para label correta, porque tenho 8 label's e estou armazenando o nome delas na variavel semaforo.

      Data/hora atual: Ter 26 Set 2017, 15:26