Boa tarde,
Tenho uma tabela (TAB_IMAGENS) que possui 3 campos (CódigoProduto, URLImagem, Imagem), sendo que:
- CódigoProduto é campo tipo texto
- URLImagem é o endereço do arquivo, campo tipo texto (ex: F:\Imagens\foto1.gif)
- Imagem é um campo de ObjetoOLE onde quero armazenar as imagens
Tenho um formulário com vários registros e quero que quando clicar no OLE seja adicionado os dados na tabela TAB_IMAGENS
'Meu código ficou assim
Private Sub OLEAcopladoImagem_Click()
Dim Db As Database
Dim Rst As Recordset
Dim vCodProd As String
Dim vURLImagem As String
Dim vSQL As String
Set Db = CurrentDb
Set Rst = Db.OpenRecordset("TAB_IMAGENS")
vCodProd = Nz(Forms!FRM!CxtCodProd, "Não possui código")
'Verifica se o arquivo de imagem já existe no diretório
If Len(Dir("F:\Imagens\" & vCodProd & ".gif")) > 0 Then
vURLImagem = "F:\Imagens\" & vCodProd & ".gif"
vSQL = "INSERT INTO TAB_IMAGENS(CodProd, URLImagem, ImagemProd) VALUES ('" & vCodProd & "', '" & vURLImagem & "', '" & vURLImagem & "');"
Else
MsgBox "Não foi encontrado arquivo de imagem para serem inseridas e exibidas, ou a pasta/caminho foi removido/alterado."
End If
DoCmd.RunSQL (vSQL)
Set Rst = Nothing: Close
End Sub
A questão é que a instrução INSERT não adiciona a imagem no campo OLE, aparece apenas escrito no campo "DADOS BINÁRIOS LONGOS" e deveria aparecer "Foto do Microsoft Photo Editor 3.0"
Alguém tem um código para resolver isso?
Paulo
Tenho uma tabela (TAB_IMAGENS) que possui 3 campos (CódigoProduto, URLImagem, Imagem), sendo que:
- CódigoProduto é campo tipo texto
- URLImagem é o endereço do arquivo, campo tipo texto (ex: F:\Imagens\foto1.gif)
- Imagem é um campo de ObjetoOLE onde quero armazenar as imagens
Tenho um formulário com vários registros e quero que quando clicar no OLE seja adicionado os dados na tabela TAB_IMAGENS
'Meu código ficou assim
Private Sub OLEAcopladoImagem_Click()
Dim Db As Database
Dim Rst As Recordset
Dim vCodProd As String
Dim vURLImagem As String
Dim vSQL As String
Set Db = CurrentDb
Set Rst = Db.OpenRecordset("TAB_IMAGENS")
vCodProd = Nz(Forms!FRM!CxtCodProd, "Não possui código")
'Verifica se o arquivo de imagem já existe no diretório
If Len(Dir("F:\Imagens\" & vCodProd & ".gif")) > 0 Then
vURLImagem = "F:\Imagens\" & vCodProd & ".gif"
vSQL = "INSERT INTO TAB_IMAGENS(CodProd, URLImagem, ImagemProd) VALUES ('" & vCodProd & "', '" & vURLImagem & "', '" & vURLImagem & "');"
Else
MsgBox "Não foi encontrado arquivo de imagem para serem inseridas e exibidas, ou a pasta/caminho foi removido/alterado."
End If
DoCmd.RunSQL (vSQL)
Set Rst = Nothing: Close
End Sub
A questão é que a instrução INSERT não adiciona a imagem no campo OLE, aparece apenas escrito no campo "DADOS BINÁRIOS LONGOS" e deveria aparecer "Foto do Microsoft Photo Editor 3.0"
Alguém tem um código para resolver isso?
Paulo
Última edição por PauloRBatista em 18/5/2018, 17:29, editado 3 vez(es)