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]Vinculo img.bmp no banco ACCESS 2003 atráves do formulário VBA/Excel

    avatar
    Obyi
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2
    Registrado : 10/02/2017

    [Resolvido]Vinculo img.bmp no banco ACCESS 2003 atráves do formulário VBA/Excel Empty [Resolvido]Vinculo img.bmp no banco ACCESS 2003 atráves do formulário VBA/Excel

    Mensagem  Obyi 10/2/2017, 12:52

    Bom dia pessoal,

    Sou novo no forum e gostaria da ajuda de vocês.

    Seguinte estou fazendo um programa que todo seus formulários estão em VBA/EXCEL e os dados de registro estão sendo armazenados em BD Access 2003.

    A questão e que criei um formulário para cadastro de cliente onde adiciono a foto e a foto e salva no BD.

    1 - Já coloquei no BD o campo como Objeto OLE

    2 - Eu já estou conseguindo salvar, mas aparece pramim como dados binários longos e não imagem bmp ou algo assim.

    3 - Alem de registrar a imagem vou precisar que ele busque a imagem e apareça pramim assim que eu digitar o codigo do cliente.

    Meu código abaixo:

    Private Sub btn_busca_Click()

    Dim ArchivoIMG As String

    ArchivoIMG = Application.GetOpenFilename("Imagens bmp,*.bmp", 0, "Selecionar Imagem")
    img_cadastro.Picture = LoadPicture(ArchivoIMG)
    img_cadastro.PictureSizeMode = fmPictureSizeModeStretch

    Dim strCaminho As String
    Dim strNomeImagem As String
    Dim descricao As String

    descricao = NomeImagem

    nome_arquivo = "Imagem" & "-" & descricao & ".bmp"

    Source = "d:\LocalData\pm13857\Desktop\Fotos" & "\"

    local_arquivo = Source & nome_arquivo

    strCaminho = strCaminho & nome_arquivo

    'SavePicture Me.img_cadastro.Picture, local_arquivo Desabilitado, pois estyou salvando no BD agora

    'Cria variável que armazena os comandos SQL
    Dim ComandoSQL As String
    Dim ID As Integer


    ID = txt_ID

    'Armazena na variável o comando que fará a consulta SQL no BD Access
    ComandoSQL = "select * from Tabela1"

    'Chama a rotina que faz a conexão com o BD
    Call Conectateste

    'Atribui a variável de Objeto de BD a execução dos comandos SQL
    Set consulta = banco.OpenRecordset(ComandoSQL)
    'Enquanto consulta (variável objeto do BD)...
    With consulta
    ' Add a new attachment.
    .AddNew

    .Fields("IMA") = "Aqui é onde o BD sabe que no campo IMA no BD ele deve preencher com a informação da consulta, como faço para adionar a imagem "

    .Update

    End With

    'Fecha o Recorset e a conexão com o BD
    consulta.Close
    banco.Close

    'Chama a rotina que desconecta do BD (libera variáveis objeto de BD)
    Call Desconecta

    'Exibe mensagem de sucesso na inclusão do registro
    MsgBox "Dados Inseridos com Sucesso!", vbDefaultButton1, "Novo Registro"

    Call UserForm_Initialize

    'Abandona a subrotina
    Exit Sub
    End Sub


    Obs. Nesse código ele está criando uma chave primaria automatic no BD e alimentando uma linha.

    Se poderem em ajuda aqui o código de leitura também:

    Private Sub btn_busca2_Click()

    Dim ID As String
    ID = Me.txt_login

    'carrega os usuarios
    'Cria variável que armazena os comandos SQL

    Dim ComandoSQL As String

    'Armazena na variável o comando que fará a consulta SQL no BD Access
    ComandoSQL = "select * from Tabela1 where ID like '" & ID & "' "

    'Chama a rotina que faz a conexão com o BD
    Call Conectateste

    'Atribui a variável objeto de BD a execução dos comandos SQL
    Set consulta = banco.OpenRecordset(ComandoSQL)

    'Tratamento de erro de acesso aos dados. Se houver erro, desvia o comando para o rótulo Sai
    On Error Resume Next

    Me.img_cadastro = consulta("IMA") And LoadPicture("IMA")
    Call Desconecta

    End Sub
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7701
    Registrado : 15/03/2013

    [Resolvido]Vinculo img.bmp no banco ACCESS 2003 atráves do formulário VBA/Excel Empty Re: [Resolvido]Vinculo img.bmp no banco ACCESS 2003 atráves do formulário VBA/Excel

    Mensagem  Alvaro Teixeira 23/2/2017, 00:09

    Olá Lucas, Bem-Vindo ao fórum.
    Já conseguiu resolver!
    O ideal para fotos é colocar numa sub-pasta os ficheiros de imagem e ligar (vincular) quando necessário (automaticamente).
    Assim não corre o risco da base de dados "inchar" rapidamente.
    Veja link abaixo se ajuda:
    https://www.maximoaccess.com/t23187-fotos-em-fomulario-continuo-access-2003
    Abraço
    avatar
    Obyi
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2
    Registrado : 10/02/2017

    [Resolvido]Vinculo img.bmp no banco ACCESS 2003 atráves do formulário VBA/Excel Empty Resolvido!

    Mensagem  Obyi 23/2/2017, 21:55

    Já resolvi... vlw

    O que eu fiz foi quando eu insiro a foto ele registrar no meu bd do access o caminho do arquivo e ao mesmo tempo salva uma cópia do img em um diretório.
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7701
    Registrado : 15/03/2013

    [Resolvido]Vinculo img.bmp no banco ACCESS 2003 atráves do formulário VBA/Excel Empty Re: [Resolvido]Vinculo img.bmp no banco ACCESS 2003 atráves do formulário VBA/Excel

    Mensagem  Alvaro Teixeira 23/2/2017, 23:10

    Olá Lucas Fernandes,
    É mesmo isso, o metodo mais correcto.
    Obrigado pelo retorno.
    Os utilizadores do forum agrradecem.
    Abraço

      Data/hora atual: 5/12/2022, 18:49