MaximoAccess

Caro Usuário, não tire as suas duvidas nas Salas de Repositório, abra sempre um novo tópico relacionado, nas salas destinadas para o efeito, como Sala de Tabelas, Consultas, Formulários, Relatórios, Macros, Módulos e VBA.

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

    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

    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 09 Dez 2016, 11:34