J'ai un petit problème de technique de programmation que je
n'arrive pas vraiment à résoudre. Voila en gros. Dans un programme de
recettes de cuisine j'ai énormément de liste/Combo qui font référence a des
ingrédients, mesures, recettes, catégorie, etc, etc... Ces liste/combo sont
remplis différement en cour d'éxécution selon se que l'utilisateur est en
train de faire. Jusque là ca va. Moi je voudrais creer une FONCTION général
qui éviterais le code en double. Voila UN exemple de remplissage d'une liste
'#################
SQL = "Select * from Liens, Ingredients, Unites WHERE Liens.ReckId = " &
NoRec & " AND
Ingredients.kId = Liens.IngkId AND Unites.kId = Liens.UnitekId"
Set rs = db.OpenRecordset(SQL)
rs.MoveLast
rs.MoveFirst
max = rs.RecordCount
lstIng.Clear
For i = 1 To max
tmp = rs("Liens.kid") & "- " & rs("Unite") & " " & rs("Ingredients")
lstIng.AddItem tmp
rs.MoveNext
Next i
'##############
Moi se que je voudrais c'est généraliser a partir du "rs.MoveLast". La
Fonction serait de se genre
'#############
Private Sub RemplirList(rs as Recordset, lst as Control)
...
End Sub
'#############
Encore là ca va bien sauf que les tables n'ont pas les mêmes noms de
champs(la table 'Ingredients' a kId, Nom, Desc, ValeurNut.. La table
'Catégorie' a kId, Nom, Desc.. etc), donc je ne peux pas faire une fonction
généraliste d'autant plus que parfois le select s'effectut sur plusieurs
tables. Il y a un autre moyen d'effectuer cela? Peut-etre avec une techique
que je ne connais pas encore!
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
PePiCK
Vous pourriez allez voir ce fil, Zoury m'avait donner une procédure pour lier 2 combo ensemble ! Il ya a justement une function unique de remplissage Functionne a merveille !
Avec des ajustements vous pourrez certainement l'adapter a votre situation, ou bien en tiré des idées !
http://minilien.com/?y1NtEIGXrm
PePiCK
"Francois Soucy" a écrit dans le message de news: TTdWa.4182$
Bonjour a tous,
J'ai un petit problème de technique de programmation que
je
n'arrive pas vraiment à résoudre. Voila en gros. Dans un programme de recettes de cuisine j'ai énormément de liste/Combo qui font référence a
des
ingrédients, mesures, recettes, catégorie, etc, etc... Ces liste/combo
sont
remplis différement en cour d'éxécution selon se que l'utilisateur est en train de faire. Jusque là ca va. Moi je voudrais creer une FONCTION
général
qui éviterais le code en double. Voila UN exemple de remplissage d'une
liste
'################# SQL = "Select * from Liens, Ingredients, Unites WHERE Liens.ReckId = " & NoRec & " AND Ingredients.kId = Liens.IngkId AND Unites.kId = Liens.UnitekId" Set rs = db.OpenRecordset(SQL) rs.MoveLast rs.MoveFirst max = rs.RecordCount lstIng.Clear For i = 1 To max tmp = rs("Liens.kid") & "- " & rs("Unite") & " " &
rs("Ingredients")
lstIng.AddItem tmp rs.MoveNext Next i '##############
Moi se que je voudrais c'est généraliser a partir du "rs.MoveLast". La Fonction serait de se genre
'############# Private Sub RemplirList(rs as Recordset, lst as Control)
... End Sub '#############
Encore là ca va bien sauf que les tables n'ont pas les mêmes noms de champs(la table 'Ingredients' a kId, Nom, Desc, ValeurNut.. La table 'Catégorie' a kId, Nom, Desc.. etc), donc je ne peux pas faire une
fonction
généraliste d'autant plus que parfois le select s'effectut sur plusieurs tables. Il y a un autre moyen d'effectuer cela? Peut-etre avec une
techique
que je ne connais pas encore!
MErci Francois
Vous pourriez allez voir ce fil, Zoury m'avait donner une procédure pour
lier 2 combo ensemble !
Il ya a justement une function unique de remplissage
Functionne a merveille !
Avec des ajustements vous pourrez certainement l'adapter a votre situation,
ou bien en tiré des idées !
http://minilien.com/?y1NtEIGXrm
PePiCK
"Francois Soucy" <Merlin867@altern.org> a écrit dans le message de news:
TTdWa.4182$Sn.38485@wagner.videotron.net...
Bonjour a tous,
J'ai un petit problème de technique de programmation que
je
n'arrive pas vraiment à résoudre. Voila en gros. Dans un programme de
recettes de cuisine j'ai énormément de liste/Combo qui font référence a
des
ingrédients, mesures, recettes, catégorie, etc, etc... Ces liste/combo
sont
remplis différement en cour d'éxécution selon se que l'utilisateur est en
train de faire. Jusque là ca va. Moi je voudrais creer une FONCTION
général
qui éviterais le code en double. Voila UN exemple de remplissage d'une
liste
'#################
SQL = "Select * from Liens, Ingredients, Unites WHERE Liens.ReckId = " &
NoRec & " AND
Ingredients.kId = Liens.IngkId AND Unites.kId = Liens.UnitekId"
Set rs = db.OpenRecordset(SQL)
rs.MoveLast
rs.MoveFirst
max = rs.RecordCount
lstIng.Clear
For i = 1 To max
tmp = rs("Liens.kid") & "- " & rs("Unite") & " " &
rs("Ingredients")
lstIng.AddItem tmp
rs.MoveNext
Next i
'##############
Moi se que je voudrais c'est généraliser a partir du "rs.MoveLast". La
Fonction serait de se genre
'#############
Private Sub RemplirList(rs as Recordset, lst as Control)
...
End Sub
'#############
Encore là ca va bien sauf que les tables n'ont pas les mêmes noms de
champs(la table 'Ingredients' a kId, Nom, Desc, ValeurNut.. La table
'Catégorie' a kId, Nom, Desc.. etc), donc je ne peux pas faire une
fonction
généraliste d'autant plus que parfois le select s'effectut sur plusieurs
tables. Il y a un autre moyen d'effectuer cela? Peut-etre avec une
Vous pourriez allez voir ce fil, Zoury m'avait donner une procédure pour lier 2 combo ensemble ! Il ya a justement une function unique de remplissage Functionne a merveille !
Avec des ajustements vous pourrez certainement l'adapter a votre situation, ou bien en tiré des idées !
http://minilien.com/?y1NtEIGXrm
PePiCK
"Francois Soucy" a écrit dans le message de news: TTdWa.4182$
Bonjour a tous,
J'ai un petit problème de technique de programmation que
je
n'arrive pas vraiment à résoudre. Voila en gros. Dans un programme de recettes de cuisine j'ai énormément de liste/Combo qui font référence a
des
ingrédients, mesures, recettes, catégorie, etc, etc... Ces liste/combo
sont
remplis différement en cour d'éxécution selon se que l'utilisateur est en train de faire. Jusque là ca va. Moi je voudrais creer une FONCTION
général
qui éviterais le code en double. Voila UN exemple de remplissage d'une
liste
'################# SQL = "Select * from Liens, Ingredients, Unites WHERE Liens.ReckId = " & NoRec & " AND Ingredients.kId = Liens.IngkId AND Unites.kId = Liens.UnitekId" Set rs = db.OpenRecordset(SQL) rs.MoveLast rs.MoveFirst max = rs.RecordCount lstIng.Clear For i = 1 To max tmp = rs("Liens.kid") & "- " & rs("Unite") & " " &
rs("Ingredients")
lstIng.AddItem tmp rs.MoveNext Next i '##############
Moi se que je voudrais c'est généraliser a partir du "rs.MoveLast". La Fonction serait de se genre
'############# Private Sub RemplirList(rs as Recordset, lst as Control)
... End Sub '#############
Encore là ca va bien sauf que les tables n'ont pas les mêmes noms de champs(la table 'Ingredients' a kId, Nom, Desc, ValeurNut.. La table 'Catégorie' a kId, Nom, Desc.. etc), donc je ne peux pas faire une
fonction
généraliste d'autant plus que parfois le select s'effectut sur plusieurs tables. Il y a un autre moyen d'effectuer cela? Peut-etre avec une
techique
que je ne connais pas encore!
MErci Francois
Francois Soucy
Bonjour!
Oui en effet je n'avais pas pensé a passer en param les noms de champs. Étant donné que je remplis mes liste avec 2 , 3 ou 4 params, j'ai juste a mettre les deux autres optionels!!
Merci bcp Francois
"+The_Taco+" wrote in message news:
j'ai fait une fonction similaire à ce que tu cherches....
''''''''''''''''''''''''''''''''''''''''''''' 'Fonction qui construit un combo box selon un champ via un record set 'Prend le combox en paramètre et le nom du champ du recordset ''''''''''''''''''''''''''''''''''''''''''''' Public Sub PopulateCmbBoxViaRecordSet(cmbBox As ComboBox, strNomChamp As String) Dim icpt As Integer icpt = 0 Do While Not rs.EOF 'On ajoute tous les données dans le champ spécifié dans la
fonction
cmbBox.AddItem rs(strNomChamp), icpt rs.MoveNext icpt = icpt + 1 Loop End Sub
J'ai une autre fonction dans le même module que ouvre la connexion SQL et une autre qui exécute la requête SQL. Mon objet RecordSet et Connection
est
accessible à tout mon module. Que cela peut t'aider...
cheers
"Francois Soucy" a écrit dans le message de news:TTdWa.4182$ > Bonjour a tous, > > J'ai un petit problème de technique de programmation
que
je > n'arrive pas vraiment à résoudre. Voila en gros. Dans un programme de > recettes de cuisine j'ai énormément de liste/Combo qui font référence a des > ingrédients, mesures, recettes, catégorie, etc, etc... Ces liste/combo sont > remplis différement en cour d'éxécution selon se que l'utilisateur est
en
> train de faire. Jusque là ca va. Moi je voudrais creer une FONCTION général > qui éviterais le code en double. Voila UN exemple de remplissage d'une liste > '################# > SQL = "Select * from Liens, Ingredients, Unites WHERE Liens.ReckId = " & > NoRec & " AND > Ingredients.kId = Liens.IngkId AND Unites.kId = Liens.UnitekId" > Set rs = db.OpenRecordset(SQL) > rs.MoveLast > rs.MoveFirst > max = rs.RecordCount > lstIng.Clear > For i = 1 To max > tmp = rs("Liens.kid") & "- " & rs("Unite") & " " & rs("Ingredients") > lstIng.AddItem tmp > rs.MoveNext > Next i > '############## > > Moi se que je voudrais c'est généraliser a partir du "rs.MoveLast". La > Fonction serait de se genre > > '############# > Private Sub RemplirList(rs as Recordset, lst as Control) > > ... > End Sub > '############# > > Encore là ca va bien sauf que les tables n'ont pas les mêmes noms de > champs(la table 'Ingredients' a kId, Nom, Desc, ValeurNut.. La table > 'Catégorie' a kId, Nom, Desc.. etc), donc je ne peux pas faire une fonction > généraliste d'autant plus que parfois le select s'effectut sur plusieurs > tables. Il y a un autre moyen d'effectuer cela? Peut-etre avec une techique > que je ne connais pas encore! > > MErci Francois > >
Bonjour!
Oui en effet je n'avais pas pensé a passer en param les noms
de champs. Étant donné que je remplis mes liste avec 2 , 3 ou 4 params, j'ai
juste a mettre les deux autres optionels!!
Merci bcp
Francois
"+The_Taco+" <dominic.feron@dessausoprin.com> wrote in message
news:udGEU05VDHA.208@tk2msftngp13.phx.gbl...
j'ai fait une fonction similaire à ce que tu cherches....
'''''''''''''''''''''''''''''''''''''''''''''
'Fonction qui construit un combo box selon un champ via un record set
'Prend le combox en paramètre et le nom du champ du recordset
'''''''''''''''''''''''''''''''''''''''''''''
Public Sub PopulateCmbBoxViaRecordSet(cmbBox As ComboBox, strNomChamp As
String)
Dim icpt As Integer
icpt = 0
Do While Not rs.EOF
'On ajoute tous les données dans le champ spécifié dans la
fonction
cmbBox.AddItem rs(strNomChamp), icpt
rs.MoveNext
icpt = icpt + 1
Loop
End Sub
J'ai une autre fonction dans le même module que ouvre la connexion SQL et
une autre qui exécute la requête SQL. Mon objet RecordSet et Connection
est
accessible à tout mon module.
Que cela peut t'aider...
cheers
"Francois Soucy" <Merlin867@altern.org> a écrit dans le message de
news:TTdWa.4182$Sn.38485@wagner.videotron.net...
> Bonjour a tous,
>
> J'ai un petit problème de technique de programmation
que
je
> n'arrive pas vraiment à résoudre. Voila en gros. Dans un programme de
> recettes de cuisine j'ai énormément de liste/Combo qui font référence a
des
> ingrédients, mesures, recettes, catégorie, etc, etc... Ces liste/combo
sont
> remplis différement en cour d'éxécution selon se que l'utilisateur est
en
> train de faire. Jusque là ca va. Moi je voudrais creer une FONCTION
général
> qui éviterais le code en double. Voila UN exemple de remplissage d'une
liste
> '#################
> SQL = "Select * from Liens, Ingredients, Unites WHERE Liens.ReckId = " &
> NoRec & " AND
> Ingredients.kId = Liens.IngkId AND Unites.kId = Liens.UnitekId"
> Set rs = db.OpenRecordset(SQL)
> rs.MoveLast
> rs.MoveFirst
> max = rs.RecordCount
> lstIng.Clear
> For i = 1 To max
> tmp = rs("Liens.kid") & "- " & rs("Unite") & " " &
rs("Ingredients")
> lstIng.AddItem tmp
> rs.MoveNext
> Next i
> '##############
>
> Moi se que je voudrais c'est généraliser a partir du "rs.MoveLast". La
> Fonction serait de se genre
>
> '#############
> Private Sub RemplirList(rs as Recordset, lst as Control)
>
> ...
> End Sub
> '#############
>
> Encore là ca va bien sauf que les tables n'ont pas les mêmes noms de
> champs(la table 'Ingredients' a kId, Nom, Desc, ValeurNut.. La table
> 'Catégorie' a kId, Nom, Desc.. etc), donc je ne peux pas faire une
fonction
> généraliste d'autant plus que parfois le select s'effectut sur plusieurs
> tables. Il y a un autre moyen d'effectuer cela? Peut-etre avec une
techique
> que je ne connais pas encore!
>
> MErci Francois
>
>
Oui en effet je n'avais pas pensé a passer en param les noms de champs. Étant donné que je remplis mes liste avec 2 , 3 ou 4 params, j'ai juste a mettre les deux autres optionels!!
Merci bcp Francois
"+The_Taco+" wrote in message news:
j'ai fait une fonction similaire à ce que tu cherches....
''''''''''''''''''''''''''''''''''''''''''''' 'Fonction qui construit un combo box selon un champ via un record set 'Prend le combox en paramètre et le nom du champ du recordset ''''''''''''''''''''''''''''''''''''''''''''' Public Sub PopulateCmbBoxViaRecordSet(cmbBox As ComboBox, strNomChamp As String) Dim icpt As Integer icpt = 0 Do While Not rs.EOF 'On ajoute tous les données dans le champ spécifié dans la
fonction
cmbBox.AddItem rs(strNomChamp), icpt rs.MoveNext icpt = icpt + 1 Loop End Sub
J'ai une autre fonction dans le même module que ouvre la connexion SQL et une autre qui exécute la requête SQL. Mon objet RecordSet et Connection
est
accessible à tout mon module. Que cela peut t'aider...
cheers
"Francois Soucy" a écrit dans le message de news:TTdWa.4182$ > Bonjour a tous, > > J'ai un petit problème de technique de programmation
que
je > n'arrive pas vraiment à résoudre. Voila en gros. Dans un programme de > recettes de cuisine j'ai énormément de liste/Combo qui font référence a des > ingrédients, mesures, recettes, catégorie, etc, etc... Ces liste/combo sont > remplis différement en cour d'éxécution selon se que l'utilisateur est
en
> train de faire. Jusque là ca va. Moi je voudrais creer une FONCTION général > qui éviterais le code en double. Voila UN exemple de remplissage d'une liste > '################# > SQL = "Select * from Liens, Ingredients, Unites WHERE Liens.ReckId = " & > NoRec & " AND > Ingredients.kId = Liens.IngkId AND Unites.kId = Liens.UnitekId" > Set rs = db.OpenRecordset(SQL) > rs.MoveLast > rs.MoveFirst > max = rs.RecordCount > lstIng.Clear > For i = 1 To max > tmp = rs("Liens.kid") & "- " & rs("Unite") & " " & rs("Ingredients") > lstIng.AddItem tmp > rs.MoveNext > Next i > '############## > > Moi se que je voudrais c'est généraliser a partir du "rs.MoveLast". La > Fonction serait de se genre > > '############# > Private Sub RemplirList(rs as Recordset, lst as Control) > > ... > End Sub > '############# > > Encore là ca va bien sauf que les tables n'ont pas les mêmes noms de > champs(la table 'Ingredients' a kId, Nom, Desc, ValeurNut.. La table > 'Catégorie' a kId, Nom, Desc.. etc), donc je ne peux pas faire une fonction > généraliste d'autant plus que parfois le select s'effectut sur plusieurs > tables. Il y a un autre moyen d'effectuer cela? Peut-etre avec une techique > que je ne connais pas encore! > > MErci Francois > >