MaximoAccess

Caro Usuário, não tire as suas duvidas nas Salas de Repositório, abra sempre um novo tópico relacionado, nas salas destinadas para o efeito, como Sala de Tabelas, Consultas, Formulários, Relatórios, Macros, Módulos e VBA.

Obrigado

Administração do MaximoAccess

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access

    Decifrando um código para abrir caixa de localizar arquivo

    Compartilhe

    julianovv
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 523
    Registrado : 14/12/2010

    Decifrando um código para abrir caixa de localizar arquivo

    Mensagem  julianovv em Qui 13 Fev 2014, 13:07

    Bom dia! Tenho um formulário com um campo para foto e estou tentando inserir um botão com um código para abrir a caixa de diálogo Inserir Arquivo mas dá erro de compilação na palavra em negrito abaixo.

    Dim strCaminho As String, strPastaInicial As String
       strPastaInicial = "C:\Meus Documentos"
       strCaminho = Buscar(Me.hwnd, "Inserir foto", strPastaInicial, _
       "Arquivos gráficos (*.bmp; *.gif; *.jpg)" & vbNullChar & "*.bmp; *.gif; *.jpg")
       If Len(strCaminho) > 0 Then
           Me.LocalFoto = strCaminho
           Me.foto.Picture = Me.LocalFoto
       End If

    End Sub

    O erro é "Erro de compilação. 'Sub' ou 'Function' não definida.

    Obrigado!
     Rolling Eyes


    .................................................................................
    Juliano

    Uso o Access 2007 no XP SP3
    Pentil 4 Duo Core 2 - 3.2 ghz  - HD 250 GB ATA II - Placa Asus P5LD2-X - 2 GB de memória DDR2 667 mhz Kingston - GForce GT220 - Monitor 17" LCD 732N Samsung - Impressora Epson T33
    [Você precisa estar registrado e conectado para ver esta imagem.]

    Pina
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 345
    Registrado : 19/02/2011

    Re: Decifrando um código para abrir caixa de localizar arquivo

    Mensagem  Pina em Qui 13 Fev 2014, 13:21

    Bom dia juluano
    Eu faço assim:
    Dim strCaminho As String, strPastaInicial As String
    strPastaInicial = "C:\"
    strCaminho = Buscar(Me.hwnd, "Inserir foto", strPastaInicial, _
    "Fotos dos Alunos (*.bmp; *.gif; *.jpg)" & vbNullChar & "*.bmp; *.gif; *.jpg")
    If Len(strCaminho) > 0 Then
    Me.LocalFoto = strCaminho
    Me.Foto.Picture = Me.LocalFoto
    Me.Foto.Visible = True

    End If
    End Sub

    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

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

    Re: Decifrando um código para abrir caixa de localizar arquivo

    Mensagem  JPaulo em Qui 13 Fev 2014, 13:45

    "Buscar" é uma função, onde está o seu código dessa função ?

    Tudo isto tem de estar dentro de um modulo.


    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


    Veja este meu exemplo;

    [Você precisa estar registrado e conectado para ver este link.]


    .................................................................................
    Sucesso e Bons Estudos
    Success and Good Studies

    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]

    julianovv
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 523
    Registrado : 14/12/2010

    Res: Decifrando um código para abrir caixa de localizar arquivo

    Mensagem  julianovv em Seg 17 Fev 2014, 12:38

    Obrigado JPaulo, a caixa de diálogo agora abriu e pude localizar a foto mas deu um novo erro no botão, no evento ao clicar.

    Private Sub Comando132_Click()
    Dim strCaminho As String, strPastaInicial As String
      strPastaInicial = "C:\Meus Documentos"
      strCaminho = Buscar(Me.hwnd, "Inserir foto", strPastaInicial, _
      "Arquivos gráficos (*.bmp; *.gif; *.jpg)" & vbNullChar & "*.bmp; *.gif; *.jpg")
      If Len(strCaminho) > 0 Then
          Me.foto = strCaminho
          Me.foto.Picture = Me.foto
      End If

    End Sub

    Essa linha em negrito indica uma função ou o nome do campo da foto?
    Mensagem: "Erro em tempo de execução '438'. O objeto não aceita esta propriedade ou método".


    Obrigado!


    Última edição por julianovv em Seg 17 Fev 2014, 12:43, editado 1 vez(es)


    .................................................................................
    Juliano

    Uso o Access 2007 no XP SP3
    Pentil 4 Duo Core 2 - 3.2 ghz  - HD 250 GB ATA II - Placa Asus P5LD2-X - 2 GB de memória DDR2 667 mhz Kingston - GForce GT220 - Monitor 17" LCD 732N Samsung - Impressora Epson T33
    [Você precisa estar registrado e conectado para ver esta imagem.]

    julianovv
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 523
    Registrado : 14/12/2010

    Res: Decifrando um código para abrir caixa de localizar arquivo

    Mensagem  julianovv em Seg 17 Fev 2014, 12:42

    Obrigado Pina, fiz um teste e deu o mesmo erro no código como mostrei ao JPaulo.



    .................................................................................
    Juliano

    Uso o Access 2007 no XP SP3
    Pentil 4 Duo Core 2 - 3.2 ghz  - HD 250 GB ATA II - Placa Asus P5LD2-X - 2 GB de memória DDR2 667 mhz Kingston - GForce GT220 - Monitor 17" LCD 732N Samsung - Impressora Epson T33
    [Você precisa estar registrado e conectado para ver esta imagem.]

    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

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

    Re: Decifrando um código para abrir caixa de localizar arquivo

    Mensagem  JPaulo em Seg 17 Fev 2014, 13:38

    Vamos lá que é o simples;

    Me.foto é um campo texto, que deve estar na tabela para receber o caminho da foto.
    Me.xxxx.Picture é um controle de imagem para receber a foto.

    Veja este exemplo e vai entender o que falo.

    [Você precisa estar registrado e conectado para ver este link.]


    .................................................................................
    Sucesso e Bons Estudos
    Success and Good Studies

    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]

    julianovv
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 523
    Registrado : 14/12/2010

    Res: Decifrando um código para abrir caixa de localizar arquivo

    Mensagem  julianovv em Seg 17 Fev 2014, 14:27

    Obrigado! Não consegui abrir o exemplo; deu erro na abertura do link. Tento em casa a noite.
    A princípio ainda não deu certo. Ele continua dando a mensagem de erro em tempo de execução.
    O campo 'foto' tem que ser formato texto?
    Fiz essa alteração, era objeto OLE e mudei para texto. Mesmo asim não deu.

     Wink 



    .................................................................................
    Juliano

    Uso o Access 2007 no XP SP3
    Pentil 4 Duo Core 2 - 3.2 ghz  - HD 250 GB ATA II - Placa Asus P5LD2-X - 2 GB de memória DDR2 667 mhz Kingston - GForce GT220 - Monitor 17" LCD 732N Samsung - Impressora Epson T33
    [Você precisa estar registrado e conectado para ver esta imagem.]

    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

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

    Re: Decifrando um código para abrir caixa de localizar arquivo

    Mensagem  JPaulo em Seg 17 Fev 2014, 14:37

    O amigo está a meter as mãos pelos pés, rsrsrsrsrs

    Quer ou pode anexar aqui parte do seu banco com esse suposto problema ?


    .................................................................................
    Sucesso e Bons Estudos
    Success and Good Studies

    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]

    Pina
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 345
    Registrado : 19/02/2011

    Decifrando um código para abrir caixa de localizar arquivo.

    Mensagem  Pina em Seg 17 Fev 2014, 16:39

    Bom dia juliano
    Envio um ex de como eu faço.
    Anexos
    Foto.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (24 Kb) Baixado 15 vez(es)

    julianovv
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 523
    Registrado : 14/12/2010

    Res: Decifrando um código para abrir caixa de localizar arquivo

    Mensagem  julianovv em Qua 19 Fev 2014, 12:24

    Bom dia JPaulo, na verdade minha experiência com vba é muito pequena; então quando me deparo com algum código maior que minha experiência tenho que pedir ajuda aos colegas. Rolling Eyes 
    Tenho um sisteminha de controle de vendas de bolsas e sapatos e nele constam as fotos. Essa caixa de diálogo seria necessária para inserir a foto.
    O exemplo ainda não peguei mas logo mando um retorno.
    Obrigado!
     Smile


    .................................................................................
    Juliano

    Uso o Access 2007 no XP SP3
    Pentil 4 Duo Core 2 - 3.2 ghz  - HD 250 GB ATA II - Placa Asus P5LD2-X - 2 GB de memória DDR2 667 mhz Kingston - GForce GT220 - Monitor 17" LCD 732N Samsung - Impressora Epson T33
    [Você precisa estar registrado e conectado para ver esta imagem.]

    julianovv
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 523
    Registrado : 14/12/2010

    Res: Decifrando um código para abrir caixa de localizar arquivo

    Mensagem  julianovv em Qua 19 Fev 2014, 19:28

    Prezado JPaulo, tentei baixar seu exemplo pelo link que enviou mas veio um arquivo exe com um bocado de vírus junto...rsrs Meu Avast acusou ameaça de vírus e conseguiu desconfigurar meu Google Chrome. É possível enviar somente o arquivo rar por aqui?

     Wink 


    .................................................................................
    Juliano

    Uso o Access 2007 no XP SP3
    Pentil 4 Duo Core 2 - 3.2 ghz  - HD 250 GB ATA II - Placa Asus P5LD2-X - 2 GB de memória DDR2 667 mhz Kingston - GForce GT220 - Monitor 17" LCD 732N Samsung - Impressora Epson T33
    [Você precisa estar registrado e conectado para ver esta imagem.]

    Pina
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 345
    Registrado : 19/02/2011

    Decifrando um código para abrir caixa de localizar arquivo.

    Mensagem  Pina em Qua 19 Fev 2014, 19:41

    Boas juliano
    Não consegue resolver com o ex. que lhe enviei?
    Pina

    julianovv
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 523
    Registrado : 14/12/2010

    Res: Decifrando um código para abrir caixa de localizar arquivo

    Mensagem  julianovv em Qua 19 Fev 2014, 20:04

    Sim, estou testando ele. Logo logo mando um retorno!
    Obrigado!

     Wink 


    .................................................................................
    Juliano

    Uso o Access 2007 no XP SP3
    Pentil 4 Duo Core 2 - 3.2 ghz  - HD 250 GB ATA II - Placa Asus P5LD2-X - 2 GB de memória DDR2 667 mhz Kingston - GForce GT220 - Monitor 17" LCD 732N Samsung - Impressora Epson T33
    [Você precisa estar registrado e conectado para ver esta imagem.]

    julianovv
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 523
    Registrado : 14/12/2010

    Res: Decifrando um código para abrir caixa de localizar arquivo

    Mensagem  julianovv em Qua 19 Fev 2014, 21:46

    Pina, está dando certo. Fiz uma adaptação para o meu sistema e está tudo ok.
    Só mais uma dúvida:
    Preciso criar relatórios que incluem essas fotos. Como insiro elas?
    Obrigado!

     Wink 


    .................................................................................
    Juliano

    Uso o Access 2007 no XP SP3
    Pentil 4 Duo Core 2 - 3.2 ghz  - HD 250 GB ATA II - Placa Asus P5LD2-X - 2 GB de memória DDR2 667 mhz Kingston - GForce GT220 - Monitor 17" LCD 732N Samsung - Impressora Epson T33
    [Você precisa estar registrado e conectado para ver esta imagem.]

    Pina
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 345
    Registrado : 19/02/2011

    Decifrando um código para abrir caixa de localizar arquivo.

    Mensagem  Pina em Qua 19 Fev 2014, 22:15

    Boas juliano
    No ex: que enviei já ia um relatório
    Pina

    Dilson
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1602
    Registrado : 11/11/2009

    Re: Decifrando um código para abrir caixa de localizar arquivo

    Mensagem  Dilson em Qua 19 Fev 2014, 22:21

    Olá,

    Para promover a qualidade no conteúdo do fórum, aconselho abrir outro tópico na sala relatórios para tratar dessa nova dúvida.

    Editado:
    Se no exemplo postado pelo Pina tem a solução, então permaneça aqui a discussão.

    Marque o resolvido ao final.


    .................................................................................
    Atenção:
    => Antes de implementar qualquer dica, faça um backup do seu projeto;
    => Retorne para marcar o Resolvido ou continuar a discussão;
    => Sempre realize pesquisas antes de postar uma pergunta;

    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

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

    Re: Decifrando um código para abrir caixa de localizar arquivo

    Mensagem  JPaulo em Qui 20 Fev 2014, 09:28

    Ola;

    Juliano, por vezes temos de saír da sombra da bananeira e ir à descoberta... Laughing 

    Na mensagem Nº6, o exemplo que lhe passei tem relatorio com fotos.


    .................................................................................
    Sucesso e Bons Estudos
    Success and Good Studies

    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]

    julianovv
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 523
    Registrado : 14/12/2010

    Res: Decifrando um código para abrir caixa de localizar arquivo

    Mensagem  julianovv em Qui 20 Fev 2014, 13:15

    Bom dia JPaulo, sair da sombra da bananeira até que é fácil; o problema é quando não encontramos as respostas na hora que precisamos e temos de recorrer à ela para resolver mais rápido..rsrs.
    Da minha parte pesquiso muito. Todas as idéias são analisadas e algumas adaptadas mas cada caso é um caso e é preciso recorrer ao fórum para tentar resolver.

     Wink 


    .................................................................................
    Juliano

    Uso o Access 2007 no XP SP3
    Pentil 4 Duo Core 2 - 3.2 ghz  - HD 250 GB ATA II - Placa Asus P5LD2-X - 2 GB de memória DDR2 667 mhz Kingston - GForce GT220 - Monitor 17" LCD 732N Samsung - Impressora Epson T33
    [Você precisa estar registrado e conectado para ver esta imagem.]

      Data/hora atual: Ter 06 Dez 2016, 05:41