Bonjour,
Je travaille sur des formulaires dans Access 2010 et comme expliqué dans l'intitulé, je souhaite compléter des zones de texte après avoir sélectionné un élément dans une liste déroulante. Bien entendu, je suis ici car je n'arrive pas à parvenir à ma fin. J'ai cherché pas mal d'infos sur le net, et j'ai pu comprendre certaines erreurs, mais je suis toujours dans l'incapacité de résoudre mon problème. De même, j'ai réussi à trouver un ou deux sujets traitant cette option mais je n'ai ou bien pas compris la réponse, ou bien pas pu adapter mon code en conséquence. Finalement, je commence à fatiguer de chercher sans trouver, j'espère obtenir une réponse spécifique à mon problème ici.
De plus, j'apprends le VBA depuis peu et seul. Bien que j'ai déjà suivi nombre de tutos, je reste un pur débutant et je ne connais pas toutes les options qui s'offrent à moi.
Jusqu'ici mon approche a consisté à utiliser une requête SQL via un SELECT, le but étant de récupérer un RecordSet et de mettre chaque champ dans chaque zone de texte.
Voici mon code actuel, inspiré de ce sujet:
Erreur d'exécution 3061 sous Access 2010
Note: "Accueil" est le nom du formulaire sur lequel je me trouve, "bdua_Agence" le nom de la liste déroulante où j'effectue un changement de valeur. Vous trouverez normalement 4 lettres avant chaque nom de contrôle avant un underscore, c'est normal car il s'agit d'un code personnel pour m'y retrouver.
J'obtiens une erreur d'exécution 3265 à la ligne 5, "Élément non trouvé dans cette collection".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Dim q As DAO.QueryDef Dim mabase As Database Set mabase = CurrentDb ' ouvre objet définiton de requête Set q = mabase.QueryDefs("SELECT NomDR, RaisonSociale, Ville, Adresse FROM t_Agence WHERE NomAgence = bdua_Agence.Value;") ' fournit valeur du 1er paramètre q.Parameters(0).Value = [Forms]![Accueil]![bdua_Agence] ' ouvre un recordset à partir de la requête paramétrée Set t = q.OpenRecordset bdub_DR.Value = rs.Fields(NomDR).Value: bduc_nomAgence.Value = bdua_Agence.Value: bdud_RS.Value = rs.Fields(RaisonSociale).Value: bdue_Ville.Value = rs.Fields(Ville): bduf_Adresse.Value = rs.Fields(Adresse)
J'en déduis que mon soucis vient de la ligne 3, lors du Set pour définir le CurrentDb. J'ai lu qu'il fallait que la table soit "ouverte" lors du Set, je dois avouer que je ne suis pas sûr de bien comprendre. Lors du Set, la table t_Agence n'est pas ouverte en tant qu'onglet, mais elle fait partie de ma base de donnée active, donc je ne sais pas si ça marche ou pas.
L'erreur est peut-être toute bête, je ne sais pas, cela fait un moment que je cherche et je vous avoue que je suis perdu, je n'y vois peut-être plus très clair.
Merci de m'avoir lu.
Partager