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
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