Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1743 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Atteindre un champ particulier avec VBA

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Atteindre un champ particulier avec VBA

n°1059559
Mariooo
Posté le 25-04-2005 à 11:48:08  profilanswer
 

Bonjour,
 
Je souhaiterais savoir s'il est possible d'accéder à une "case" d'une table grâce à un code VBA.
 
Mon problème en gros :
J'ai un formulaire lié à une table1 qui effectue des opérations sur les enregistrmeents de cette table, entre autres.
Mais j'aimerais, à partir des informations entrées dans le formulaire, accéder à un champ d'une table2, et y écrire quelque chose.
 
Est-ce réalisable dans le seul code du formulaire ? Ou dois-je comme j'en ai bien peur fair eune sorte de formulaire caché intermédiaire pour faire le lien entre les deux tables ? J'aimerais éviter les trucs moches ;)
 
Merci

mood
Publicité
Posté le 25-04-2005 à 11:48:08  profilanswer
 

n°1059683
gfa
Posté le 25-04-2005 à 13:43:33  profilanswer
 

Salut,
 
Ta Table2 a certainement une primary key ou tout du moins une foreign key qui point sur la primary key de Table1 (Ca paraît logique vu que t'as apparement un lien entre les deux). Donc à partir de la, il te suffit de créer une requêtre UPDATE qui va modifier l'enregistrement voulu de la Table2:
UPDATE Table2 SET Champ_a_changer = Valeur WHERE FK_Table1 = Valeur_PK_Table1
 
Dans cette reqête:
 

  • Champ_a_changer c'est le nom du champ que tu veux modifier

  • Valeur c'est la valeur que tu veux affecter à ce champ

  • FK_Table1 c'est la Foreign Key de Table1 (correspond donc à la PK de Table1)

  • Valeur_PK_Table1 c'est la valeur de la Primary Key de la table 1 qui indique quel enregistrement tu veux modifié.


Voilà, j'espère que ça t'a aidé

n°1059775
Mariooo
Posté le 25-04-2005 à 14:35:53  profilanswer
 

Merci beaucoup, j'essaie ça.
Crois-tu que cela change quelque chose si la valeur à updater est une chaîne variable ?
 
Et sinon, comment récupérer à l'inverse en variable le contenu d'un champ en particulier ?

n°1059897
gfa
Posté le 25-04-2005 à 15:23:47  profilanswer
 

Mariooo a écrit :

Merci beaucoup, j'essaie ça.
Crois-tu que cela change quelque chose si la valeur à updater est une chaîne variable ?


Je suis pas sûr d'avoir bien compris... La valeur à updater??? Quoi t'es-ce?
 
Si tu parles du champs que tu dois updater, c'est pas un problème si son nom change. Mais tu devras modifier ta requête en fonction du champ que tu veux modifier.  
Si tu parles de la valeur que dois prendre le champ, alors j'espère bien que c'est une chaîne variable, autrement ça n'aurait pas de sens de faire un update  :D  
 

Mariooo a écrit :


Et sinon, comment récupérer à l'inverse en variable le contenu d'un champ en particulier ?


Alors là tu ne fais pas une requête UPDATE mais une requête SELECT:
SELECT Nom_Du_Champ FROM Table1 WHERE PK_Table1 = Valeur_PK
 
Bien entendu, tu peux construire ta requête WHERE sur autre chose que la primary key... Au risque par contre de te retrouver avec une requête qui renvoie plusieurs records

n°1059937
Mariooo
Posté le 25-04-2005 à 15:44:03  profilanswer
 

Oui je parlais d'un contenu variable pour l'update du champ.  
 
Et si je suis sûre que le résultat de ma requete ne se compose que d'un élément, y a-t-il une manière de l'affecter directement à une chaine de caractères ?
VBA peut-il le comprendre ainsi ?
 
Merci beaucoup pour ton aide

n°1059997
gfa
Posté le 25-04-2005 à 16:22:03  profilanswer
 

Si t'es sûre à 200% que ta requête ne retourne qu'un élément alors y a pas de soucis... Autrement, prévoit de la gestion d'erreur :)

n°1060003
Mariooo
Posté le 25-04-2005 à 16:25:51  profilanswer
 

vi vi vi j'en suis certaine :p
 
mais quelle est la syntaxe exacte ?
je ne peux pas faire ce_que_je_veux = "requete", si?

n°1060031
gfa
Posté le 25-04-2005 à 16:43:26  profilanswer
 

J'ai pas compris ta question... :)

n°1060041
Mariooo
Posté le 25-04-2005 à 16:52:07  profilanswer
 

hum désolée...
 
Quelle est la syntaxe exacte pour effectuer l'affectation du résultat (unique donc) de ma requete à, par exemple, une chaine de caractères ?

n°1060055
gfa
Posté le 25-04-2005 à 17:16:05  profilanswer
 

Attention, ce que tu veux faire c'est bien d'affecter le résultat de ta requête à une variable (de type chaîne de caractères)?
 
Si c'est ça, tu crées un recordset avec comme SQL ta requête... Ensuite tu attribues à ta variable la valeur du champs de ton recordset.

mood
Publicité
Posté le 25-04-2005 à 17:16:05  profilanswer
 

n°1060071
Mariooo
Posté le 25-04-2005 à 17:28:07  profilanswer
 

Oui c'est bien ça.
 
Une petite dernière...
Quelle est le nom de la méthode pour attribuer la valeur du champ à ma variable ?
 
Merci

n°1060825
gfa
Posté le 26-04-2005 à 08:49:09  profilanswer
 

Mariooo a écrit :

Oui c'est bien ça.
 
Une petite dernière...
Quelle est le nom de la méthode pour attribuer la valeur du champ à ma variable ?
 
Merci


Ce qui serait bien, c'est que tu cherches un peu dans l'aide d'Access... Tu devrais y trouver toutes (ou presque) les réponses à tes questions :)
 
Néanmoins pour te donner un petit coup de main, je te suggère de regarder la méthode te permettant d'accèder à la valeur (ou au texte) d'un champ de saisie (ou un label) et la méthode permettant d'accéder à la valeur d'un champ d'un recordset.
 
Si tu ne trouves toujours rien, fais le nous savoir :)
 
A+

n°1060838
Mariooo
Posté le 26-04-2005 à 09:13:08  profilanswer
 

J'ai trouvé hier soir
Même pas dans l'aide d'Access, mais sur ce bon vieux net !
 
Merci pour ta (votre?) disponibilité   :)  


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Atteindre un champ particulier avec VBA

 

Sujets relatifs
erreur d'execution VBA/accessPb de récupération de données ds un champ text
Vba access : gestion d'erreur malgré DoCmd.SetWarnings False[Résolu] Insérer dans un champ texte en fonction de checkbox
Active Directory et VBA Accessinteroger BD/ VBA/ DAO
VBA & Combobox - besoin d'aide -Increment d'un champ en SQL
[VBA] Question simple sur InStr et adresse e-mail...Contrôler bouton de la barre d'outil Word en VBA
Plus de sujets relatifs à : Atteindre un champ particulier avec VBA


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR