Olá Feras, bom dia.
Depois de apanhar muito consegui desenvolver um código para que ao clicar duas vezes numa caixa de listagem o Microsoft Document Imaging exiba a imagem tif (multi-paginada) do item selecionado.
Vejam:
Private Sub lst_nomes_DblClick(Cancel As Integer)
Dim CaminhoDaImagem As String
CaminhoDaImagem = Chr(34) & Me.lst_nomes & Chr(34)
Call Shell("C:\Program Files\Common Files\microsoft shared\MODI\11.0\MSPVIEW.EXE " & CaminhoDaImagem, 0)
End Sub
A caixa de listagem possui o seguinte:
SELECT Consulta21.Caminho, Consulta21.Aluno, Consulta21.Curso, Consulta21.Semestre FROM Consulta21 WHERE (((Consulta21.Aluno) Like TodosAcentos(Forms!frmProtocolo.txt_nome & "*"))) ORDER BY [Curso], [Aluno];
Dessa forma aliei a busca avançada com a funcionalidade de exibir a referida imagem através do MS Document Imaging.
Note-se que a coluna 0 (zero) de list_Nomes está oculta e refere-se ao caminho das imagens, exemplo:
C:\GRADUAÇÃO 2011\ADMINISTRAÇÃO\1° SEMESTRE\DENIS FERNANDO C MUNIZ OGG DOS SANTOS\MATRICULA.tif
Através de uma consulta eu desmembro o caminho acima em diversas coluna como abaixo:
SELECT tblPastas.Código, tblPastas.Pastas, SeparaNomes([Pastas],"\",1) AS Diretório, SeparaNomes([Pastas],"\",2) AS Área, SeparaNomes([Pastas],"\",3) AS Curso, SeparaNomes([Pastas],"\",4) AS Semestre, SeparaNomes([Pastas],"\",5) AS Aluno, Left(SeparaNomes([Pastas],"\",5),Len(SeparaNomes([Pastas],"\",5))-
AS Alunos, SeparaNomes([Pastas],"\",6) AS Documentos
FROM tblPastas
WHERE (((SeparaNomes([Pastas],"\",3))=[Forms]![frmProtocolo]![cboCurso]));
Evidentemente utilizei também os Módulos TodosAcentos e o SeparaNomes, ambos cedidos pelo grande JPaulo
O SeparaNomes transcrevo abaixo:
Option Compare Database
Option Explicit
Public Function SeparaNomes(strFrase As String, QualSimboloVaiPartir As String, QualParteVaiSeparar As Integer) As String
'By@JPaulo2009 Dezembro
'Função separa uma frase pelas virgulas ou outro símbolo
'Exemplo: SeparaNomes("Esta é uma função\feita para separar palavras.", "\", 1)
'O 1 vai mostrar a primeira parte da frase, "Esta é uma função"
Dim strArray() As String
Dim strParteInteira As Integer
On Error GoTo Err_SeparaNomes
strArray = Split(strFrase, QualSimboloVaiPartir)
strParteInteira = UBound(strArray) + 1
If strParteInteira = 0 Then
SeparaNomes = strFrase
Exit Function
End If
If QualParteVaiSeparar = 0 Then
SeparaNomes = strFrase
Exit Function
ElseIf QualParteVaiSeparar > strParteInteira Then
QualParteVaiSeparar = strParteInteira
End If
SeparaNomes = Trim(strArray(QualParteVaiSeparar - 1))
Exit_SeparaNomes:
Exit Function
Err_SeparaNomes:
MsgBox err & " - " & Error$, vbExclamation, "Função SeparaNomes"
Resume Exit_SeparaNomes
Resume
End Function
O resultado conseguido foi esse:
[img]
[/img]
Abraços, WSenna