OVH Cloud OVH Cloud

Imafes TIF Access 2003

23 réponses
Avatar
Bruno Frisque
Bonjour le groupe.

Les images Tif s'affichent bien sous Access 2003/Win XP, mais seulement dans
une "Image".
C'est-à-dire pas moyen d'activer l'image via le viewer par défaut.
Pour ce faire il faut un OLE Bound Object avec le code suivant :

Private Sub Form_Current()
'Olebound7 : Création du lien
[OLEBound7].Class = "picture"
[OLEBound7].OLETypeAllowed = acOLELinked
[OLEBound7].SourceDoc = "C:\Data\L05d1.tif" ' Specify source file.
[OLEBound7].Action = acOLECreateLink ' Create linked object.
[OLEBound7].SizeMode = acOLESizeZoom ' ok full image si consultation
End Sub

En double cliquant, l'image s'ouvre. Cela marche parfaitement sous Access
2000 et 2002.
Mais 2003 donne message d'erreur :
"Erreur d'exécution 2753. un pb est survenu durant la communication entre
Access et le serveur OLE ou le contrôle activex"

Quelqu'un parmi vous aurait-il une idée ?
Ou pourrait tester (A2003) mon petit form possédant les 3 types d'affichage
des images ?
D'avance merci

3 réponses

1 2 3
Avatar
3stone
re,

"Bruno Frisque"
| Le ViewerPath est construit par l'API de Lebans.


je ne vois pas de quelle API Lebans tu parle...

http://www.mvps.org/accessfr/apis/api0023.htm

Mais, la chaîne retournée par cette fonction n'est pas "nettoyée"

utilise cette version corrigée:



Function fFindEXE(stFile As String, _
stDir As String) _
As String
'Usage Example:
' ?fFindEXE("test.xls","c:temp")
'
Dim lpResult As String
Dim lngRet As Long, pos As Integer

lpResult = Space(cMAX_PATH)
lngRet = apiFindExecutable(stFile, stDir, lpResult)

If lngRet > 32 Then
pos = InStr(1, lpResult, Chr(0), vbBinaryCompare) - 1
fFindEXE = Left(lpResult, pos)
Else
Select Case lngRet:
Case ERROR_NOASSOC: fFindEXE = "Error: No Association"
Case ERROR_FILE_NOT_FOUND: fFindEXE = "Error: File Not Found"
Case ERROR_PATH_NOT_FOUND: fFindEXE = "Error: Path Not Found"
Case ERROR_BAD_FORMAT: fFindEXE = "Error: Bad File Format"
Case ERROR_OUT_OF_MEM: fFindEXE = "Error: Out of Memory"
End Select
End If

End Function



ensuite tu fais comme prévu en ajoutant un espace entre les deux...


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
Avatar
Bruno Frisque
Merci je vais essayer çà ...
Dur dur ce (petit ?) problème

encore merci
à +


"3stone" wrote in message
news:
re,

"Bruno Frisque"
| Le ViewerPath est construit par l'API de Lebans.


je ne vois pas de quelle API Lebans tu parle...

http://www.mvps.org/accessfr/apis/api0023.htm

Mais, la chaîne retournée par cette fonction n'est pas "nettoyée"

utilise cette version corrigée:



Function fFindEXE(stFile As String, _
stDir As String) _
As String
'Usage Example:
' ?fFindEXE("test.xls","c:temp")
'
Dim lpResult As String
Dim lngRet As Long, pos As Integer

lpResult = Space(cMAX_PATH)
lngRet = apiFindExecutable(stFile, stDir, lpResult)

If lngRet > 32 Then
pos = InStr(1, lpResult, Chr(0), vbBinaryCompare) - 1
fFindEXE = Left(lpResult, pos)
Else
Select Case lngRet:
Case ERROR_NOASSOC: fFindEXE = "Error: No Association"
Case ERROR_FILE_NOT_FOUND: fFindEXE = "Error: File Not Found"
Case ERROR_PATH_NOT_FOUND: fFindEXE = "Error: Path Not Found"
Case ERROR_BAD_FORMAT: fFindEXE = "Error: Bad File Format"
Case ERROR_OUT_OF_MEM: fFindEXE = "Error: Out of Memory"
End Select
End If

End Function



ensuite tu fais comme prévu en ajoutant un espace entre les deux...


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/



Avatar
Bruno Frisque
Tout grand merci !!

L'api Lebans, que tu m'avais communiquée, est bien celle de ton lien.

Oui çà marche maintenant, avec le code "corrigé" ! <<
Dim lpResult As String
Dim lngRet As Long
Dim pos '<<
lpResult = Space(cMAX_PATH)
lngRet = apiFindExecutable(stFile, stDir, lpResult)

If lngRet > 32 Then
pos = InStr(1, lpResult, Chr(0), vbBinaryCompare) - 1 '<< new et
incompréhensible ..
fFindEXE = Left(lpResult, pos) ' <<new
ViewerPath = Left(lpResult, pos) 'lpResult '<< new
Else
Select Case lngRet:
Case ERROR_NOASSOC: fFindEXE = "Error: No Association"
Case ERROR_FILE_NOT_FOUND: fFindEXE = "Error: File Not Found"
Case ERROR_PATH_NOT_FOUND: fFindEXE = "Error: Path Not Found"
Case ERROR_BAD_FORMAT: fFindEXE = "Error: Bad File Format"
Case ERROR_OUT_OF_MEM: fFindEXE = "Error: Out of Memory"
End Select
End If
Debug.Print "viewer's name at MODULE:" & ViewerPath & "."
qui donne :
'viewer's name at MODULE:C:Program FilesImaging ProfessionalKodakimg.exe.
< le dot est nickel ...

C'est donc devenu, par enchantement, et par 3stone, PARFAIT!
Et au Form, le double click ouvre le default viewer ET LE FICHIER !!

C'est simplement GENIAL....

Tout tout grand merci encore
à +

et à charge de revanche .. mais çà m'étonnerait...:-(



"3stone" wrote in message
news:
re,

"Bruno Frisque"
| Le ViewerPath est construit par l'API de Lebans.


je ne vois pas de quelle API Lebans tu parle...

http://www.mvps.org/accessfr/apis/api0023.htm

Mais, la chaîne retournée par cette fonction n'est pas "nettoyée"

utilise cette version corrigée:



Function fFindEXE(stFile As String, _
stDir As String) _
As String
'Usage Example:
' ?fFindEXE("test.xls","c:temp")
'
Dim lpResult As String
Dim lngRet As Long, pos As Integer

lpResult = Space(cMAX_PATH)
lngRet = apiFindExecutable(stFile, stDir, lpResult)

If lngRet > 32 Then
pos = InStr(1, lpResult, Chr(0), vbBinaryCompare) - 1
fFindEXE = Left(lpResult, pos)
Else
Select Case lngRet:
Case ERROR_NOASSOC: fFindEXE = "Error: No Association"
Case ERROR_FILE_NOT_FOUND: fFindEXE = "Error: File Not Found"
Case ERROR_PATH_NOT_FOUND: fFindEXE = "Error: Path Not Found"
Case ERROR_BAD_FORMAT: fFindEXE = "Error: Bad File Format"
Case ERROR_OUT_OF_MEM: fFindEXE = "Error: Out of Memory"
End Select
End If

End Function



ensuite tu fais comme prévu en ajoutant un espace entre les deux...


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/



1 2 3