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


2 participantes

    [Resolvido]Uso do Application.FileDialog para seleção de arquivos.

    Marcelo David
    Marcelo David
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3873
    Registrado : 21/04/2011

    filedialog escolher ficheiro - [Resolvido]Uso do Application.FileDialog para seleção de arquivos. Empty Uso do Application.FileDialog para seleção de arquivos.

    Mensagem  Marcelo David 25/6/2012, 14:29

    Meus amigos, bom dia!
    Abaixo disponibilizo um código envolvendo API do Windows
    que serve para abrir a caixa de dialogo de pesquisa de arquivos.

    Eu uso esse código em alguns aplicativos, em outros, uso apenas o
    Application.FileDialog , esse útimo já
    está nativamente no VBA e é muito simples. No help do Access tem exemplos
    e muitos detahes de seu uso. Mas quase não é usado.

    Minha dúvida está em saber quais asdifernças entre o uso dos dois. Pois
    o Application.FileDialog é muito simples de
    se usar e é nativamente incorporado ao VBA, mas é pouco usado, já o código abaixo, é enorme,
    complexo, mas também muito funcional e muito usado.

    Será que terei problemas posteriores em usar Application.FileDialog ? pois
    até agora não tive problema algum!

    Segue o código que a maioria usa:

    Código:
    Public Type OPENFILENAME
        lStructSize As Long
        hwndOwner As Long
        hInstance As Long
        lpstrFilter As String
        lpstrCustomFilter As String
        nMaxCustomFilter 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
        lCustData As Long
        lpfnHook As Long
        lpTemplateName As String
    End Type

    Public Const OFN_FILEMUSTEXIST = &H1000
    Public Const OFN_HIDEREADONLY = &H4
    Public Const OFN_PATHMUSTEXIST = &H800
    Const cTAMANHO = 11
    Public Declare Function GetOpenFileName Lib "comdlg32.dll" _
                                            Alias "GetOpenFileNameA" (lpofn As OPENFILENAME) As Long
    Public Declare Function GetPrivateProfileString Lib "Kernel32" Alias _
                                                    "GetPrivateProfileStringA" (ByVal lpApplicationName As String, _
                                                                                ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, _
                                                                                ByVal nSize As Long, ByVal lpFileName As String) As Long
    Public Declare Function WritePrivateProfileString Lib "Kernel32" Alias _
                                                      "WritePrivateProfileStringA" (ByVal lpApplicationName As String, _
                                                                                    ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long
    Public Declare Function FindWindow Lib "user32" Alias _
                                      "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As Long) As Long
    Public Declare Function SendMessage Lib "user32" Alias _
                                        "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, _
                                                        ByVal wParam As Long, ByVal lParam As Long) As Long

    Public Function Buscar(lngHwnd As Long, strTítulo As String, strPastaInicial As String, strFiltro As String) As String

        Dim filebox As OPENFILENAME
        Dim Result As Long
        With filebox
            .lStructSize = Len(filebox)
            .hwndOwner = lngHwnd
            .hInstance = 0
            .lpstrFilter = strFiltro & vbNullChar & _
                          "Todos os Arquivos (*.*)" & vbNullChar & "*.*" & vbNullChar & vbNullChar
            .nMaxCustomFilter = 0
            .nFilterIndex = 1
            .lpstrFile = Space(256) & vbNullChar
            .nMaxFile = Len(.lpstrFile)
            .lpstrFileTitle = Space(256) & vbNullChar
            .nMaxFileTitle = Len(.lpstrFileTitle)
            .lpstrInitialDir = strPastaInicial & vbNullChar
            .lpstrTitle = strTítulo & vbNullChar
            .flags = OFN_PATHMUSTEXIST Or OFN_FILEMUSTEXIST Or OFN_HIDEREADONLY
            .nFileOffset = 0
            .nFileExtension = 0
            .lCustData = 0
            .lpfnHook = 0
        End With

        Result = GetOpenFileName(filebox)
        If Result <> 0 Then
            Buscar = Left(filebox.lpstrFile, InStr(filebox.lpstrFile, vbNullChar) - 1)
        Else
            Buscar = ""
        End If

    End Function


    .................................................................................
    Aprenda como criar formulário desacoplado.
    Conheça meu canal no Youtube e se inscreva.
    filedialog escolher ficheiro - [Resolvido]Uso do Application.FileDialog para seleção de arquivos. Marcel11
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

    filedialog escolher ficheiro - [Resolvido]Uso do Application.FileDialog para seleção de arquivos. Empty Re: [Resolvido]Uso do Application.FileDialog para seleção de arquivos.

    Mensagem  JPaulo 25/6/2012, 15:09

    Muito sinceramente eu prefiro o nativo, sendo que temos de ter o cuidado de a Referencia VBA Microsoft Office xx.0 object library, esteja marcada, mas isso até no inicio do arranque do banco, pode chekar se é 11.0 ou 12.0 e setá-la.

    Já as API`s do Windows, estão muito limitadas aos 32 Bit`s.


    Function BuscaFotos()
    'Habilite a Referencia VBA Microsoft Office 12.0 object library (Ms Access 2007)
    'Ou Microsoft Office 11.0 object library (Ms Access 2003)

    Dim CaminhoDasFotos As String
    Dim JanelaDeProcura As Office.FileDialog
    Dim MeusFiltros As Office.FileDialogFilter

    Set JanelaDeProcura = Application.FileDialog(msoFileDialogFilePicker)

    With JanelaDeProcura
    .Title = "Selecione a Imagem"
    .Filters.Clear
    .Filters.Add "Image Files", "*.jpg, *.bmp, *.gif"

    .FilterIndex = 2

    .ButtonName = "Selecione"
    .InitialView = msoFileDialogViewDetails
    .InitialFileName = "C:\"
    If .Show = -1 Then
    CaminhoDasFotos = CStr(JanelaDeProcura.SelectedItems.Item(1))
    Else
    Exit Function
    End If
    Debug.Print CaminhoDasFotos
    End With
    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

    filedialog escolher ficheiro - [Resolvido]Uso do Application.FileDialog para seleção de arquivos. Folder_announce_new Utilize o Sistema de Busca do Fórum...
    filedialog escolher ficheiro - [Resolvido]Uso do Application.FileDialog para seleção de arquivos. Folder_announce_new 102 Códigos VBA Gratuitos...
    filedialog escolher ficheiro - [Resolvido]Uso do Application.FileDialog para seleção de arquivos. Folder_announce_new Instruções SQL como utilizar...

    JaimeSoares gosta desta mensagem

    Marcelo David
    Marcelo David
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3873
    Registrado : 21/04/2011

    filedialog escolher ficheiro - [Resolvido]Uso do Application.FileDialog para seleção de arquivos. Empty Re: [Resolvido]Uso do Application.FileDialog para seleção de arquivos.

    Mensagem  Marcelo David 27/6/2012, 04:08

    Muito grato JPaulo pela resposta!
    Eu também compartilho o seu mesmo pensamento.
    Mais alguém tem outro parecer?


    .................................................................................
    Aprenda como criar formulário desacoplado.
    Conheça meu canal no Youtube e se inscreva.
    filedialog escolher ficheiro - [Resolvido]Uso do Application.FileDialog para seleção de arquivos. Marcel11
    Marcelo David
    Marcelo David
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3873
    Registrado : 21/04/2011

    filedialog escolher ficheiro - [Resolvido]Uso do Application.FileDialog para seleção de arquivos. Empty Re: [Resolvido]Uso do Application.FileDialog para seleção de arquivos.

    Mensagem  Marcelo David 29/6/2012, 13:07

    Vou dar por resolvido esse assunto, mas se alguém tiver algo a mais,
    por favor reabri-lo. Very Happy

    Grato JPaulo por compartilhar sua preferencia!

    Abraço a todos!


    .................................................................................
    Aprenda como criar formulário desacoplado.
    Conheça meu canal no Youtube e se inscreva.
    filedialog escolher ficheiro - [Resolvido]Uso do Application.FileDialog para seleção de arquivos. Marcel11

    Conteúdo patrocinado


    filedialog escolher ficheiro - [Resolvido]Uso do Application.FileDialog para seleção de arquivos. Empty Re: [Resolvido]Uso do Application.FileDialog para seleção de arquivos.

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 28/4/2024, 03:24