Convidad 23/2/2012, 13:00
Hugo
Vou postar um código que usei em 2000 para um estúdio fotográfico, que talvez te ajude.
Use a caixa para objeto OLE.
Na propriedade Ao Apertar tecla dessa caixa, coloque:
- Código:
Private Sub Foto_MouseDown(Button As Integer, Shift As Integer, x As Single, Y As Single)
Dim conCanceladoPeloUsuário As Integer
Dim OLE1 As Variant
Set OLE1 = Me!Foto
DoCmd.CancelEvent
If Button = acRightButton Then
' Mensagem de erro retornada quando o usuário cancela.
conCanceladoPeloUsuário = 2001
On Error GoTo BotãoErro
If OLE1.OLEType = acOLENone Then
' Nenhum objeto OLE criado.
' Exibe caixa de diálogo Inserir Objeto.
SendKeys "%d", False
SendKeys "{TAB} 5", False
SendKeys "{ENTER}", False
SendKeys "C:\STUDIO\IMAGENS\", False
OLE1.Action = acOLEInsertObjDlg
End If
End If
Exit Sub
BotãoErro:
If Err = conCanceladoPeloUsuário Then ' Exibir mensagem.
Exit Sub
End If
Resume Next
End Sub
O nome da caixaOle no código é Foto
A imagem tem que estar gravada numa pasta, como pode ver no algoritmo.
Mas creio que o processo é mais fácil e rápido do que o usuário estar coletando dados de outros aplicativos manualmente.
Obs.: Como é usado muito o sendkeys para ir direto na opção da janela que se abre, se teu Access for 2007+ terá que usar o sendkey do scripting.
Faça os testes necessários.
Espero que ajude
Abraços