Problème de recordset pour récupérer des données filtrées
Itriel Messages postés27Date d'inscriptionStatutMembreDernière intervention - Itriel Messages postés27Date d'inscriptionStatutMembreDernière intervention - 30 août 2017 à 16:50
Bonjour à tous, je vous présente mon problème.
J'ai adapté un code me permettant de récupérer toutes les pièces tes de ma DB et de les stocker sur mon disque local.
Le seul problème étant que je souhaite récupérer toutes les pièces tes mais seulement des entrées filtrées suite à l'application d'un filtre sur mon formulaire de recherche, mais je bloque sur le code et la manière de le rédiger et je dois au plus tard le finir pour demain... Pour le moment, j'ai ceci en code pour ma fonction enregistrer :
Private Function Enregistrer()
Dim rs As Recordset Set rs = CurrentDb.OpenRecordset("SELECT certificat.filedata, Certificat.filename FROM t_références WHERE certificat.filedata is not null;") While Not rs.EOF Debug.Print rs("Certificat.filedata") rs.Fields("Certificat.filedata").SaveToFile ("C:\Certif") rs.Movenext Wend End Function
Ca marche très bien mais comme dit, ca ne prends pas en compte le filtre.
Pour se situer un peu plus : mes tables sont :
- t_références : toutes les entrées de la base de données
- t_départements : table avec des départements
J'ai une requete qui m'affiche les champs en source du formulaire sinon je n'arrivais pas à afficher le département mais seulement la clé primaire du département.
On m'a conseillé de partir de ce code afin de régler mon problème :
Private Function Enregistrer()
Dim rs As Recordset Set rs = Me.RecordsetClone rs.MoveFirst While Not rs.EOF While Not rs.EOF Debug.Print rs("Certificat.filedata") If rs.["tonchamp"] = tacondition Then rs.Fields("Certificat.filedata").SaveToFile ("C:\") End If
rs.Fields("Certificat.filedata").SaveToFile ("C:\Certif") rs.Movenext Wend End Function
Mais j'ai une erreur sur le If rs.["tonchamp"] qui me dit qu'il ne trouve pas la méthode ou la donnée.
Auriez vous des conseils à me donner ? Et notamment pour bien renseigner mon champ dans If rs.["tonchamp"] ?
Je peux vous fournir ma DB si besoin, le lien est le suivant :
Dim rs As Recordset Set rs = Me.RecordsetClone rs.MoveFirst While Not rs.EOF Debug.Print rs.Fields("[t_références.Certificat.FileData]") rs.Fields("[t_références.Certificat.filedata]").SaveToFile ("C:\Certif") rs.Movenext Wend End Function