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
A voir également:
- Fonction vba access avec arguments
- Fonction si et - Guide
- Fonction miroir - Guide
- Incompatibilité de type vba ✓ - Forum Programmation
- Fonction moyenne excel - Guide
- Acer quick access - Forum logiciel systeme
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+
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 ?
Tu a une erreur dans ton algo, tu test <50 et >50.. SI 50 ?
A+
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.