Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Problème UPDATE d'une table à l'autre

9 réponses
Avatar
Felins
Bonjour,

Je cherche à mettre à jour une table à partir d'une autre en VBA
J'ai fait :
strsql = "UPDATE Etudiants SET Etudiants.tel = Inscription.tel WHERE
(Etudiants.NomFamille Like '" & Me.PreNomFamille & "*')"

mais access me demande de rentrer l'information et je voudrais qu'il l'a
copie à partir d'un champ déjà rempli.
En fait je voudrais qu'il mette à jour tous les champs de la table Etudiants
à partir de la table Inscription...

merci pour votre aide

9 réponses

Avatar
Raymond [mvp]
Bonsoir.

les deux tables sont en relation par l'intermédiaire du champ
Etudiant.Numéro (par exemple) car elles concernent des informations pour les
mêmes individus. la source du formulaire peut donc être une requête
rassemblant les deux tables et tu disposes de toutes les infos des deux
tables. la mise à jour se fera automatiquement à partir du formulaire lors
du changement d'un champ sans l'appel à une requête.

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Felins" a écrit dans le message de news:
425560da$0$12191$
Bonjour,

Je cherche à mettre à jour une table à partir d'une autre en VBA
J'ai fait :
strsql = "UPDATE Etudiants SET Etudiants.tel = Inscription.tel WHERE
(Etudiants.NomFamille Like '" & Me.PreNomFamille & "*')"

mais access me demande de rentrer l'information et je voudrais qu'il l'a
copie à partir d'un champ déjà rempli.
En fait je voudrais qu'il mette à jour tous les champs de la table
Etudiants
à partir de la table Inscription...

merci pour votre aide




Avatar
Felins
Bonsoir,

Mes deux tables ne sont pas liées.
La première table "Etudiant" est l'enregistrement des étudiants en cours
La deuxième table "Inscription" me sert à pré-enregistrer les étudiants de
l'année prochaine.
Lorsque leur pré-inscription est validée, un bouton les enregistre dans la
table Etudiant et les supprime de la table Inscription.
Si l'étudiant est déjà entré dans la table Etudiant, j'en suis informé et je
voudrais alors que les champs se mettent à jour avec les nouvelles données
si elles sont différentes.

Merci pour votre aide




"Raymond [mvp]" a écrit dans le message de
news:
Bonsoir.

les deux tables sont en relation par l'intermédiaire du champ
Etudiant.Numéro (par exemple) car elles concernent des informations pour
les

mêmes individus. la source du formulaire peut donc être une requête
rassemblant les deux tables et tu disposes de toutes les infos des deux
tables. la mise à jour se fera automatiquement à partir du formulaire lors
du changement d'un champ sans l'appel à une requête.

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Felins" a écrit dans le message de news:
425560da$0$12191$
Bonjour,

Je cherche à mettre à jour une table à partir d'une autre en VBA
J'ai fait :
strsql = "UPDATE Etudiants SET Etudiants.tel = Inscription.tel WHERE
(Etudiants.NomFamille Like '" & Me.PreNomFamille & "*')"

mais access me demande de rentrer l'information et je voudrais qu'il l'a
copie à partir d'un champ déjà rempli.
En fait je voudrais qu'il mette à jour tous les champs de la table
Etudiants
à partir de la table Inscription...

merci pour votre aide








Avatar
Raymond [mvp]
Pour mettre à jour tu passes par une requête modification.
il doit bien y avoir des champs identiques qui permettent une relation entre
les deux tables sinon tu ne pourras jamais trouver le même étudiant dans les
deux tables.

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Felins" a écrit dans le message de news:
4256a89b$0$6750$
Bonsoir,

Mes deux tables ne sont pas liées.
La première table "Etudiant" est l'enregistrement des étudiants en cours
La deuxième table "Inscription" me sert à pré-enregistrer les étudiants de
l'année prochaine.
Lorsque leur pré-inscription est validée, un bouton les enregistre dans la
table Etudiant et les supprime de la table Inscription.
Si l'étudiant est déjà entré dans la table Etudiant, j'en suis informé et
je
voudrais alors que les champs se mettent à jour avec les nouvelles données
si elles sont différentes.

Merci pour votre aide



Avatar
Felins
J'ai fini par trouver :

strsql = "UPDATE Etudiants INNER JOIN Inscription
ON Etudiants.NomFamille=Inscription.PreNomFamille
SET Etudiants.DateNaissance = Inscription.DateNaissance, Etudiants.Tel Inscription.Tel, etc ...
WHERE (Etudiants.NomFamille Like '" & Me.PreNomFamille & "*');"

Mes tables n'étaient pas liées mais avaient forcément en commun le nom de
l'étudiant.

Ca pourrait peut-être en aider d'autre.

Merci beaucoup
@+


"Raymond [mvp]" a écrit dans le message de
news:%
Pour mettre à jour tu passes par une requête modification.
il doit bien y avoir des champs identiques qui permettent une relation
entre

les deux tables sinon tu ne pourras jamais trouver le même étudiant dans
les

deux tables.

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Felins" a écrit dans le message de news:
4256a89b$0$6750$
Bonsoir,

Mes deux tables ne sont pas liées.
La première table "Etudiant" est l'enregistrement des étudiants en cours
La deuxième table "Inscription" me sert à pré-enregistrer les étudiants
de


l'année prochaine.
Lorsque leur pré-inscription est validée, un bouton les enregistre dans
la


table Etudiant et les supprime de la table Inscription.
Si l'étudiant est déjà entré dans la table Etudiant, j'en suis informé
et


je
voudrais alors que les champs se mettent à jour avec les nouvelles
données


si elles sont différentes.

Merci pour votre aide








Avatar
Eric
Bonjour Felins,

Suis pas sur que tu vas faire une bonne opération. A moins que je ne me
trompe.

l'inner join uniquement sur le Nom me parait dangereux puisque tu n'as
pas d'identifiant commun entre les deux tables.
Et si tu as 2 etudiants, un nommé Martin Pierre et l'autre Martin Paul ,
Pierre est déja inscrit dans Etudiants et Paul seulement pré-inscrit,
que va-t-il se passer ?

Donc, à mon avis comme le souligne Raymond, il te faut utiliser dans ta
jointure plusieurs champs pour être certain de mettre à jour le bon
étudiant.

Eric

J'ai fini par trouver :

strsql = "UPDATE Etudiants INNER JOIN Inscription
ON Etudiants.NomFamille=Inscription.PreNomFamille
SET Etudiants.DateNaissance = Inscription.DateNaissance, Etudiants.Tel > Inscription.Tel, etc ...
WHERE (Etudiants.NomFamille Like '" & Me.PreNomFamille & "*');"

Mes tables n'étaient pas liées mais avaient forcément en commun le nom de
l'étudiant.

Ca pourrait peut-être en aider d'autre.

Merci beaucoup
@+


"Raymond [mvp]" a écrit dans le message de
news:%

Pour mettre à jour tu passes par une requête modification.
il doit bien y avoir des champs identiques qui permettent une relation


entre

les deux tables sinon tu ne pourras jamais trouver le même étudiant dans


les

deux tables.

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Felins" a écrit dans le message de news:
4256a89b$0$6750$

Bonsoir,

Mes deux tables ne sont pas liées.
La première table "Etudiant" est l'enregistrement des étudiants en cours
La deuxième table "Inscription" me sert à pré-enregistrer les étudiants



de

l'année prochaine.
Lorsque leur pré-inscription est validée, un bouton les enregistre dans



la

table Etudiant et les supprime de la table Inscription.
Si l'étudiant est déjà entré dans la table Etudiant, j'en suis informé



et

je
voudrais alors que les champs se mettent à jour avec les nouvelles



données

si elles sont différentes.

Merci pour votre aide












Avatar
Felins
Bonsoir,

J'ai rajouté :

ON (Ets.PrePrenom = inscrip.PrePrenom) AND (Ets.PreNomFamille inscrip.PreNomFamille)

J'ai fait des essais et ça fonctionne : la requete porte maintenant sur le
Nom et le Prenom
Voyez-vous un autre cas où je pourrais avoir des problèmes ?

@+



"Eric" a écrit dans le message de
news:%
Bonjour Felins,

Suis pas sur que tu vas faire une bonne opération. A moins que je ne me
trompe.

l'inner join uniquement sur le Nom me parait dangereux puisque tu n'as
pas d'identifiant commun entre les deux tables.
Et si tu as 2 etudiants, un nommé Martin Pierre et l'autre Martin Paul ,
Pierre est déja inscrit dans Etudiants et Paul seulement pré-inscrit,
que va-t-il se passer ?

Donc, à mon avis comme le souligne Raymond, il te faut utiliser dans ta
jointure plusieurs champs pour être certain de mettre à jour le bon
étudiant.

Eric

J'ai fini par trouver :

strsql = "UPDATE Etudiants INNER JOIN Inscription
ON Etudiants.NomFamille=Inscription.PreNomFamille
SET Etudiants.DateNaissance = Inscription.DateNaissance, Etudiants.Tel > > Inscription.Tel, etc ...
WHERE (Etudiants.NomFamille Like '" & Me.PreNomFamille & "*');"

Mes tables n'étaient pas liées mais avaient forcément en commun le nom
de


l'étudiant.

Ca pourrait peut-être en aider d'autre.

Merci beaucoup
@+


"Raymond [mvp]" a écrit dans le
message de


news:%

Pour mettre à jour tu passes par une requête modification.
il doit bien y avoir des champs identiques qui permettent une relation


entre

les deux tables sinon tu ne pourras jamais trouver le même étudiant dans


les

deux tables.

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Felins" a écrit dans le message de news:
4256a89b$0$6750$

Bonsoir,

Mes deux tables ne sont pas liées.
La première table "Etudiant" est l'enregistrement des étudiants en
cours




La deuxième table "Inscription" me sert à pré-enregistrer les étudiants



de

l'année prochaine.
Lorsque leur pré-inscription est validée, un bouton les enregistre dans



la

table Etudiant et les supprime de la table Inscription.
Si l'étudiant est déjà entré dans la table Etudiant, j'en suis informé



et

je
voudrais alors que les champs se mettent à jour avec les nouvelles



données

si elles sont différentes.

Merci pour votre aide














Avatar
Eric
re,

Nom ET Prenom ne pouvant être discriminatoire, je pense qu'il faut
combiner avec d'autres champs. Pas la ville du moins toute seule.
Prendre l'adresse+ville peut-être, sans garantie de non-collisions.
En fait il faut rechercher la combinaison des champs rendant unique
l'enregistrement

N' y aurait-il pas entre les 2 tables un champ commun discriminant comme
le numéro Insee ou SS, un NNE (numéro national étudiant) ? Ce numéro
pourrait servir pour faire le lien.

Eric

Bonsoir,

J'ai rajouté :

ON (Ets.PrePrenom = inscrip.PrePrenom) AND (Ets.PreNomFamille > inscrip.PreNomFamille)

J'ai fait des essais et ça fonctionne : la requete porte maintenant sur le
Nom et le Prenom
Voyez-vous un autre cas où je pourrais avoir des problèmes ?

@+



Avatar
Felins
Si bien sur il y a le n° de la carte étudiant, le n° de portable ou encore
la date de naissance
Je vais rajouter un de ces champs.
Merci encore et bon week end à tous

@+


"Eric" a écrit dans le message de
news:
re,

Nom ET Prenom ne pouvant être discriminatoire, je pense qu'il faut
combiner avec d'autres champs. Pas la ville du moins toute seule.
Prendre l'adresse+ville peut-être, sans garantie de non-collisions.
En fait il faut rechercher la combinaison des champs rendant unique
l'enregistrement

N' y aurait-il pas entre les 2 tables un champ commun discriminant comme
le numéro Insee ou SS, un NNE (numéro national étudiant) ? Ce numéro
pourrait servir pour faire le lien.

Eric

Bonsoir,

J'ai rajouté :

ON (Ets.PrePrenom = inscrip.PrePrenom) AND (Ets.PreNomFamille > > inscrip.PreNomFamille)

J'ai fait des essais et ça fonctionne : la requete porte maintenant sur
le


Nom et le Prenom
Voyez-vous un autre cas où je pourrais avoir des problèmes ?

@+





Avatar
Eric
le n° de la carte d'éudiant doit être unique normalement donc verifies
l'exactitude de mon information et retiens alors ce n° pour le lien
entre les 2 tables.

A+
Bon week-end
Eric

Si bien sur il y a le n° de la carte étudiant, le n° de portable ou encore
la date de naissance
Je vais rajouter un de ces champs.
Merci encore et bon week end à tous

@+


"Eric" a écrit dans le message de
news:

re,

Nom ET Prenom ne pouvant être discriminatoire, je pense qu'il faut
combiner avec d'autres champs. Pas la ville du moins toute seule.
Prendre l'adresse+ville peut-être, sans garantie de non-collisions.
En fait il faut rechercher la combinaison des champs rendant unique
l'enregistrement

N' y aurait-il pas entre les 2 tables un champ commun discriminant comme
le numéro Insee ou SS, un NNE (numéro national étudiant) ? Ce numéro
pourrait servir pour faire le lien.

Eric


Bonsoir,

J'ai rajouté :

ON (Ets.PrePrenom = inscrip.PrePrenom) AND (Ets.PreNomFamille >>>inscrip.PreNomFamille)

J'ai fait des essais et ça fonctionne : la requete porte maintenant sur



le

Nom et le Prenom
Voyez-vous un autre cas où je pourrais avoir des problèmes ?

@+