2 réponses
TuXor
Messages postés
97
Date d'inscription
lundi 23 mai 2005
Statut
Membre
Dernière intervention
28 avril 2006
25
24 mai 2005 à 14:32
24 mai 2005 à 14:32
Salut,
moi aussi je bosse sur du VBA en ce moment, et j'ai une solution à te proposer ;
Tu peux utiliser un recordSet, c'est un outil qui te permet de manipuler des données dans les tables exisantes.
Ex :
Dim bds As Database, rst As Recordset
' Retourne une référence à la base de données en cours.
Set bds = CurrentDb
Set rst = bds.OpenRecordset("nom_de_ma_table")
' Remplit l'objet Recordset.
rst.MoveLast
' Revient au premier enregistrement.
rst.MoveFirst
'permet de modifier le record set
rst.Edit
'Affectation de la nouvelle valeur
rst!<nomDeMonChamp> = <valeur>
'Confirmation du changement
rst.Update
'FINI
rst.Close
En espérant que ça puisse t'aider ...
et si tu a d'autres soucis en VBA, n'hesite pas, je commence a toucher ma bille a force d'y passer mes journées ( ^_^')
moi aussi je bosse sur du VBA en ce moment, et j'ai une solution à te proposer ;
Tu peux utiliser un recordSet, c'est un outil qui te permet de manipuler des données dans les tables exisantes.
Ex :
Dim bds As Database, rst As Recordset
' Retourne une référence à la base de données en cours.
Set bds = CurrentDb
Set rst = bds.OpenRecordset("nom_de_ma_table")
' Remplit l'objet Recordset.
rst.MoveLast
' Revient au premier enregistrement.
rst.MoveFirst
'permet de modifier le record set
rst.Edit
'Affectation de la nouvelle valeur
rst!<nomDeMonChamp> = <valeur>
'Confirmation du changement
rst.Update
'FINI
rst.Close
En espérant que ça puisse t'aider ...
et si tu a d'autres soucis en VBA, n'hesite pas, je commence a toucher ma bille a force d'y passer mes journées ( ^_^')
TuXor
Messages postés
97
Date d'inscription
lundi 23 mai 2005
Statut
Membre
Dernière intervention
28 avril 2006
25
24 mai 2005 à 18:40
24 mai 2005 à 18:40
Ok bien reçu,
en fait je travaille sur un programme qui fait ce genre de choses, simplement je ne fait pas directement le lien entre mon formilaire et ma table.
Mais il n'ya pas de raison pour que ça na marche pas.
Assez de bavardage;
avec la ligne qui suit, tu récupère les contenu de ton champ dans une variable de type string :
Pour le reste, c'est à dire de remplir la base avec la valeur que l'on vient de récupérer ; la réponse est déja présente dans la discussion un peu plus haut.
Autre possibilité, tu peux inserer des valeurs dans des tables (existantes ou à créer) avec une requête SQL.
je te conseille d'utiliser la fonction :
voila voila.
si tu a toujours des soucis, ask me...
en fait je travaille sur un programme qui fait ce genre de choses, simplement je ne fait pas directement le lien entre mon formilaire et ma table.
Mais il n'ya pas de raison pour que ça na marche pas.
Assez de bavardage;
avec la ligne qui suit, tu récupère les contenu de ton champ dans une variable de type string :
MaVariableString = Form_Mon_formulaire.Mon_champ
Pour le reste, c'est à dire de remplir la base avec la valeur que l'on vient de récupérer ; la réponse est déja présente dans la discussion un peu plus haut.
Autre possibilité, tu peux inserer des valeurs dans des tables (existantes ou à créer) avec une requête SQL.
je te conseille d'utiliser la fonction :
DoCmd.RunSql " ma requete ; "
voila voila.
si tu a toujours des soucis, ask me...
TuXor
Messages postés
97
Date d'inscription
lundi 23 mai 2005
Statut
Membre
Dernière intervention
28 avril 2006
25
25 mai 2005 à 11:38
25 mai 2005 à 11:38
No souci pour les questions, c'est qu'il y'a besoin de précisions.
C'est vrai que je n'ai pas parlé de l'endroit ou l'on insert ce code, alors voila ; je met la ligne pour récupérer les données dans une fonction evénementielle qui se lance en cliquent sur un bouton du type Valider, tu fais un petit IF pour vérifier que le champ est bien rempli etc... enfin ça c'est des détail.
Pour ce qui est des lignes qui servent à inserer les infos dans la base, tu peux les coller juste à la suite dans la fonction événementielle, ou bien dans une fonction spécifique que tu crée à coté.
Un petit topo sur : Commentçamarcheunrecordset
(même si je ne suis pas un spésialiste )
D'aprés ce que j'ai pu comprendre, le record set est un genre de super enregistrement, qui lorsqu'il va étre appelé (code déja donné) va contenir toutes les données d'une table, celle dont le nom aura été utilisé pour ouvrir le record set.
On peut par la suite récupérer ces données dans des variable, mais également (et c'est la que ça devient ineressant(quoi ce n'était pas déja passionnant )) modifier les information contenus dans la table
tout cela avec :
Voila. j'epére que cela t'éclaire un peu.
Pour plus d'infos, je suis toujours en ligne, mais tu peux aussi consulter l'aide d'Access même si c'est pas trés bien fichu..
C'est vrai que je n'ai pas parlé de l'endroit ou l'on insert ce code, alors voila ; je met la ligne pour récupérer les données dans une fonction evénementielle qui se lance en cliquent sur un bouton du type Valider, tu fais un petit IF pour vérifier que le champ est bien rempli etc... enfin ça c'est des détail.
Pour ce qui est des lignes qui servent à inserer les infos dans la base, tu peux les coller juste à la suite dans la fonction événementielle, ou bien dans une fonction spécifique que tu crée à coté.
Un petit topo sur : Commentçamarcheunrecordset
(même si je ne suis pas un spésialiste )
D'aprés ce que j'ai pu comprendre, le record set est un genre de super enregistrement, qui lorsqu'il va étre appelé (code déja donné) va contenir toutes les données d'une table, celle dont le nom aura été utilisé pour ouvrir le record set.
On peut par la suite récupérer ces données dans des variable, mais également (et c'est la que ça devient ineressant(quoi ce n'était pas déja passionnant )) modifier les information contenus dans la table
tout cela avec :
'Pour dire que l'on veut modifier le recordset rst.Edit 'pour modifier rst!ID = IDREG <--(variable du programme) ^ || (nom de mon champ dans la base) 'ne pas oublier de validerles changement et de fermer le record set rst.Update rst.Close
Voila. j'epére que cela t'éclaire un peu.
Pour plus d'infos, je suis toujours en ligne, mais tu peux aussi consulter l'aide d'Access même si c'est pas trés bien fichu..
Utilisateur anonyme
>
TuXor
Messages postés
97
Date d'inscription
lundi 23 mai 2005
Statut
Membre
Dernière intervention
28 avril 2006
26 mai 2005 à 10:24
26 mai 2005 à 10:24
Salut TuXor,
Je suis désolé de t'embêter encore ce matin, mais j'ai toujours une erreur avec l'utilisation de RecordSet.
L'erreur "Type défini non défini par l'utilisateur" se situe à la ligne :
Dim bds As Database, rst As Recordset.
Access ne connait pas le terme Database.
Qu'est ce qu'il faut que je fasse alors?
Merci
Je suis désolé de t'embêter encore ce matin, mais j'ai toujours une erreur avec l'utilisation de RecordSet.
L'erreur "Type défini non défini par l'utilisateur" se situe à la ligne :
Dim bds As Database, rst As Recordset.
Access ne connait pas le terme Database.
Qu'est ce qu'il faut que je fasse alors?
Merci
24 mai 2005 à 15:51
Tu comprends ce que ça veut dire?
Merci
24 mai 2005 à 16:05
sinon, est-ce que tu as un numéro d'erreur ?
et sur quelle istruction le compilo bloque ?
et si tu as d'autres détail n'hésite pas a les donner aussi.
24 mai 2005 à 16:27
Je t'explique:
J'ai créé un formulaire en mode création dont les zones textes ne sont liées à aucune table.
Ce que je voudrais, c'est recopier les valeurs contenues dans ces zones texte dans une table. en je n'arrive pas à faire la liaison entre le formulaire et la table.
Voilà mon problème