Bom pessoal, esta é minha primeira postagem no forum.
Tenho um formulário que com um campo lista que filtra alguns documentos com números específicos que possuem arquivos PDF gravados em uma determinada pasta de meu computador.
Estou utilizando a função fHandleFile(arg,arg) para abrir os arquivos PDF quando clico em um determinado botão.
A questão é que quando eu coloco a linha completa no primeiro argumento, como abaixo, o arquivo PDF é encontrado e abre sem problemas.
exemplo: Call fHandleFile("\\pe7466nt010\AA\2017\DOCs\04_2017\RAT_2045043.pdf", 1)
Porém eu necessito que parte do argumento seja varável, ou seja, localize o documento de acordo com aquele vinculado ao registro que escolho na lista, por exemplo - RAT_xxxxx.pdf.
exemplo2: Call fHandleFile("\\pe7466nt010\AA\2017\DOCs\04_2017\" & nomeArq, 1), onde o nomeArq varia de acordo com a linha selecionada
Segue o código utilizado abaixo
Private sub cmb_busca_click()
Dim nomeArq As String
nomeArq = "RAT_" & RAT1 & ".pdf"
Call fHandleFile("\\pe7466nt010\AA\2017\DOCs\04_2017\" & nomeArq, 1)
End Sub
Public Function fHandleFile(stFile As String, lShowHow As Long)
Dim lRet As Long, varTaskID As Variant
Dim stRet As String
'First try ShellExecute
lRet = apiShellExecute(hWndAccessApp, vbNullString, _
stFile, vbNullString, vbNullString, lShowHow)
If lRet > ERROR_SUCCESS Then
stRet = vbNullString
lRet = -1
Else
Select Case lRet
Case ERROR_NO_ASSOC:
'Try the OpenWith dialog
varTaskID = Shell("rundll32.exe shell32.dll,OpenAs_RunDLL " _
& stFile, Win_Normal)
lRet = (varTaskID <> 0)
Case ERROR_OUT_OF_MEM:
stRet = "Error: Out of Memory/Resources. Couldn't Execute!"
Case ERROR_FILE_NOT_FOUND:
stRet = "Error: File not found. Couldn't Execute!"
Case ERROR_PATH_NOT_FOUND:
stRet = "Error: Path not found. Couldn't Execute!"
Case ERROR_BAD_FORMAT:
stRet = "Error: Bad File Format. Couldn't Execute!"
Case Else:
End Select
End If
fHandleFile = lRet & _
IIf(stRet = "", vbNullString, ", " & stRet)
End Function
'************ Code End **********
Alguém poderia me dar uma luz?
Grato
Tenho um formulário que com um campo lista que filtra alguns documentos com números específicos que possuem arquivos PDF gravados em uma determinada pasta de meu computador.
Estou utilizando a função fHandleFile(arg,arg) para abrir os arquivos PDF quando clico em um determinado botão.
A questão é que quando eu coloco a linha completa no primeiro argumento, como abaixo, o arquivo PDF é encontrado e abre sem problemas.
exemplo: Call fHandleFile("\\pe7466nt010\AA\2017\DOCs\04_2017\RAT_2045043.pdf", 1)
Porém eu necessito que parte do argumento seja varável, ou seja, localize o documento de acordo com aquele vinculado ao registro que escolho na lista, por exemplo - RAT_xxxxx.pdf.
exemplo2: Call fHandleFile("\\pe7466nt010\AA\2017\DOCs\04_2017\" & nomeArq, 1), onde o nomeArq varia de acordo com a linha selecionada
Segue o código utilizado abaixo
Private sub cmb_busca_click()
Dim nomeArq As String
nomeArq = "RAT_" & RAT1 & ".pdf"
Call fHandleFile("\\pe7466nt010\AA\2017\DOCs\04_2017\" & nomeArq, 1)
End Sub
Public Function fHandleFile(stFile As String, lShowHow As Long)
Dim lRet As Long, varTaskID As Variant
Dim stRet As String
'First try ShellExecute
lRet = apiShellExecute(hWndAccessApp, vbNullString, _
stFile, vbNullString, vbNullString, lShowHow)
If lRet > ERROR_SUCCESS Then
stRet = vbNullString
lRet = -1
Else
Select Case lRet
Case ERROR_NO_ASSOC:
'Try the OpenWith dialog
varTaskID = Shell("rundll32.exe shell32.dll,OpenAs_RunDLL " _
& stFile, Win_Normal)
lRet = (varTaskID <> 0)
Case ERROR_OUT_OF_MEM:
stRet = "Error: Out of Memory/Resources. Couldn't Execute!"
Case ERROR_FILE_NOT_FOUND:
stRet = "Error: File not found. Couldn't Execute!"
Case ERROR_PATH_NOT_FOUND:
stRet = "Error: Path not found. Couldn't Execute!"
Case ERROR_BAD_FORMAT:
stRet = "Error: Bad File Format. Couldn't Execute!"
Case Else:
End Select
End If
fHandleFile = lRet & _
IIf(stRet = "", vbNullString, ", " & stRet)
End Function
'************ Code End **********
Alguém poderia me dar uma luz?
Grato