Messagepar Encantada » 19 nov. 2021, 15:04
Bonjour,
Bien que n'ayant que des connaissances sommaires en VBA, je m'immisce dans ce sujet.
La difficulté sous Access, si tu as de nombreuses photos et de multiples critères de tri (Ordre, genre, espèce, date de la photo, lieu, boîtier, objectif etc...) c'est que tu devras saisir de nombreuses données auxquelles tu aurais directement accès dans les Exif, et que cela peut s'avérer fastidieux.
Par contre, Access présente de nombreux avantages, dont en particulier:
- inutile de saisir les noms français, scientifique et anglais des oiseaux: Tu copies la liste sur le site "Oiseaux.net" (Dom, c'est autorisé ?), tu la colles sur Excel pour la retraiter à ta guise puis tu l'exportes sur une table Access avec les champs correspondants.
- Tu peux également faire une liaison directe entre le nom de l'espèce et la fiche de l'oiseau sur le site pour éviter d'avoir à saisir les données systématiques, en créant un lien hypertexte après avoir retraité tes noms d'espèces comme suit (où Me.Nomfrançais représente le nom de l'espèce et Me.VersNet un champ indépendant auquel fera référence le chemin du lien hypertexte) :
Private Sub Form_Current()
' déclarations
Const AvecAccent As String = "àçèéêîâ"
Const SansAccent As String = "aceeeia"
Dim intPhoto As Integer
Dim strNomf As String
Dim Nb As Integer
Dim F As String
Dim I As Integer
strNomf = Me.NomFrançais
'Lien hypertxt xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
For Nb = 1 To Len(strNomf)
If Mid(strNomf, Nb, 1) = " " Then
Mid(strNomf, Nb, 1) = "."
End If
Next Nb
' définition de la variable
strNomf = strNomf & ".html"
'traitement accents
For I = 1 To Len(AvecAccent)
F = Mid$(AvecAccent, I, 1)
If InStr(1, strNomf, F, vbBinaryCompare) > 0 Then
strNomf = Replace(strNomf, F, Mid$(SansAccent, I, 1), , , vbBinaryCompare)
End If
Next I
' affectation de la variable
Me.VersNet = strNomf
End sub
Et surtout, tu peux faire évoluer progressivement ta base, en fonction de tes besoins et de l'accroissement de tes connaissances en VBA.
Bon courage
Amicalement
Didier
Pose ta question, tu seras idiot une seconde. Ne la pose pas, tu seras idiot toute ta vie. Albert Einstein