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
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