Récupérer des données dans liste déroulante
Résolu/Ferméyg_be Messages postés 23399 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 17 décembre 2024 - 30 janv. 2023 à 11:10
- Récupérer des données dans liste déroulante
- Liste déroulante excel - Guide
- Liste déroulante en cascade - Guide
- Recuperer message whatsapp supprimé - Guide
- Recuperer video youtube - Guide
- Google sheet liste déroulante - Accueil - Guide bureautique
3 réponses
Modifié le 26 janv. 2023 à 11:19
Bonjour,
Vous avez x fois la meme reference x fois . Pour faire une recherche sure, il faut ajouter dans votre base un numero unique d'enregistrement.
Ce numero vous devez l'inclure dans un colone de la listbox.
De cette facon vous faites la recherche avec ce numero unique
Modifié le 26 janv. 2023 à 11:41
Bonjour,
D'accord donc si j'utilise ma clé primaire qui est nommé IdStocks (NuméroAuto) cela pourrait fonctionner ?
je dois juste changer le WHERE dans mon code ?
Merci je vais essayer
26 janv. 2023 à 14:53
En effet cela fonctionne mais j'ai maintenant un autre problème auxquels je m'attendais, J'ai donc pris le champ de ma clé primaire qui est forcément unique et qui était sur NuméroAuto, pour que ça fonctionne j'ai dû changer NumAuto par un autre type seulement maintenant au moment d'insérer des données forcément ça ne fonctionne plus.
Je vais essayer de faire en sorte que pour chaque insertion d'un enregistrement et chaque enregistrement est un numéro unique, qui s'incrémente de 1 et que j'insère.
27 janv. 2023 à 08:13
bonjour,
Pourquoi précisément as-tu changé le type du champ de ta clé primaire? Je pense que ce n'est pas une bonne idée.
27 janv. 2023 à 14:05
En effet ce n'était pas du tout une bonne idée parce que mon INSERT ne fonctionnait plus ce qui est logique.
Je suis entrain d'essayer de faire en sorte que le champ RefNum que j'ai créer s'incrémente de +1 à chaque insertion et que ce même numéro soit insérer aussi dans la table pour fonctionné comme un deuxième champ NumAuto seulement pour le moment je n'y arrive pas.
27 janv. 2023 à 14:39
Pourquoi quel INSERT ne fonctionnait plus? Que faisait-il?
Comment un changement du SELECT a-t-il posé un problème à l'INSERT?
30 janv. 2023 à 09:30
ElseIf DCount("*", "StocksEm", "Ref = '" & rstS.Fields("Ref") & "'" _ & " AND CodeVariante = '" & rstS.Fields("CodeVariante") & "'" _ & " AND Emplacement = '" & rstS.Fields("Emplacement") & "'") = 0 Then maVariable = Forms("F_NewStock").Controls("Dernier").Value maVariable = maVariable + 1 MsgBox (maVariable) strSql = "INSERT INTO StocksEm (Ref,Qte,NumBl,DateS,Emplacement,Provenance,CodeVariante,Numero)" _ & " SELECT NewStocks.Ref, NewStocks.Qte, NewStocks.NumBl, NewStocks.DateS, NewStocks.Emplacement, NewStocks.Provenance, NewStocks.CodeVariante, " & maVariable & " " _ & " FROM NewStocks" _ & " WHERE Ref = '" & rstS.Fields("Ref") & "'" CurrentDb.Execute strSql, dbFailOnError
Celui-ci ne fonctionnait plus car j'avais changé le type de ma clé primaire (Numauto vers Numérique)
car une clé primaire n'accepte pas les doublons hors j'en ai besoin car certaine Ref apparaisse plusieurs fois mais ont un champ qui diffère.
30 janv. 2023 à 09:37
La actuellement j'ai quasiment réussi, à chaque insertion mon champ Numero s'incrémente de 1 ce qui agis comme je le souhaitais comme une sorte de deuxième NuméroAuto.
Ensuite j'ai un champ nommé IdRef (bleu ci-dessous) qui est une liste déroulante et ces lui qui contient le champ Numero que j'incrémente de 1 par rapport a la valeur du dernier enregistrement en rouge ci-dessous
Voici le code (Sur changement de IdRef) :
Private Sub IdRef_Change() Dim ligne As Recordset: Dim base As Database Set base = Application.CurrentDb Set ligne = base.OpenRecordset("SELECT Ref, CodeVariante, Emplacement, NumBl FROM StocksEm WHERE Numero= '" & IdRef & "' ", dbOpenDynaset) Ref.Value = ligne.Fields("Ref").Value CodeVariante.Value = ligne.Fields("CodeVariante").Value Emplacement.Value = ligne.Fields("Emplacement").Value ligne.Close base.Close Set ligne = Nothing Set base = Nothing End Sub
Cela fonctionne et ça rempli les champs comme je souhaite aux choix de l'enregistrement grâce à IdRef mais que lorsque je change Numero en texte court hors je veux que ce soit un Numérique sinon je ne récupère pas la valeur max du champ Numero et cela ne fonctionne plus