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]Erro ao passar parâmetro para função

    Compartilhe
    avatar
    everton3x
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 42
    Registrado : 29/01/2012

    [Resolvido]Erro ao passar parâmetro para função

    Mensagem  everton3x em Qua 17 Set 2014, 15:16

    Bom dia colegas:

    Estou recebendo erros relacionado ao tipo de um argumento passado para uma função.

    Chamo a função Import, aparece o erro "Tipo incompatível de argumento ByRef", e no editor do VBA aparece marcada em amarelo a linha "Public Sub Import(strSourceDir As String, arrFiles() As String, strOutputDir As String, intOutputFormat As Integer)" e aparece selecionado a última variável file da linha "SaveLog "Importação terminada para " & file, ImportFile(strSourceDir, file)".

    Se eu altero a linha "SaveLog "Importação terminada para " & file, ImportFile(strSourceDir, file)" para

    Código:
    SaveLog "Importação terminada para " & file, ImportFile(strSourceDir, ByVal file)

    então, ocorre o erro "Tipos incompatíveis".

    Se eu verifico o tipo da variável file dentro do for each, ele retorna String, o que é compatível com o tipo exigido pelo argumento strFile em ImportFile.

    Abaixo o código completo.

    Código:

    Public Sub Import(strSourceDir As String, arrFiles() As String, strOutputDir As String, intOutputFormat As Integer)
    Dim strOutputFormat As String

    SaveLog "Iniciando a conversão dos arquivos", True
    SaveLog "Diretório fonte dos arquivos do PAD: " & strSourceDir, True
    SaveLog "Diretório de saída dos dados: " & strOutputDir, True

    Select Case intOutputFormat
        Case 1
            strOutputFormat = "CSV"
        Case 2
            strOutputFormat = "Excel"
        Case 3
            strOutputFormat = "Access"
    End Select

    SaveLog "Formato de saída dos dados: " & strOutputFormat, True

    For Each files In arrFiles
        SaveLog files & " selecionado para importação", True
    Next


    For Each file In arrFiles
        SaveLog "Importação terminada para " & file, ImportFile(strSourceDir, file)
    Next

    End Sub

    Public Function ImportFile(strSourceDir As String, strFile As String)

    ImportFile = True
    End Function



    .................................................................................
    Everton da Rosa
    Win7 + MS Office 2013
    avatar
    everton3x
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 42
    Registrado : 29/01/2012

    Re: [Resolvido]Erro ao passar parâmetro para função

    Mensagem  everton3x em Qua 17 Set 2014, 15:28

    Que coisa. Se tivesse pesquisado mais 5 minutos não precisaria postar.

    Solucionei alterando o tipo de strFile para Variante na função ImportFile

    Código:
    Public Function ImportFile(strSourceDir As String, strFile As Variant)


    .................................................................................
    Everton da Rosa
    Win7 + MS Office 2013

      Data/hora atual: Sex 22 Set 2017, 07:23