Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Access, creation d'etat et insertion d'image

F

Fanfan

Guest
Salut,

Je suis en train de creer une base de données et je voudrais pouvoir y associer une photo à un champs de la base de données.

Comment puis-je faire pour integrer l'adresse de l'image à un champ de cette table, pour pouvoir ensuite la recuperer dans un etat par exemple.

@plus.
 
Y

ycov

Guest
je pense que j'utiliserais un champ texte (taille 255)pour la référence de l'image

j'utilise une fonction qui affiche l'image en association avec son chemin sur le réseau .
exemple
je crée un livre de recette et je voudrais joindre la photo de la recette sur mon formulaire

je crée deux boutons sur mon formulaire, un pour ajouter la photo, un autre pour le supprimer:

je crée la zone texte qui a comme source de contrôle [photdela recette]
je la nomme ImagePath

je crée un cadre image vide que je nomme ImageFrame

je crée une étiquette que je nomme ErrorMsg

pour un état quif quif à part que l'on supprimme toutes les fonctions en rapport avec les deux boutons

essaie un peu
Dim path As String
Dim intClosing As Integer


Private Sub AddPicture_Click()
' Utilise la boîte de dialogue Ouvrir fichier d'Office pour obtenir
' un nom de fichier à utiliser comme photo pour la recette.
getFileName
End Sub






Private Sub Form_RecordExit(Cancel As Integer)
' Masque le texte errormsg pour réduire le clignotement lors de
' la navigation entre les enregistrements.
ErrorMsg.Visible = False
End Sub



Private Sub RemovePicture_Click()
' Efface le nom de fichier pour l'enregistrement de la recette et
' affiche le texte errormsg.
Me![ImagePath] = ""
hideImageFrame
ErrorMsg.Visible = True
End Sub

Private Sub Form_AfterUpdate()
affiche le texte errormsg si aucun nom de fichier n'existe
' pour l'enregistrement de la recette ou affiche la photo si un nom de
' fichier existe.

On Error Resume Next
showErrorMessage
showImageFrame
If (IsRelative(Me!ImagePath) = True) Then
Me![ImageFrame].Picture = path & Me![ImagePath]
Else
Me![ImageFrame].Picture = Me![ImagePath]
End If
End Sub

Private Sub ImagePath_AfterUpdate()
' Affiche une photo de la recette après l'avoir sélectionnée.
On Error Resume Next
showErrorMessage
showImageFrame
If (IsRelative(Me!ImagePath) = True) Then
Me![ImageFrame].Picture = path & Me![ImagePath]
Else
Me![ImageFrame].Picture = Me![ImagePath]
End If
End Sub

Private Sub Form_Current()





' Affiche la photo pour l'enregistrement de la recette en cours si
' cette photo existe. Si le nom de fichier n'existe plus ou si le
' nom de fichier est vide pour la recette en cours, donne au texte
' errormsg la valeur appropriée.
Dim res As Boolean
Dim fName As String

path = CurrentProject.path
On Error Resume Next

ErrorMsg.Visible = True

If Not IsNull(Me![photdela recette]) Then
res = IsRelative(Me![photdela recette])
fName = Me![ImagePath]
If (res = True) Then
fName = path & "\" & fName
End If

Me![ImageFrame].Picture = fName
showImageFrame
Me.PaintPalette = Me![ImageFrame].ObjectPalette
If (Me![ImageFrame].Picture <> fName) Then
hideImageFrame
ErrorMsg.Caption = "Impossible de trouver la photo"
ErrorMsg.Visible = True
End If
Else
hideImageFrame
ErrorMsg.Caption = "Cliquez sur Ajouter/Modifier pour ajouter une photo"
ErrorMsg.Visible = True
End If

End Sub

Sub getFileName()
' Affiche la boîte de dialogue Ouvrir fichier d'Office afin de choisir
' un nom de fichier pour l'enregistrement de la recette en cours.
' Si l'utilisateur sélectionne un fichier, la photo correspondante
' est affichée dans le contrôle image.Attention ce n'est valable que pour la référence disponible dans Office10 (access2002, office 2002)

Dim fileName As String
Dim result As Integer
With Application.FileDialog(msoFileDialogFilePicker)
.Title = "Sélectionner une photo pour la recette"
.Filters.Add "Tous les fichiers", "*.*"
.Filters.Add "Fichiers JPEG", "*.jpg"
.Filters.Add "Bitmaps", "*.bmp"
.FilterIndex = 3
.AllowMultiSelect = False
.InitialFileName = CurrentProject.path
result = .Show
If (result <> 0) Then
fileName = Trim(.SelectedItems.Item(1))
Me![ImagePath].Visible = True
Me![ImagePath].SetFocus
Me![ImagePath].Text = fileName
Me![ImagePath].Visible = False
Me.Refresh

End If
End With
End Sub

Sub showErrorMessage()
' Affiche le texte errormsg si le fichier image n'est pas disponible.
If Not IsNull(Me![photdela recette]) Then
ErrorMsg.Visible = False
Else
ErrorMsg.Visible = True
End If
End Sub

Function IsRelative(fName As String) As Boolean
' Renvoie FAUX si le nom de fichier contient un lecteur
' ou un chemin UNC.
IsRelative = (InStr(1, fName, ":") = 0) And (InStr(1, fName, "\\") = 0)
End Function

Sub hideImageFrame()
' Masque le contrôle image.
Me![ImageFrame].Visible = False
End Sub

Sub showImageFrame()
' Affiche le contrôle image.
Me![ImageFrame].Visible = True
End Sub
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…