Fonction vba access avec arguments
kolima
-
lermite222 Messages postés 9042 Statut Contributeur -
lermite222 Messages postés 9042 Statut Contributeur -
Bonjour,
j'ai deux tables:
table 1 de notation ou je renseigne la note, l'age et le sexe
table 2 où chaque notes a plusieurs champ texte d'observations correspondant par tranche d'age et par sexe
du moment que j'ai des milliers de feuille à renseigner je dois automatiser l'insertion de l'observation dans la feuille de note en se basant sur la feuille 2.
je propose l'algorithme suivant
fonction retourner_obs(sexe,age,note)
{
var1 text;
si (sexe=m) alors {switch (age)
{case(age<30) : var1 = (select obs from table_obs where notation=note; break;
case(age<40) : var1 = (select obs from table_obs where notation=note; break;
case(age<50) : var1 = (select obs from table_obs where notation=note; break;
case(age>50) : var1 = (select obs from table_obs where notation=note; break;
}}
sinon { switch (age)
{case(age<30) : var1 = (select obs from table_obs where notation=note; break;
case(age<40) : var1 = (select obs from table_obs where notation=note; break;
case(age<50) : var1 = (select obs from table_obs where notation=note; break;
case(age>50) : var1 = (select obs from table_obs where notation=note; break;
}
}
retourner var1
}
comme je suis un debutant en vba je n'arrive à extraire le champs obs de la table_obs et le mettre dans var1.
quelqu'un peut m'aider. merci
j'ai deux tables:
table 1 de notation ou je renseigne la note, l'age et le sexe
table 2 où chaque notes a plusieurs champ texte d'observations correspondant par tranche d'age et par sexe
du moment que j'ai des milliers de feuille à renseigner je dois automatiser l'insertion de l'observation dans la feuille de note en se basant sur la feuille 2.
je propose l'algorithme suivant
fonction retourner_obs(sexe,age,note)
{
var1 text;
si (sexe=m) alors {switch (age)
{case(age<30) : var1 = (select obs from table_obs where notation=note; break;
case(age<40) : var1 = (select obs from table_obs where notation=note; break;
case(age<50) : var1 = (select obs from table_obs where notation=note; break;
case(age>50) : var1 = (select obs from table_obs where notation=note; break;
}}
sinon { switch (age)
{case(age<30) : var1 = (select obs from table_obs where notation=note; break;
case(age<40) : var1 = (select obs from table_obs where notation=note; break;
case(age<50) : var1 = (select obs from table_obs where notation=note; break;
case(age>50) : var1 = (select obs from table_obs where notation=note; break;
}
}
retourner var1
}
comme je suis un debutant en vba je n'arrive à extraire le champs obs de la table_obs et le mettre dans var1.
quelqu'un peut m'aider. merci
2 réponses
-
Re,
Je ne connais pas Access et ne peu t"aider au niveau du code spécifique..
Mais en gros, si tu est dans une fonction/formulaire, ta BD est déjà ouverte Non?
Faut faire une requête pour sélectionner la table et ensuite les champs.
Repose ta question sur un nouveau topic, mois je sais pas t'aidé sur ce sujet.
A+
-
Bonjour,
J'ai pas bien compris ce que tu renvoi ?Public Function retourner_obs(sexe As String, age As Integer, note As String) As String If sexe = "m" Then Select Case age Case Is < 30: retourner_obs = Champ1 Case Is < 40: retourner_obs = Champ2 Case Is < 50: retourner_obs = Champ3 Case Else: retourner_obs = Champ4 End Select Else Select Case age Case Is < 30: retourner_obs = Champ5 Case Is < 40: retourner_obs = Champ6 Case Is < 50: retourner_obs = Champ7 Case Else: retourner_obs = Champ8 End If End Function
Tu a une erreur dans ton algo, tu test <50 et >50.. SI 50 ?
A+
-
merci pour ta réponse et ta correction de mon algorithme. Il me reste le problème de renvoyer la valeur des champs 1 à 7 dans la fonction. autrement dit, commet faire pour ouvrir la base, exécuter la requête et renvoyer sa valeur vers la fonction. Je pense que je dois utiliser une autre fonction qui effectue la tâche d'ouverture de la base currentDb et l'exécution de la requête tout en tenant compte de l'utilisation de l'argument note dans ma nouvelle fonction.
-