Amigos, encontrei esta função para abrir pastas e
minha dúvida é se teria como ao abrí-la, ir para uma
determinada pasta, como por exemplo:
D:\Certificado Escritorio Conectividade Social
ou
D:\ArquivosXML
Pois sempre que ela é executada vai para "Meu computador"
Obrigado
Option Compare Database
Option Explicit
Private Type BROWSEINFO
hWndOwner As Long
pidlRoot As Long
pszDisplayName As Long
lpszTitle As Long
ulFlags As Long
lpfnCallback As Long
lParam As Long
iImage As Long
End Type
'Navegando para o diretório..
Private Const BIF_RETURNONLYFSDIRS = &H1 '&H1 'para localizar uma pasta para _
Inicie a pesquisa do documento.
Private Const BIF_DONTGOBELOWDOMAIN = &H2 '&H2 'para iniciar a localizar _
Computador.
Private Const BIF_STATUSTEXT = &H4
Private Const BIF_RETURNFSANCESTORS = &H8
Private Const BIF_BROWSEFORCOMPUTER = &H1000 'navegando para computadores.
Private Const BIF_BROWSEFORPRINTER = &H2000 'navegando para impressoras.
Private Const BIF_BROWSEINCLUDEFILES = &H4000 'navegando para tudo.
Private Const MAX_PATH = 260
Private Declare Sub CoTaskMemFree Lib "ole32.dll" (ByVal hMem As Long)
Private Declare Function lstrcat Lib "kernel32" Alias "lstrcatA" (ByVal _
lpString1 As String, ByVal lpString2 As String) As Long
Private Declare Function SHBrowseForFolder Lib "shell32" (lpbi As _
BROWSEINFO) As Long
Private Declare Function SHGetPathFromIDList Lib "shell32" ( _
ByVal pidList As Long, ByVal lpBuffer As String) As Long
Public Function BrowseForFolder(hWndOwner As Long, _
sPrompt As String) As String
'=======================================================
'Abre a caixa de diálogo do sistema para procurar pasta.
'=======================================================
Dim iNull As Integer
Dim lpIDList As Long
Dim lResult As Long
Dim sPath As String
Dim udtBI As BROWSEINFO
With udtBI
.hWndOwner = hWndOwner
.lpszTitle = lstrcat(sPrompt, "")
.ulFlags = BIF_RETURNONLYFSDIRS
End With
lpIDList = SHBrowseForFolder(udtBI)
If lpIDList Then
sPath = String$(MAX_PATH, 0)
lResult = SHGetPathFromIDList(lpIDList, sPath)
Call CoTaskMemFree(lpIDList)
iNull = InStr(sPath, vbNullChar)
If iNull Then
sPath = Left$(sPath, iNull - 1)
End If
End If
BrowseForFolder = sPath
End Function
Para Chamar a função estou usando:
Private Sub cmdLocalizarDiretorio_Click()
Dim MyStr As String
MyStr = BrowseForFolder(0, "Salvar BD em:")
End Sub
minha dúvida é se teria como ao abrí-la, ir para uma
determinada pasta, como por exemplo:
D:\Certificado Escritorio Conectividade Social
ou
D:\ArquivosXML
Pois sempre que ela é executada vai para "Meu computador"
Obrigado
Option Compare Database
Option Explicit
Private Type BROWSEINFO
hWndOwner As Long
pidlRoot As Long
pszDisplayName As Long
lpszTitle As Long
ulFlags As Long
lpfnCallback As Long
lParam As Long
iImage As Long
End Type
'Navegando para o diretório..
Private Const BIF_RETURNONLYFSDIRS = &H1 '&H1 'para localizar uma pasta para _
Inicie a pesquisa do documento.
Private Const BIF_DONTGOBELOWDOMAIN = &H2 '&H2 'para iniciar a localizar _
Computador.
Private Const BIF_STATUSTEXT = &H4
Private Const BIF_RETURNFSANCESTORS = &H8
Private Const BIF_BROWSEFORCOMPUTER = &H1000 'navegando para computadores.
Private Const BIF_BROWSEFORPRINTER = &H2000 'navegando para impressoras.
Private Const BIF_BROWSEINCLUDEFILES = &H4000 'navegando para tudo.
Private Const MAX_PATH = 260
Private Declare Sub CoTaskMemFree Lib "ole32.dll" (ByVal hMem As Long)
Private Declare Function lstrcat Lib "kernel32" Alias "lstrcatA" (ByVal _
lpString1 As String, ByVal lpString2 As String) As Long
Private Declare Function SHBrowseForFolder Lib "shell32" (lpbi As _
BROWSEINFO) As Long
Private Declare Function SHGetPathFromIDList Lib "shell32" ( _
ByVal pidList As Long, ByVal lpBuffer As String) As Long
Public Function BrowseForFolder(hWndOwner As Long, _
sPrompt As String) As String
'=======================================================
'Abre a caixa de diálogo do sistema para procurar pasta.
'=======================================================
Dim iNull As Integer
Dim lpIDList As Long
Dim lResult As Long
Dim sPath As String
Dim udtBI As BROWSEINFO
With udtBI
.hWndOwner = hWndOwner
.lpszTitle = lstrcat(sPrompt, "")
.ulFlags = BIF_RETURNONLYFSDIRS
End With
lpIDList = SHBrowseForFolder(udtBI)
If lpIDList Then
sPath = String$(MAX_PATH, 0)
lResult = SHGetPathFromIDList(lpIDList, sPath)
Call CoTaskMemFree(lpIDList)
iNull = InStr(sPath, vbNullChar)
If iNull Then
sPath = Left$(sPath, iNull - 1)
End If
End If
BrowseForFolder = sPath
End Function
Para Chamar a função estou usando:
Private Sub cmdLocalizarDiretorio_Click()
Dim MyStr As String
MyStr = BrowseForFolder(0, "Salvar BD em:")
End Sub