Bonjour à tous, décidement ACCESS me donne vraiment du fil a retordre ... :=(
Moi qui était partis dans un dévoeloppment access, car je pensé que ça allait etre vite fais, ...jje me suis bien planté, LOL.
J'aimerais réaliser une action, qui je pense est tres simple, mais dont je n'arrive pas a en voir la fin.
afficher dans un textBox, une valeur qui est issue d'une requete SQL (bien évidament une requete vraiment simple, qui n'est pas cencé renvoyer un recordSet mais simplement une valeur)
EX: "Select nom from Personne where id = 10" ou encore
"Select SUM(montantEcheance) as montantEncaisse From EcheanceContrat where numContrat = 18;"
Impossible d'obtenir la valeur dans un textbox .. pourtant j'ai essayé plusieurs manière:
LA première, la plus simple j'ai copier/coller la requete dans la feuille de propriété du textbox en question dna la propriété "source de controle"
Malgheursement ca ne marche pas, ca affiche "#Nom*?"
Ensuite j'ai essayé avec le génerateur de code, en créant une objet requete dans mon projet, et en allant le chercher directement par le generateur de code (requete / La requete en question / le champ / valeur)
Mais meme résultat que ci dessus, la textbox m'affiche "#Nom*?"
Du coup, je me suis dit, "va directement à la source" fait le en vba ...
Cependant les seul bout de code que je connaisse pour executer une requete en vba, utilise des recordSet, et du coup je me suis que c'est peu etre de "prendre un marteau pour ecraser une mouche", sachant que ma requête ne renvois qu'une seule ligne (getRows) et de plus que que cette ligne dispose que d'un seul champ ...
Enfin bref, qui peut le plus, peut le moins donc je me lance dans le code
ps: pour une reutilisation du code je decide de créer une fonction
Dans le principe, cette fonction marche ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Public Function GetQuerryOneResult_String(querry As String) Dim rst As DAO.Recordset Set rst = CurrentDb.OpenRecordset(querry, dbOpenDynaset) GetQuerryOneResult_String = rst.Fields("nom du champ") End Function
Cependant une erreur survient , si en fonction du critère (Where) par exemple , il n y a pas d'enregistrement qui correspond.
La requete renvois, aparament un resultat a null (a vide)
Cependant, il me provoque une erreur pour l'afficher la le textbox.
Y aurait il pas un moyen plus simple pour recupérer, le resultat d'une requete qui dispose d'un seul enregistrement a un seul champ (cad , une requete qui renvois qu'une seule valeur)
Cdt, Damien
Partager