MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

Obrigado

Administração do MaximoAccess

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

    [Resolvido]Salvar uma imagem (.bmp) na tabela via VBA

    Compartilhe
    avatar
    good guy
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1043
    Registrado : 05/02/2010

    [Resolvido]Salvar uma imagem (.bmp) na tabela via VBA

    Mensagem  good guy em Sex 04 Abr 2014, 21:34

    Olá pessoal,

    Estou com dificuldade para criar um código em um botão para salvar uma imagem em um objeto OLE não acoplado. Tenho uma tabela (tblImagem) com dois campos: Codigo, Imagem. O campo Codigo é do tipo Numeração automática. A cada inserção iria para o registro seguinte. Pesquisei uma solução do Harrysohn, mas não consegui aplicá-la para o meu propósito. Se ele ler este tópico e puder me ajudar, ficaria agradecido. É claro, todos são bem-vindos e estarei imensamente grato.

    Tentei de forma simples com este código:

    Private Sub cmdLogo_Click()
    On Error Resume Next
    Dim sImagem As String
    Dim strSQL As String


    sImagem = Forms!Catálogo!cxImagem  'cxImagem é o objeto OLE Não acoplado
    strSQL = "INSERT INTO tblImagem(Imagem) VALUES('" & sImagem & "')"
    CurrentDb.Execute strSQL

    End Sub

    Por que declarei a variável sImagem como do tipo String?

    Porque funcionou perfeitamente a despeito de ser do tipo Variant neste código, o qual este último(tipo de dados) não funcionou:

    Private Sub cmdBorda_Click()
    On Error Resume Next
    Dim sImagem2 As String
    Dim strSQL2 As String
    Dim n As Integer


    n = DLookup("ID", "tblBordas", "ID = Forms!Catálogo!cboBordasCol")

    sImagem2 = DLookup("Bordas", "tblBordas", "ID = " & n)

    Me.cxImagem = sImagem2
      'Neste objeto OLE Não acoplado consigo visualizar a imagem pesquisada na tabela tblBordas.
    Me.cxImagem.Width = 4 * 567
    Me.cxImagem.Height = 2.5 * 567

    End Sub
    avatar
    formiga10x
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 754
    Registrado : 11/09/2013

    Re: [Resolvido]Salvar uma imagem (.bmp) na tabela via VBA

    Mensagem  formiga10x em Dom 06 Abr 2014, 04:26

    Não sei se ajuda mas..

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

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3672
    Registrado : 20/04/2011

    Re: [Resolvido]Salvar uma imagem (.bmp) na tabela via VBA

    Mensagem  Silvio em Dom 06 Abr 2014, 13:55

    Bom dia a todos...

    Não sei se vai lhe ajudar Good, mas eu uso essa rotina para incluir fotos...

    Código:
    Private Sub bt_adcfoto_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.localfoto = Mid([strCaminho], InStrRev([strCaminho], "\") + 1)
           
          Me.foto.Picture = CurrentProject.Path & "\funcionario\" & Me.localfoto.Value
        End If

    Na tabela tenho um campo "Localfoto "no formato de texto onde armazeno o local da mesma.
    No formulário, um quadro de imagem, com o nome de "foto".
    Eu não costumo armazenar imagens dentro do projeto ou do banco para não sobrecarregar o mesmo com o passar do tempo, jogo as imagens em uma pasta, aqui chamada "funcionário" e deixo essa pasta junto com o banco.


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    [Você precisa estar registrado e conectado para ver este link.]
    avatar
    good guy
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1043
    Registrado : 05/02/2010

    Salvar uma imagem(.bmp) na tabela via VBA

    Mensagem  good guy em Seg 07 Abr 2014, 17:51

    Obrigado amigos Formiga e Silvio,

    Vou tentar uma solução de cada vez. Primeiro vou considerar a do Silvio que está mais prático para copiar, colar e ajustar.
    Vamos tirar algumas dúvidas, Silvio:


    localfoto - ? Seria meu campo Imagem que é do tipo OBJETO OLE?


    Minha fonte de dados em um arquivo dentro da pasta onde está o bd. Como pode ser o campo Imagem do tipo Texto?. Aqui não entendi.

    tblImagem - Tabela com as fotos ou logos .bmp
    Campos - ID(Numeração Automática), Imagem (Objeto OLE)

    avatar
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 6505
    Registrado : 05/11/2009

    Re: [Resolvido]Salvar uma imagem (.bmp) na tabela via VBA

    Mensagem  Alexandre Neves em Seg 07 Abr 2014, 18:44

    Boa tarde, good guy
    Veja [Você precisa estar registrado e conectado para ver este link.]


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    avatar
    good guy
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1043
    Registrado : 05/02/2010

    Salvar uma imagem (.bmp) na tabela via VBA

    Mensagem  good guy em Seg 07 Abr 2014, 19:26

    Olá Alexandre,

    Esta solução o Formiga já apresentou. O problema que o código serve apenas para o VB6, o que não é o meu caso.
    avatar
    Silvio
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3672
    Registrado : 20/04/2011

    Re: [Resolvido]Salvar uma imagem (.bmp) na tabela via VBA

    Mensagem  Silvio em Seg 07 Abr 2014, 21:54

    Good, me passa teu mail, que vou te passar um que já esta rodando com todas as aplicações.
    No aguardo de tua resposta.

    Silvio


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    [Você precisa estar registrado e conectado para ver este link.]
    avatar
    good guy
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1043
    Registrado : 05/02/2010

    Salvar uma imagem (.bmp) na tabela via VBA

    Mensagem  good guy em Seg 07 Abr 2014, 22:05

    Olá Silvio,

    Você tem dropbox? Se for tão pesado assim, posta o link que eu baixo aqui. Tem as regras do fórum. Não podemos esquecê-las, grande amigo.


    Última edição por good guy em Seg 07 Abr 2014, 22:07, editado 1 vez(es)
    avatar
    Silvio
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3672
    Registrado : 20/04/2011

    Re: [Resolvido]Salvar uma imagem (.bmp) na tabela via VBA

    Mensagem  Silvio em Seg 07 Abr 2014, 22:06

    Sim eu sei das regras, mas o problema é que está feito e rodando em cliente.
    Não é pesado não...


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    [Você precisa estar registrado e conectado para ver este link.]
    avatar
    Jungli
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 639
    Registrado : 07/05/2010

    Re: [Resolvido]Salvar uma imagem (.bmp) na tabela via VBA

    Mensagem  Jungli em Seg 07 Abr 2014, 22:11

    Boa noite, tente assim:

       With Me.CampoNoFormulário
           .Class = "Paint.Picture"
           .OLETypeAllowed = acOLEEmbedded
           .SourceDoc = Caminho do BMP
           .Action = acOLECreateEmbed
       End With
       DoCmd.RunCommand acCmdSaveRecord
       Me.Repaint
    avatar
    Silvio
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3672
    Registrado : 20/04/2011

    Re: [Resolvido]Salvar uma imagem (.bmp) na tabela via VBA

    Mensagem  Silvio em Seg 07 Abr 2014, 22:11

    tem um aqui, que eu desenvolvi a muito tempo atrás.
    Anexos
    ProjetoCadastro.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (107 Kb) Baixado 123 vez(es)


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    [Você precisa estar registrado e conectado para ver este link.]
    avatar
    Silvio
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3672
    Registrado : 20/04/2011

    Re: [Resolvido]Salvar uma imagem (.bmp) na tabela via VBA

    Mensagem  Silvio em Seg 07 Abr 2014, 22:12

    Grande Jungli, não vi que estavas a responder também....desculpe !


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    [Você precisa estar registrado e conectado para ver este link.]
    avatar
    Jungli
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 639
    Registrado : 07/05/2010

    Re: [Resolvido]Salvar uma imagem (.bmp) na tabela via VBA

    Mensagem  Jungli em Seg 07 Abr 2014, 22:14

     Razz, mais informação = mais crescemos Wink
    avatar
    good guy
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1043
    Registrado : 05/02/2010

    Salvar uma imagem (.bmp) na tabela via VBA

    Mensagem  good guy em Seg 07 Abr 2014, 22:46

    Olá Silvio,

    Tentei seu exemplo, mas acusou a seguinte mensagem:

    O Microsoft Access não pode abrir o arquivo
    'C:\ProjetoCadastro\funcionario\1 - angelina.bmp'.  '(ou angelina.jpg original)


    Já no seu exemplo, Jungli acusou:

    Erro de compilação:
    Uso inválido de propriedade

    With Me
       .cxImagem    <=========
       .Class = "Paint.Picture"
       .OLETypeAllowed = acOLEEmbedded
       .SourceDoc = "F:\MeusAplicativos\Logos\EngenhariaCivil3.bmp"
       .Action = acOLECreateEmbed
      End With
      DoCmd.RunCommand acCmdSaveRecord
      Me.Repaint

    Estou postando o arquivo para os senhores analisarem:
    Anexos
    Aplicativo1.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (269 Kb) Baixado 34 vez(es)
    avatar
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 6505
    Registrado : 05/11/2009

    Re: [Resolvido]Salvar uma imagem (.bmp) na tabela via VBA

    Mensagem  Alexandre Neves em Seg 07 Abr 2014, 23:00

    Olá good guy
    Realmente, não me apercebi que estava a repetir a resposta
    Estou a tentar adaptar daqui (http://support.microsoft.com/default.aspx?scid=KB;en-us;q103257) mas ainda não consegui e não tenho tempo para continuar hoje a tentar


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    avatar
    Silvio
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3672
    Registrado : 20/04/2011

    Re: [Resolvido]Salvar uma imagem (.bmp) na tabela via VBA

    Mensagem  Silvio em Ter 08 Abr 2014, 11:43

    Bom dia a todos, saúde e paz !

    Good, eu acho que seria mais ou menos isso.


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    [Você precisa estar registrado e conectado para ver este link.]
    avatar
    Jungli
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 639
    Registrado : 07/05/2010

    Re: [Resolvido]Salvar uma imagem (.bmp) na tabela via VBA

    Mensagem  Jungli em Ter 08 Abr 2014, 15:00

    Bom dia, Wink

    vejamos se assim dá certo,
    Anexos
    Aplicativo1_god_old.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (310 Kb) Baixado 84 vez(es)
    avatar
    good guy
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1043
    Registrado : 05/02/2010

    Salvar uma imagem (.bmp) na tabela via VBA

    Mensagem  good guy em Ter 08 Abr 2014, 18:28

    Olá amigos,

    Gostei das duas soluções. Vou ter que fazer alguns testes para saber qual é a melhor solução no meu projeto. Estão de parabéns tanto o Silvio quanto o Jungli. Diante dos códigos apresentados vejo o quanto tenho que aprender ainda. Obrigado !!!
    avatar
    good guy
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1043
    Registrado : 05/02/2010

    Salvar uma imagem (.bmp) na tabela via VBA

    Mensagem  good guy em Ter 08 Abr 2014, 19:27

    Olá Jungli,

    Ao testar sua solução, verifiquei que ao colar uma figura (.bmp) e depois de inseri-la, quando volto a visualizá-la não é a mesma, mas uma figura padrão de sem imagem (X). Pode verificar?
    avatar
    Jungli
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 639
    Registrado : 07/05/2010

    Re: [Resolvido]Salvar uma imagem (.bmp) na tabela via VBA

    Mensagem  Jungli em Ter 08 Abr 2014, 19:40

    Boas Mestre God, Wink

    Atualize a sua cópia do db por favor.

    Código:
    Private Sub cmdLogo_Click()
        'On Error Resume Next
        Dim sImagem As String
        Dim strSQL As String
        '// Pega o nome do arquivo
            strCaminho = CurrentProject.Path & "\1050.bmp"
        '// Abre a imagem no formulário e popula na tabela
        If IsNull(Me.cxImagem.Value) Then
                If Len(strCaminho) > 0 Then
                    Me.cxImagem.Class = "Paint.Picture"
                    Me.cxImagem.OLETypeAllowed = acOLEEmbedded
                    Me.cxImagem.SourceDoc = Trim(strCaminho)
                    Me.cxImagem.Action = acOLECreateEmbed
                    '// Cria o recordset
                        Dim rst As DAO.Recordset
                        Set rst = CurrentDb.OpenRecordset("tblImagem")
                    '// Atualiza o formulário
                        Me.Recalc
                    '// Popula o recordset
                        rst.AddNew
                        rst.Fields("Imagem").Value = Me.cxImagem.Value
                        rst.Update
                    '// Fecha o recordset e limpa a memória
                        Set rst = Nothing: Close
                End If
        Else
                    Me.cxImagem.Class = "Paint.Picture"
                    Me.cxImagem.OLETypeAllowed = acOLEEmbedded
                    '// Abre o recordset
                        Set rst = CurrentDb.OpenRecordset("tblImagem")
                    '// Atualiza o formulário
                        Me.Recalc
                    '// Popula o recordset
                        rst.AddNew
                        rst.Fields("Imagem").Value = Me.cxImagem.Value
                        rst.Update
                    '// Fecha o recordset e limpa a memória
                        Set rst = Nothing: Close
        End If
    End Sub
    avatar
    good guy
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1043
    Registrado : 05/02/2010

    Salvar uma imagem (.bmp) na tabela via VBA

    Mensagem  good guy em Ter 08 Abr 2014, 20:16

    OK Jungli,

    Agora funfou.

    Obrigadão !!!

    P.S.: Por favor, altere meu nome de God(Deus) para Good (Legal). Deus só há um. É Ele, o Criador, que nos capacita a todos nós.
    avatar
    Jungli
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 639
    Registrado : 07/05/2010

    Re: [Resolvido]Salvar uma imagem (.bmp) na tabela via VBA

    Mensagem  Jungli em Ter 08 Abr 2014, 21:09

    Ok Goog guy...


      Data/hora atual: Ter 21 Nov 2017, 00:55