Comment afficher les images d'un dossier dans un contrôle image d'un formulaire ms Access sans passer par une table?
Cordialement.
Comment afficher les images d'un dossier dans un contrôle image d'un formulaire ms Access sans passer par une table?
Cordialement.
Je ne Suis Pas un Expert en Programmation
Le savoir est la lumière de l'esprit
Le chemin de la réussite
Les savants sont les héritiers de la science
Qui cherche positivement trouve
Tout ce qui brille n'est pas l'or ou diamant
Mais l'or et le diamant se trouvent avec sagesse, intelligence et effort
Brut de décoffrage... mais déjà une base de travail.
en espérant que cela se rapproche de tes besoins.
++
Salut membres du forum !
Merci de m'apporter votre aide.
Voici ce que j'ai pu réaliser:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42 Public Function majPhotoSurFormEleve() Dim strFichier As String Dim oFD As FileDialog 'Paramètre la fenêtre Ouvrir Set oFD = Application.FileDialog(msoFileDialogOpen) With oFD 'Ajoute les filtres pour fichiers images et tous With .Filters .Clear .Add "Fichiers images", "*.jpg;*.jpeg;*.bmp;*.gif", 1 .Add "Tous", "*.*", 2 End With 'Renseignement du titre .Title = "Sélectionner une IMAGE pour: " & UCase((Me.mleeleve)) ' UCase(Me.ENTETE_FACTURE.Column(1)) & " " & " - ENTETE_N° : " & Me.NUM_ENTETE 'Ouvre l'explorateur dans le fichier 'Mes documents' du User connecté. .InitialFileName = CurrentProject.path & "\Photos Elèves ECO_ISLAM dans GESTION D_ETABLISSEMENT\" 'Interdit la multi sélection .AllowMultiSelect = False 'Permet de choisir le mode d'affichage dans l'explorateur (ici apperçu) .InitialView = msoFileDialogViewThumbnail 'Permet de personnaliser le bouton. .ButtonName = "IMAGE de " & UCase(Me.mleeleve) 'Affiche la fenêtre If .Show Then On Error GoTo fini 'gestion erreur pour control importation Me.PhotoIDTxt = .SelectedItems(1) Me.ImageSurForm.Picture = .SelectedItems(1) RecadrerPhotoSurFormEleve Me.Refresh End If End With Exit Function fini: Select Case Err Case 2220 MsgBox "L'importation du fichier ne c'est pas effectué normalement.", _ vbCritical, "Erreur fichier Image" Case Else 'MsgBox Err.Number & Chr(13) & Err.Description End Select End Function.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 Sub RecadrerPhotoSurFormEleve() If Me.ImageSurForm.ImageHeight > Me.ImageSurForm.Height Then ' met le controle en mode zoom Me.ImageSurForm.SizeMode = 3 Else ' met le contrôle en mode respect de la taille originale Me.ImageSurForm.SizeMode = 0 End If ' si la largeur dépasse et qu'on est en mode taille réelle ... If (Me.ImageSurForm.ImageWidth > Me.ImageSurForm.Width) And (Me.ImageSurForm.SizeMode) = 0 Then ' on met en mode zoom Me.ImageSurForm.SizeMode = 3 End If End Sub
Je l'appelle dans événement du champ "prenoms_arabe":
qui ramène le chemin dans une zone de texte indépendante "PhotoIDTxt" .
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Private Sub prenoms_arabe_GotFocus() Me.Image_acte_naiss = majPhotoSurFormEleve() End Sub
Je vous signale toutes les images sont renommées par exemple: "13 Doumbia Youssouf"; le matricule suivi du nom.
Problème à résoudre: 1 _ je souhaiterais que chaque fois cliqué sur une ligne, l'image du matricule correspondant apparaisse dans le contrôle "ImageSurForm"
Cordialement.
Je ne Suis Pas un Expert en Programmation
Le savoir est la lumière de l'esprit
Le chemin de la réussite
Les savants sont les héritiers de la science
Qui cherche positivement trouve
Tout ce qui brille n'est pas l'or ou diamant
Mais l'or et le diamant se trouvent avec sagesse, intelligence et effort
Salut Jemes68 !
Merci de pour votre aide !
Mais aucune image ne s'affiche au chargement du formulaire "Formulaire1" après clique sur la commande "Lancement de la procédure" du formulaire "Frm_Main".
Remarque: Il n y a pas messager d'erreur.
Que faut il faire ?
Mon objectif: - Afficher l'Image de la Ligne qui reçoit le focus (GotFocus)_en chargeant automatiquement le chemin de l'Image dans le champ ID_CheminImage de la Table Tbl_Album_ImagesEleves.
Merci de bien vouloir m-aider encore une fois.
Cordialement.
Je ne Suis Pas un Expert en Programmation
Le savoir est la lumière de l'esprit
Le chemin de la réussite
Les savants sont les héritiers de la science
Qui cherche positivement trouve
Tout ce qui brille n'est pas l'or ou diamant
Mais l'or et le diamant se trouvent avec sagesse, intelligence et effort
Salut,
il faut que l'extension des fichier image soit en *.jpg
Sinon il faudra adapter le code dans le module2 procédure "CompteImg"
A plus
Bonsoir !
Le code ne marche toujours pas même après le changement effectué.
Cordialement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 Public Sub CompteImg() Dim fso As Scripting.FileSystemObject Dim fld As Scripting.Folder X = 200 Y = 50 Set fso = New Scripting.FileSystemObject Set fld = fso.GetFolder("C:\Users\OUMAR_SANOGO\Desktop\Photo\Photo") '("C:\photo") For Each fil In fld.Files If InStr(1, fil.Name, "*.jpg;*.jpeg;*.bmp;*.gif") Then Photo i = i + 1 End If Next fil DoCmd.Close acForm, "formulaire1", acSaveYes DoCmd.OpenForm "Formulaire1", acNormal End Sub
Je ne Suis Pas un Expert en Programmation
Le savoir est la lumière de l'esprit
Le chemin de la réussite
Les savants sont les héritiers de la science
Qui cherche positivement trouve
Tout ce qui brille n'est pas l'or ou diamant
Mais l'or et le diamant se trouvent avec sagesse, intelligence et effort
il faut que tu décomposes ta fonction :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 For Each fil In fld.Files If InStr(1, fil.Name, ".jpg") Then Photo i = i + 1 End If If InStr(1, fil.Name, ".jpeg") Then Photo i = i + 1 End If If InStr(1, fil.Name, ".gif") Then Photo i = i + 1 End If If InStr(1, fil.Name, ".bmp") Then Photo i = i + 1 End If Next fil
Bonjour !
J'ai effectué le changement dans le code:
toujours pas d'évolution.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42 Public Sub CompteImg() Dim fso As Scripting.FileSystemObject Dim fld As Scripting.Folder X = 200 Y = 50 Set fso = New Scripting.FileSystemObject Set fld = fso.GetFolder("C:\Users\OUMAR_SANOGO\Desktop\Photo") '("C:\photo") 'For Each fil In fld.Files 'If InStr(1, fil.Name, "*.jpg;*.jpeg;*.bmp;*.gif") Then ' Photo ' i = i + 1 'End If ' Next fil For Each fil In fld.Files If InStr(1, fil.Name, ".jpg") Then Photo i = i + 1 End If If InStr(1, fil.Name, ".jpeg") Then Photo i = i + 1 End If If InStr(1, fil.Name, ".gif") Then Photo i = i + 1 End If If InStr(1, fil.Name, ".bmp") Then Photo i = i + 1 End If Next fil DoCmd.Close acForm, "formulaire1", acSaveYes DoCmd.OpenForm "Formulaire1", acNormal End Sub
Cordialement.
Je ne Suis Pas un Expert en Programmation
Le savoir est la lumière de l'esprit
Le chemin de la réussite
Les savants sont les héritiers de la science
Qui cherche positivement trouve
Tout ce qui brille n'est pas l'or ou diamant
Mais l'or et le diamant se trouvent avec sagesse, intelligence et effort
Bonjour,
D'après la demande initiale :
=> On affiche la photo de l'élève sélectionné dans le tableau.1 _ je souhaiterais que chaque fois cliqué sur une ligne, l'image du matricule correspondant apparaisse dans le contrôle "ImageSurForm"
Je ne comprends pas pourquoi le code présenté contient une "BOUCLE" ?
Je conseille fortement de faire ce tuto simple pour comprendre le mécanisme d'affichage d'images : https://cafeine.developpez.com/access/tutoriel/photos/
On peut l'adapter après pour :
- Mettre le formulaire en mode "continu"
- Utiliser les propriétés de filesystmeobjet au lieu de la fonction faite main pour gestion des dossiers et fichiers.
Cordialement.
Mandresy
"Je ne sais qu'une chose, c'est que je ne sais rien" Socrate
N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.
Merci, c'est toujours sympa de recevoir des de votre part
Salut !
Peut on ajouter les extensions suivantes :à la ligne suivante de code
Code : Sélectionner tout - Visualiser dans une fenêtre à part "*.jpg;*.jpeg;*.bmp;*.gif"
Code complet à laquelle je désire ajouter les extensions ci dessus:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 ' Chemin d'accès à l'image = Répertoire de la base + Nom de l'image chemin = CurrentProject.Path & "\PhotosElevesECIND\" & Me.NomPrenomsEleve & ".jpg"
Concernant le sujet:https://cafeine.developpez.com/access/tutoriel/photos/, j'en ai pris
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Dim chemin As String ' Chemin d'accès à l'image = Répertoire de la base + Nom de l'image chemin = CurrentProject.Path & "\PhotosElevesECIND\" & Me.NomPrenomsEleve & ".jpg" '"*.jpg;*.jpeg;*.bmp;*.gif" ' Charger l'image Me![ImageEleve].Picture = chemin Me![ID_CheminImage] = chemin
connaissance. Je vous en remercies en espérant avoir une suite à ma requête.
Cordialement.
Je ne Suis Pas un Expert en Programmation
Le savoir est la lumière de l'esprit
Le chemin de la réussite
Les savants sont les héritiers de la science
Qui cherche positivement trouve
Tout ce qui brille n'est pas l'or ou diamant
Mais l'or et le diamant se trouvent avec sagesse, intelligence et effort
bonjour,
merci de ne pas multiplier les posts concernant le même problème: Comment écrire une fonction VBA Access qui ramène les images d'un dossier?
Je rappelle que dans le code que tu utilises (et qui fonctionne) le chemin de la photo est ramené par cette instruction:
dans le Sub majPhoto()
Code : Sélectionner tout - Visualiser dans une fenêtre à part Me.ID_CheminImage = .SelectedItems(1)
Concernant cette question :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45 Sub majPhoto() Dim strFichier As String Dim oFD As FileDialog 'Paramètre la fenêtre Ouvrir Set oFD = Application.FileDialog(msoFileDialogOpen) With oFD 'Ajoute les filtres pour fichiers images et tous With .Filters .Clear .Add "Fichiers images", "*.jpg;*.jpeg;*.bmp;*.gif", 1 .Add "Tous", "*.*", 2 .Add "Elève", "*.*", 3 End With 'Renseignement du titre .Title = "Sélectionner une IMAGE du Mle: " & UCase((Me.MleEleve_Image)) UCase (Me.NomPrenomsEleve) & " " & " - Elève_Mle° : " & Me.MleEleve_Image 'Ouvre l'explorateur dans le fichier 'Mes documents' du User connecté. '.InitialFileName = CurrentProject.Path & "\PhotosElevesECIND" .InitialFileName = CurrentProject.Path & "\PhotosElevesECIND\" & Me.NomPrenomsEleve & "*.jpg" 'Interdit la multi sélection .AllowMultiSelect = False 'Permet de choisir le mode d'affichage dans l'explorateur (ici apperçu) .InitialView = msoFileDialogViewThumbnail 'Permet de personnaliser le bouton. .ButtonName = "IMAGE de " & UCase(Me.MleEleve_Image) 'Affiche la fenêtre If .Show Then On Error GoTo fini 'gestion erreur pour control importation Me.ID_CheminImage = .SelectedItems(1) Me.ImageEleve.Picture = .SelectedItems(1) RecadrerPhoto Me.Refresh End If End With Exit Sub fini: Select Case Err Case 2220 MsgBox "L'importation du fichier ne c'est pas effectué normalement.", _ vbCritical, "Erreur fichier Image" Case Else 'MsgBox Err.Number & Chr(13) & Err.Description End Select End Subje dirais que dans l'absolu, oui c'est possible, même si cela n'aurait aucun sens :Peut on ajouter les extensions suivantes : "*.jpg;*.jpeg;*.bmp;*.gif"Donc, il vaut mieux ne pas le faire et s'en tenir au code actuel.
Code : Sélectionner tout - Visualiser dans une fenêtre à part chemin = CurrentProject.Path & "\PhotosElevesECIND\" & Me.NomPrenomsEleve & "*.jpg;*.jpeg;*.bmp;*.gif"
Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
ah non ? donc devant l'écran c'est la connectique ?
corrige deja cette ligne..
par
Code : Sélectionner tout - Visualiser dans une fenêtre à part NewImg.Picture = "C:\Users\OUMAR_SANOGO\Desktop\Photo\Photo" '"C:\Photo\" & fil.Name
on verra ensuite...
Code : Sélectionner tout - Visualiser dans une fenêtre à part NewImg.Picture = "C:\Users\OUMAR_SANOGO\Desktop\Photo\Photo\" & fil.Name
++
Bonjour tee_grandbois !
Message compris !
Mon but est de pouvoir mieux exploiter les différents codes proposés et comprendre leur fonctionnement.
A travers vos explications j'arrive à m’améliorer. Je vous en remercie pleinement
Permettez moi de continuer avec ce que me propose james68 car la derniere proposition qu'il vient de me soumettre codeà travers la copie de base de données "Photo" commence à marcher.
Code : Sélectionner tout - Visualiser dans une fenêtre à part NewImg.Picture = "C:\Users\OUMAR_SANOGO\Desktop\Photo\Photo\" & fil.Name
Cordialement.
Je ne Suis Pas un Expert en Programmation
Le savoir est la lumière de l'esprit
Le chemin de la réussite
Les savants sont les héritiers de la science
Qui cherche positivement trouve
Tout ce qui brille n'est pas l'or ou diamant
Mais l'or et le diamant se trouvent avec sagesse, intelligence et effort
Salut !
Je constate que certaines images viennent en double.
1°) Que faut il faire quand on a plusieurs centaines d'images ?
2°) Comment cadrer les images de sorte à éviter l'élargissement du formulaire1 affichant ces images ?
Remarque :- À chaque rechargement du "Formulaire1", de nouveaux doublons des images enregistrées au paravent y sont encore enregistrées.
Comment résoudre cette anomalie ?
Merci de bien vouloir m'aider à résoudre ce problème.
Cordialement.
Je ne Suis Pas un Expert en Programmation
Le savoir est la lumière de l'esprit
Le chemin de la réussite
Les savants sont les héritiers de la science
Qui cherche positivement trouve
Tout ce qui brille n'est pas l'or ou diamant
Mais l'or et le diamant se trouvent avec sagesse, intelligence et effort
A chaque creation de controle image, tu incrementes un compteur .
qd tu arrives a la valeur souhaitée du remets la position X a la valeur de départ et tu incrémentes Y de 1000
A+
Je ne Suis Pas un Expert en Programmation
Le savoir est la lumière de l'esprit
Le chemin de la réussite
Les savants sont les héritiers de la science
Qui cherche positivement trouve
Tout ce qui brille n'est pas l'or ou diamant
Mais l'or et le diamant se trouvent avec sagesse, intelligence et effort
Essaie avec cet exemple...
J'ai modifie le code . deplus plutot que d'importer les images je les lie au repertoire.
Sinon ta base va exploser en taille d'octet.
++
Salut membres du forum !
Merci à vous james68 et toutes la famille Développez.net.
ça marche !
En de nécessité, je vous recontacte.
infiniment.
Cordialement !
Je ne Suis Pas un Expert en Programmation
Le savoir est la lumière de l'esprit
Le chemin de la réussite
Les savants sont les héritiers de la science
Qui cherche positivement trouve
Tout ce qui brille n'est pas l'or ou diamant
Mais l'or et le diamant se trouvent avec sagesse, intelligence et effort
super... bonne continuation.
++
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager