beegeezzz
Messages postés152Date d'inscriptionmardi 4 novembre 2008StatutMembreDernière intervention10 avril 2017
-
27 janv. 2009 à 13:25
beegeezzz
Messages postés152Date d'inscriptionmardi 4 novembre 2008StatutMembreDernière intervention10 avril 2017
-
27 janv. 2009 à 13:47
Bonjour tout le monde,
Je remplis une listbox lors du chargement de mon formularie (formload) :
Private Sub Form_Load()
titre = 0
listGestionParametres.AddItem "Paramètres de type ""cause"""
sql = "SELECT parametre.id, parametre.nom, parametre.type_entrant FROM parametre ORDER BY parametre.type_entrant, parametre.nom ASC"
Set rsParametre = BDOuvrirTable(sql, False)
'double boucles WHILE (la première)
While Not rsParametre.EOF
'je mets ce code pour vérifier si je suis dans un type_entrant différent de VRAI et si le titre est égal à zéro (qui veut dire que je n'ai pas encore mis le
'texte "Paramètres de type "effet" afin de ne pas le mettre plus d'une fois.
If ((Not rsParametre("type_entrant")) And (titre = 0)) Then
listGestionParametres.AddItem "Paramètres de type ""effet"" "
titre = titre + 1
End If
listGestionParametres.AddItem String(2, " ") & Trim(rsParametre("nom"))
listGestionParametres.ItemData(listGestionParametres.NewIndex) = rsParametre("id") sql "SELECT valeur_parametre.id, valeur_parametre.valeur FROM valeur_parametre WHERE ref_parametre " & rsParametre("id")
Set rsValeur = BDOuvrirTable(sql, False)
'la seoncde
While Not rsValeur.EOF
listGestionParametres.AddItem String(4, " ") & Trim(rsValeur("valeur"))
listGestionParametres.ItemData(listGestionParametres.NewIndex) = rsValeur("id")
rsValeur.MoveNext
Wend
rsValeur.Close
rsParametre.MoveNext
Wend
rsParametre.Close
End Sub
je veux ensuite ajouter un nouveau paramètre, tout se passe bien sauf que j'appelle dans les dernières lignes Form Load afin de faire un refresh mais ça ne passe pas :
Private Sub mnuParAjouter_Click()
'listIndex commence à zéro, ItemDate... commence à 1
'si listindex est à -1 c'est qu'on a rien choisis, si les 4 premiers caractères sont égaux à des espaces, c'est que l'on est sur une valeur
NouveauNomPar = ""
NouvelExplicationPar = "" If ((listGestionParametres.ListIndex -1) Or (Left(listGestionParametres.Text, 4) " ")) Then
Exit Sub
Else
NouveauNomPar = InputBox("Veuillez indiquer le nom du nouveau paramètre", "Ajout d'un nouveau paramètre")
NouvelExplicationPar = InputBox("Veuillez indiquer la description du nouveau paramètre", "Ajout de la description du nouveau paramètre")
sql = "SELECT * FROM parametre"
Set rsParametre = BDOuvrirTable(sql, False)
rsParametre.AddNew 'ajout d'un nouveau recordset
rsParametre("Nom") = NouveauNomPar 'valeur de l'input
rsParametre("explications") = NouvelExplicationPar 'valeur de l'input
rsParametre.Update 'indispensable pour que l'ajout se fasse
rsParametre.Close 'ferme le recordset
Form_Load 'le form_load contient le code qui remplis la liste, je l'appelle donc afin de fair une mise à jour
End If
End Sub
J'appelle donc Form_Load afin de faire un refresh (afin de relancer le code du form load) mais ça ne fonctionne pas.
Y a t-il une solution à ce problème svp ?
Merci d'avance.
beegees
A voir également:
J'appelle mon code pour faire un refresh de la liste mais ça ne fonctionne pas
lillith212
Messages postés1229Date d'inscriptionvendredi 16 novembre 2007StatutMembreDernière intervention16 juin 2009 27 janv. 2009 à 13:31
Bonjour,
Ce que je comprends pas c'est pourquoi tu mets ca dans form_load plutot que de créer une procedure ce qui serait beaucoup plus propre.
Ensuite tu pourrait l'appeller simplement par call nomprocedure... En gros en reprenant ton code :
Private Sub MaNouvelleProcedure()
titre = 0
listGestionParametres.AddItem "Paramètres de type ""cause"""
sql = "SELECT parametre.id, parametre.nom, parametre.type_entrant FROM parametre ORDER BY parametre.type_entrant, parametre.nom ASC"
Set rsParametre = BDOuvrirTable(sql, False)
'double boucles WHILE (la première)
While Not rsParametre.EOF
'je mets ce code pour vérifier si je suis dans un type_entrant différent de VRAI et si le titre est égal à zéro (qui veut dire que je n'ai pas encore mis le
'texte "Paramètres de type "effet" afin de ne pas le mettre plus d'une fois.
If ((Not rsParametre("type_entrant")) And (titre = 0)) Then
listGestionParametres.AddItem "Paramètres de type ""effet"" "
titre = titre + 1
End If
listGestionParametres.AddItem String(2, " ") & Trim(rsParametre("nom"))
listGestionParametres.ItemData(listGestionParametres.NewIndex) = rsParametre("id") sql "SELECT valeur_parametre.id, valeur_parametre.valeur FROM valeur_parametre WHERE ref_parametre " & rsParametre("id")
Set rsValeur = BDOuvrirTable(sql, False)
'la seoncde
While Not rsValeur.EOF
listGestionParametres.AddItem String(4, " ") & Trim(rsValeur("valeur"))
listGestionParametres.ItemData(listGestionParametres.NewIndex) = rsValeur("id")
rsValeur.MoveNext
Wend
rsValeur.Close
rsParametre.MoveNext
Wend
rsParametre.Close
End Sub
Private Sub Form_Load()
Call MaNouvelleProcedure
End Sub
Private Sub mnuParAjouter_Click()
'listIndex commence à zéro, ItemDate... commence à 1
'si listindex est à -1 c'est qu'on a rien choisis, si les 4 premiers caractères sont égaux à des espaces, c'est que l'on est sur une valeur
NouveauNomPar = ""
NouvelExplicationPar = "" If ((listGestionParametres.ListIndex -1) Or (Left(listGestionParametres.Text, 4) " ")) Then
Exit Sub
Else
NouveauNomPar = InputBox("Veuillez indiquer le nom du nouveau paramètre", "Ajout d'un nouveau paramètre")
NouvelExplicationPar = InputBox("Veuillez indiquer la description du nouveau paramètre", "Ajout de la description du nouveau paramètre")
sql = "SELECT * FROM parametre"
Set rsParametre = BDOuvrirTable(sql, False)
rsParametre.AddNew 'ajout d'un nouveau recordset
rsParametre("Nom") = NouveauNomPar 'valeur de l'input
rsParametre("explications") = NouvelExplicationPar 'valeur de l'input
rsParametre.Update 'indispensable pour que l'ajout se fasse
rsParametre.Close 'ferme le recordset
Call MaNouvelleProcedure
End If