Atteindre un champ particulier avec VBA - VB/VBA/VBS - Programmation
Marsh Posté le 25-04-2005 à 13:43:33
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:
Voilà, j'espère que ça t'a aidé
Marsh Posté le 25-04-2005 à 14:35:53
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 ?
Marsh Posté le 25-04-2005 à 15:23:47
Mariooo a écrit : Merci beaucoup, j'essaie ça. |
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
Mariooo a écrit : |
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
Marsh Posté le 25-04-2005 à 15:44:03
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
Marsh Posté le 25-04-2005 à 16:22:03
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
Marsh Posté le 25-04-2005 à 16:25:51
vi vi vi j'en suis certaine
mais quelle est la syntaxe exacte ?
je ne peux pas faire ce_que_je_veux = "requete", si?
Marsh Posté le 25-04-2005 à 16:52:07
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 ?
Marsh Posté le 25-04-2005 à 17:16:05
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.
Marsh Posté le 25-04-2005 à 17:28:07
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
Marsh Posté le 26-04-2005 à 08:49:09
Mariooo a écrit : Oui c'est bien ça. |
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+
Marsh Posté le 26-04-2005 à 09:13:08
J'ai trouvé hier soir
Même pas dans l'aide d'Access, mais sur ce bon vieux net !
Merci pour ta (votre?) disponibilité
Marsh Posté le 25-04-2005 à 11:48:08
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