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


3 participantes

    [Resolvido]Erro ao importar arquivo

    avatar
    esabbag
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 33
    Registrado : 27/07/2010

    [Resolvido]Erro ao importar arquivo Empty [Resolvido]Erro ao importar arquivo

    Mensagem  esabbag 12/10/2010, 12:09

    Bom dia.
    Uso Access 2010 - 64 bits.

    Tenho um formulário para fazer a importação de arquivos textos para o meu banco de dados.
    Quando usava o access de 32 bits essa importação funcionava, agora no 64 bits quando eu clico no botão localizar arquivos ele não funciona.

    O procedimento do evento do botão é o seguinte:

    Private Sub BtLocalizar_Click()
    Dim sFilter As String
    sFilter = "Arquivos de Texto (*.txt)" & Chr(0) & "*.txt" & Chr(0)
    Me.Arq = LocalizarArquivo("c:\caminho", "Localizando Arquivo", sFilter)
    End Sub

    E a função "LocalizarArquivo" é a seguinte:

    Option Compare Database
    Option Explicit

    Private Declare PtrSafe Function GetOpenFileName Lib "comdlg32.dll" Alias _
    "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long

    Private Type OPENFILENAME
    lStructSize As LongLong
    hwndOwner As LongLong
    hInstance As LongLong
    lpstrFilter As String
    lpstrCustomFilter As String
    nMaxCustFilter As LongLong
    nFilterIndex As LongLong
    lpstrFile As String
    nMaxFile As LongLong
    lpstrFileTitle As String
    nMaxFileTitle As LongLong
    lpstrInitialDir As String
    lpstrTitle As String
    flags As LongLong
    nFileOffset As Integer
    nFileExtension As Integer
    lpstrDefExt As String
    lCustData As LongLong
    lpfnHook As LongLong
    lpTemplateName As String
    End Type

    Public Function LocalizarArquivo(strDirIni As String, strTitulo As String, _
    strFiltro As String)
    Dim OpenFile As OPENFILENAME
    Dim lReturn As Long
    OpenFile.lStructSize = Len(OpenFile)
    OpenFile.lpstrFilter = strFiltro
    OpenFile.nFilterIndex = 1
    OpenFile.lpstrFile = String(257, 0)
    OpenFile.nMaxFile = Len(OpenFile.lpstrFile) - 1
    OpenFile.lpstrFileTitle = OpenFile.lpstrFile
    OpenFile.nMaxFileTitle = OpenFile.nMaxFile
    OpenFile.lpstrInitialDir = strDirIni
    OpenFile.lpstrTitle = strTitulo
    OpenFile.flags = 0
    lReturn = GetOpenFileName(OpenFile)
    If lReturn = 0 Then
    LocalizarArquivo = ""
    Else
    LocalizarArquivo = Trim(OpenFile.lpstrFile)
    End If
    End Function

    Por favor alguém me ajude a localizar o erro.
    Grato
    Elias
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11016
    Registrado : 04/11/2009

    [Resolvido]Erro ao importar arquivo Empty Re: [Resolvido]Erro ao importar arquivo

    Mensagem  JPaulo 12/10/2010, 14:29

    teste por favor;


    Private Declare Sub PathStripPath Lib "shlwapi.dll" _
    Alias "PathStripPathA" (ByVal pszPath As String)
    Private Declare Function GetOpenFileName Lib "comdlg32.dll" _
    Alias "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long

    Private Type OPENFILENAME
    lStructSize As LongLong
    hwndOwner As LongLong
    hInstance As LongLong
    lpstrFilter As String
    lpstrCustomFilter As String
    nMaxCustFilter As LongLong
    nFilterIndex As LongLong
    lpstrFile As String
    nMaxFile As LongLong
    lpstrFileTitle As String
    nMaxFileTitle As LongLong
    lpstrInitialDir As String
    lpstrTitle As String
    flags As LongLong
    nFileOffset As Integer
    nFileExtension As Integer
    lpstrDefExt As String
    lCustData As LongLong
    lpfnHook As LongLong
    lpTemplateName As String
    End Type

    Public Function LocalizarArquivo(strDirIni As String, strTitulo As String, _
    strFiltro As String)
    Dim OpenFile As OPENFILENAME
    Dim lReturn As Long
    OpenFile.lStructSize = Len(OpenFile)
    OpenFile.lpstrFilter = strFiltro
    OpenFile.nFilterIndex = 1
    OpenFile.lpstrFile = String(257, 0)
    OpenFile.nMaxFile = Len(OpenFile.lpstrFile) - 1
    OpenFile.lpstrFileTitle = OpenFile.lpstrFile
    OpenFile.nMaxFileTitle = OpenFile.nMaxFile
    OpenFile.lpstrInitialDir = strDirIni
    OpenFile.lpstrTitle = strTitulo
    OpenFile.flags = 0
    lReturn = GetOpenFileName(OpenFile)
    If lReturn = 0 Then
    LocalizarArquivo = ""
    Else
    LocalizarArquivo = Trim(OpenFile.lpstrFile)
    End If
    End Function



    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Erro ao importar arquivo Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Erro ao importar arquivo Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Erro ao importar arquivo Folder_announce_new Instruções SQL como utilizar...
    avatar
    esabbag
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 33
    Registrado : 27/07/2010

    [Resolvido]Erro ao importar arquivo Empty Re: [Resolvido]Erro ao importar arquivo

    Mensagem  esabbag 14/10/2010, 10:01

    Obrigado pela ajuda JPaulo, mas continua não funcionando.
    Quando clico no botão não acontece nada, ele teria que abrir uma janela para procurar o arquivo.

    Abraços
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11016
    Registrado : 04/11/2009

    [Resolvido]Erro ao importar arquivo Empty Re: [Resolvido]Erro ao importar arquivo

    Mensagem  JPaulo 14/10/2010, 10:06

    E o amigo tem a segurança de macros baixa ?

    Veja isso no botão do Office lado esquerdo.

    É que este PtrSafe no 64 bit não funfa mesmo, daí ter de ser assim como lhe passei.





    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Erro ao importar arquivo Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Erro ao importar arquivo Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Erro ao importar arquivo Folder_announce_new Instruções SQL como utilizar...
    avatar
    esabbag
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 33
    Registrado : 27/07/2010

    [Resolvido]Erro ao importar arquivo Empty Re: [Resolvido]Erro ao importar arquivo

    Mensagem  esabbag 14/10/2010, 12:19

    JPaulo.
    Sim todas as macros estão habilitadas.
    Sem o PtrSafe da erro, pede para atualizar o Declare com o PtrSafe.
    Grato
    Elias
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11016
    Registrado : 04/11/2009

    [Resolvido]Erro ao importar arquivo Empty Re: [Resolvido]Erro ao importar arquivo

    Mensagem  JPaulo 14/10/2010, 13:17

    Declaração da estrutura OPENFILENAME para o Access 2010 - 64 bits


    Option Explicit

    #If VBA7 Then
    Private Declare PtrSafe Sub PathStripPath Lib "shlwapi.dll" _
    Alias "PathStripPathA" (ByVal pszPath As String)
    Private Declare PtrSafe Function GetOpenFileName Lib "comdlg32.dll" _
    Alias "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long
    #Else
    Private Declare Sub PathStripPath Lib "shlwapi.dll" _
    Alias "PathStripPathA" (ByVal pszPath As String)
    Private Declare Function GetOpenFileName Lib "comdlg32.dll" _
    Alias "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long
    #End If

    Private Type OPENFILENAME
    lStructSize As Long
    #If VBA7 Then
    hwndOwner As LongPtr
    hInstance As LongPtr
    #Else
    hwndOwner As Long
    hInstance As Long
    #End If
    lpstrFilter As String
    lpstrCustomFilter As String
    nMaxCustFilter As Long
    nFilterIndex As Long
    lpstrFile As String
    nMaxFile As Long
    lpstrFileTitle As String
    nMaxFileTitle As Long
    lpstrInitialDir As String
    lpstrTitle As String
    flags As Long
    nFileOffset As Integer
    nFileExtension As Integer
    lpstrDefExt As String

    #If VBA7 Then
    lCustData As LongPtr
    lpfnHook As LongPtr
    #Else
    lCustData As Long
    lpfnHook As Long
    #End If
    lpTemplateName As String
    End Type


    'Constantes
    'Declaração da estrutura OPENFILENAME de 64 bits
    Private Const OFN_HIDEREADONLY = &H4

    #If VBA7 Then
    Public Function LocalizarArquivo(Handle As LongPtr, _
    Titre As String, _
    TypeRetour As Byte, _
    Optional TitreFiltre As String, _
    Optional TypeFichier As String, _
    Optional RepParDefaut As String) As String
    #Else
    Public Function LocalizarArquivo(Handle As Long, _
    Titre As String, _
    TypeRetour As Byte, _
    Optional TitreFiltre As String, _
    Optional TypeFichier As String, _
    Optional RepParDefaut As String) As String
    #End If

    Dim StructFile As OPENFILENAME
    Dim sFiltre As String

    'Construção de filtro com base nos argumentos especificados

    If Len(TitreFiltre) > 0 And Len(TypeFichier) > 0 Then
    sFiltre = TitreFiltre & " (" & TypeFichier & ")" & Chr$(0) & "*." & TypeFichier & Chr$(0)
    End If
    sFiltre = sFiltre & "Tous (*.*)" & Chr$(0) & "*.*" & Chr$(0)

    'Configuração da caixa de dialogo
    With StructFile
    .lStructSize = LenB(StructFile)
    .hwndOwner = Handle
    .lpstrFilter = sFiltre
    .lpstrFile = String$(254, vbNullChar)
    .nMaxFile = 254
    .lpstrFileTitle = String$(254, vbNullChar)
    .nMaxFileTitle = 254
    .lpstrTitle = Titre
    .flags = OFN_HIDEREADONLY
    If ((IsNull(RepParDefaut)) Or (RepParDefaut = "")) Then
    RepParDefaut = CurrentDb.Name
    PathStripPath (RepParDefaut)
    .lpstrInitialDir = Left(CurrentDb.Name, Len(CurrentDb.Name) - Len(Mid$(RepParDefaut, 1, _
    InStr(1, RepParDefaut, vbNullChar) - 1)))
    Else: .lpstrInitialDir = RepParDefaut
    End If
    End With

    If (GetOpenFileName(StructFile)) Then
    Select Case TypeRetour
    Case 1: LocalizarArquivo = Trim$(Left(StructFile.lpstrFile, InStr(1, StructFile.lpstrFile, vbNullChar) - 1))
    Case 2: LocalizarArquivo = Trim$(Left(StructFile.lpstrFileTitle, InStr(1, StructFile.lpstrFileTitle, vbNullChar) - 1))
    End Select
    End If

    End Function


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Erro ao importar arquivo Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Erro ao importar arquivo Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Erro ao importar arquivo Folder_announce_new Instruções SQL como utilizar...
    avatar
    Convidad
    Convidado


    [Resolvido]Erro ao importar arquivo Empty Re: [Resolvido]Erro ao importar arquivo

    Mensagem  Convidad 14/10/2010, 15:59

    http://msdn.microsoft.com/pt-br/library/ee691831(office.14).aspx
    avatar
    esabbag
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 33
    Registrado : 27/07/2010

    [Resolvido]Erro ao importar arquivo Empty Re: [Resolvido]Erro ao importar arquivo

    Mensagem  esabbag 14/10/2010, 20:42

    JPaulo coloquei o código que vc me passou.
    Agora quando clico no botão localizar arquivo está dando o seguinte erro:

    Erro de compilação:
    Tipo incompatível de argumento ByRef


    e marca o sFilter dessa linha:

    Me.Arq = LocalizarArquivo("c:\caminho", "Localizando Arquivo", sFilter)

    Por enquanto obrigado pela ajuda

    Ricardo
    Vou dar uma olhada no site do msdn
    Obrigado
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11016
    Registrado : 04/11/2009

    [Resolvido]Erro ao importar arquivo Empty Re: [Resolvido]Erro ao importar arquivo

    Mensagem  JPaulo 14/10/2010, 22:04

    teste assim;

    Arq = LocalizarArquivo(Me.Hwnd, "Localizando Arquivo", 1, "Ficheiro Texto ", "txt")
    DoCmd.TransferText acImportDelim, CSV_Format_Import, "Tabela temp", Arq, True
    Exit Sub



    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Erro ao importar arquivo Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Erro ao importar arquivo Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Erro ao importar arquivo Folder_announce_new Instruções SQL como utilizar...
    avatar
    esabbag
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 33
    Registrado : 27/07/2010

    [Resolvido]Erro ao importar arquivo Empty Re: [Resolvido]Erro ao importar arquivo

    Mensagem  esabbag 15/10/2010, 00:25

    JPaulo
    Beleza, agora funcionou.
    Muito obrigado
    Abraços
    Elias
    vieirasoft
    vieirasoft
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7304
    Registrado : 11/05/2010

    [Resolvido]Erro ao importar arquivo Empty Re: [Resolvido]Erro ao importar arquivo

    Mensagem  vieirasoft 15/10/2010, 00:57

    Dar o tópico por terminado. Obrigado

    Conteúdo patrocinado


    [Resolvido]Erro ao importar arquivo Empty Re: [Resolvido]Erro ao importar arquivo

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 28/3/2024, 11:54