Récupérer une donnée parmi d'autres dans une combo
ndsaerith
Messages postés304Date d'inscriptionvendredi 16 janvier 2004StatutMembreDernière intervention10 mai 2017
-
3 févr. 2004 à 11:22
cs_wape
Messages postés262Date d'inscriptionsamedi 21 décembre 2002StatutMembreDernière intervention19 décembre 2010
-
4 févr. 2004 à 11:28
Salut tout le monde
Voila, j'ai une combo où j'ai afficher plusieurs données d'un enregistrement (g mis le code après vous verrez) et des espaces entre eux>. Mais j'aimerais récupérer ces valeurs sur le clic sur un des choix de la liste que la combo me propose.
Le pb est donc que la seule chose que j'arrive à récupérer, est l'ensemble du texte de la combo et pas juste la donnée que je veux.
Voila mon code pour remplir la combo :
Set req_periode = db.OpenRecordset("select * from dist_periode") (dist periode est une requete sous access qui est select distinct num_periode from periode)
If req_periode.RecordCount > 0 Then
req_periode.MoveFirst
Do While req_periode.EOF = False
numero_periode = req_periode!nombre_periode Set min_periode db.OpenRecordset("select min(jour)as minimum from periode where num_periode " & numero_periode & "") Set max_periode db.OpenRecordset("select max(jour)as maximum from periode where num_periode " & numero_periode & "")
min_date = min_periode!minimum
max_date = max_periode!Maximum
combo_periode.AddItem "De" & " " & min_date & " " & "à" & " " & max_date & " Période:" & numero_periode
req_periode.MoveNext
Loop
Else
combo_periode.Text = "pas de jours enregistrés, il faut éxécuter TEMPUS"
b_valid.Enabled = False
End If
Et ce que j'aimerai ensuite c'est :
proc clic_sur_combo_periode
récupérer le num_periode de la ligne choisie
fin proc
Voila voila
En esperant qu'il y a une sollution.
Biz a plus :shy)
A voir également:
Récupérer une donnée parmi d'autres dans une combo
ndsaerith
Messages postés304Date d'inscriptionvendredi 16 janvier 2004StatutMembreDernière intervention10 mai 20172 3 févr. 2004 à 12:50
Dit, est ce que je peux abuser et te demender de m'explique le code que tu vien de mettre (j'm bien comprendre de que je met dans mes appli, pi c une protection aussi car si on me demande de le frefaire a l'exam ,lol, :-) )
cs_wape
Messages postés262Date d'inscriptionsamedi 21 décembre 2002StatutMembreDernière intervention19 décembre 201012 4 févr. 2004 à 11:28
Comme mentionné dans mon premier message, l'idée est ici de rechercher la position du caractère ":" dans le texte de la combo, puis de récupérer tout ce qui se trouve après ce caractère. Pour cela, on utilise 3 fonctions imbriquées : Instr(), Mid() et Val()
Exemple
----------
Admettons que la ligne de la combo contienne la valeur "De 11 à 99 Période:10"
La fonction InStr(combo_periode.Text, ":") va rechercher la position du caractère ":" dans le texte de la combo. Dans l'exemple ci-dessus, cette position correspond à 19.
La fonction Mid(combo_periode.Text, InStr (combo_periode.Text, ":") + 1) va extraire du texte de la combo tous les caractères à partir du 1er caractère qui suit le ":", donc à partir de InStr(combo_periode.Text, ":") + 1, donc à partir de la position 20. Toujours avec l'exemple ci-dessus, la valeur retournée sera "10" (sous forme de chaîne de caractères).
La fonction Val() permet de renvoyer le nombre contenu dans la chaîne de caractères retournée par la fonction Mid(). Ici la valeur retournée sera 10 (sous forme de nombre).
En résumé,
InStr(combo_periode.Text, ":") retourne la valeur 19
=>
Mid(combo_periode.Text, 20) retourne la valeur "10" (sous forme de chaîne de caractères)
=>
Val("10") retourne la valeur 10 (sous forme de nombre)