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

ajout d'enregistrements dans une table par VBA

7 réponses
Avatar
Rémi
bonjour,
je souhaiterais ajouter des enregistrements dans une table par VBA, mais
j'aimerais par la même que les enregistrements ayant été ajoutés soient
réputés "ajouté" dans la table source afin qu'ils ne soient pas de nouveau
ajoutés lors d'une prochaine utilisation de la procédure (pour ne pas avoir
de doublons)
par un requête d'ajout de données, ça fonctionne très bien, mais je ne peux
pas réputer les enregistrements comme ajouté (ou alors je ne sais pas
comment faire), c'est pour ça que je pensais les ajouter par du code VBA
si une bonne âme pouvait m'aider ?????
P.S. : j'en suis au niveau débutant alors soyez indulgeant
merci d'avance

7 réponses

Avatar
Michel__D
Bonjour,

Rémi a écrit :
bonjour,
je souhaiterais ajouter des enregistrements dans une table par VBA,
mais j'aimerais par la même que les enregistrements ayant été ajoutés
soient réputés "ajouté" dans la table source afin qu'ils ne soient pas
de nouveau ajoutés lors d'une prochaine utilisation de la procédure
(pour ne pas avoir de doublons)
par un requête d'ajout de données, ça fonctionne très bien, mais je ne
peux pas réputer les enregistrements comme ajouté (ou alors je ne sais
pas comment faire), c'est pour ça que je pensais les ajouter par du
code VBA
si une bonne âme pouvait m'aider ?????
P.S. : j'en suis au niveau débutant alors soyez indulgeant
merci d'avance



Heu ... que ce soit par VBA ou via une requête "Ajout de données" le
résultat est le même et donc c'est à toi
de mettre en place le mécanisme qui t'évitera les doublons, il faudrait
indiquer la structure de ta base de
données et expliquer son fonctionnement pour t'en dire plus.
Avatar
Rémi
bonjour Michel,
merci de t'interesser à mon cas.
j'ai donc une table A depuis laquelle je voudrais copier vers une table B
trois champs (en fait la table B est faite pour contenir des données
temporaires)
ce que je souhaiterais faire est copier mes données et en même temps que
cette action coche un champs oui/non (ça me servirait de filtre
ultérieurement pour contrôler que mes enregistrements ont déjà été ajoutés à
ma table B)
en fait je ne sais pas si c'est la meilleure manière de procéder ???
j'ai eu toutefois une autre idée : copier aussi la clé primaire (de la table
A) dans un champs indéxé sans doublons, ça marche mais si un enregistrement
à déjà été copier cela déclenche donc un message d'erreur.
peut on éviter ce message d'erreur afin que l'utilisateur ne soit pas
perturbé ?
j'espère avoir été assez clair
merci d'avance


"Michel__D" a écrit dans le message de
news:
Bonjour,

Rémi a écrit :
bonjour,
je souhaiterais ajouter des enregistrements dans une table par VBA, mais
j'aimerais par la même que les enregistrements ayant été ajoutés soient
réputés "ajouté" dans la table source afin qu'ils ne soient pas de
nouveau ajoutés lors d'une prochaine utilisation de la procédure (pour ne
pas avoir de doublons)
par un requête d'ajout de données, ça fonctionne très bien, mais je ne
peux pas réputer les enregistrements comme ajouté (ou alors je ne sais
pas comment faire), c'est pour ça que je pensais les ajouter par du code
VBA
si une bonne âme pouvait m'aider ?????
P.S. : j'en suis au niveau débutant alors soyez indulgeant
merci d'avance



Heu ... que ce soit par VBA ou via une requête "Ajout de données" le
résultat est le même et donc c'est à toi
de mettre en place le mécanisme qui t'évitera les doublons, il faudrait
indiquer la structure de ta base de
données et expliquer son fonctionnement pour t'en dire plus.


Avatar
Michel__D
Bonjour,

Rémi a écrit :
bonjour Michel,
merci de t'interesser à mon cas.
j'ai donc une table A depuis laquelle je voudrais copier vers une
table B trois champs (en fait la table B est faite pour contenir des
données temporaires)
ce que je souhaiterais faire est copier mes données et en même temps
que cette action coche un champs oui/non (ça me servirait de filtre
ultérieurement pour contrôler que mes enregistrements ont déjà été
ajoutés à ma table B)
en fait je ne sais pas si c'est la meilleure manière de procéder ???
j'ai eu toutefois une autre idée : copier aussi la clé primaire (de la
table A) dans un champs indéxé sans doublons, ça marche mais si un
enregistrement à déjà été copier cela déclenche donc un message d'erreur.



C'est l'option à préconiser et tu ne rajoute que les enregistrements de
la table A dont la clé primaire n'existe pas dans la table B.

peut on éviter ce message d'erreur afin que l'utilisateur ne soit pas
perturbé ?
j'espère avoir été assez clair
merci d'avance


"Michel__D" a écrit dans le
message de news:
Bonjour,

Rémi a écrit :
bonjour,
je souhaiterais ajouter des enregistrements dans une table par VBA,
mais j'aimerais par la même que les enregistrements ayant été
ajoutés soient réputés "ajouté" dans la table source afin qu'ils ne
soient pas de nouveau ajoutés lors d'une prochaine utilisation de la
procédure (pour ne pas avoir de doublons)
par un requête d'ajout de données, ça fonctionne très bien, mais je
ne peux pas réputer les enregistrements comme ajouté (ou alors je ne
sais pas comment faire), c'est pour ça que je pensais les ajouter
par du code VBA
si une bonne âme pouvait m'aider ?????
P.S. : j'en suis au niveau débutant alors soyez indulgeant
merci d'avance



Heu ... que ce soit par VBA ou via une requête "Ajout de données" le
résultat est le même et donc c'est à toi
de mettre en place le mécanisme qui t'évitera les doublons, il
faudrait indiquer la structure de ta base de
données et expliquer son fonctionnement pour t'en dire plus.





Avatar
Rémi
Michel,
ok pour le conseil, je vais donc aller dans ce sens
par contre, connais tu un moyen de masquer la boite de dialogue d'erreur
pour les enregistrements ayant déjà été ajouté ?
merci d'avance


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

Rémi a écrit :
bonjour Michel,
merci de t'interesser à mon cas.
j'ai donc une table A depuis laquelle je voudrais copier vers une table B
trois champs (en fait la table B est faite pour contenir des données
temporaires)
ce que je souhaiterais faire est copier mes données et en même temps que
cette action coche un champs oui/non (ça me servirait de filtre
ultérieurement pour contrôler que mes enregistrements ont déjà été
ajoutés à ma table B)
en fait je ne sais pas si c'est la meilleure manière de procéder ???
j'ai eu toutefois une autre idée : copier aussi la clé primaire (de la
table A) dans un champs indéxé sans doublons, ça marche mais si un
enregistrement à déjà été copier cela déclenche donc un message d'erreur.



C'est l'option à préconiser et tu ne rajoute que les enregistrements de la
table A dont la clé primaire n'existe pas dans la table B.

peut on éviter ce message d'erreur afin que l'utilisateur ne soit pas
perturbé ?
j'espère avoir été assez clair
merci d'avance


"Michel__D" a écrit dans le message
de news:
Bonjour,

Rémi a écrit :
bonjour,
je souhaiterais ajouter des enregistrements dans une table par VBA,
mais j'aimerais par la même que les enregistrements ayant été ajoutés
soient réputés "ajouté" dans la table source afin qu'ils ne soient pas
de nouveau ajoutés lors d'une prochaine utilisation de la procédure
(pour ne pas avoir de doublons)
par un requête d'ajout de données, ça fonctionne très bien, mais je ne
peux pas réputer les enregistrements comme ajouté (ou alors je ne sais
pas comment faire), c'est pour ça que je pensais les ajouter par du
code VBA
si une bonne âme pouvait m'aider ?????
P.S. : j'en suis au niveau débutant alors soyez indulgeant
merci d'avance



Heu ... que ce soit par VBA ou via une requête "Ajout de données" le
résultat est le même et donc c'est à toi
de mettre en place le mécanisme qui t'évitera les doublons, il faudrait
indiquer la structure de ta base de
données et expliquer son fonctionnement pour t'en dire plus.







Avatar
Michel__D
Bonjour,

Tu n'a pas besoin de masquer la boite de dialogue puisqu'elle ne doit
pas apparaître.

Regarde le SQL de la requête suivante :

INSERT INTO TableB
SELECT TA.ClePrimaire, TA.Champ1, TA.Champ2, TA.Champ3
FROM TableA AS TA LEFT JOIN TableB AS TB ON TA.ClePrimaire=TB.ClePrimaire
WHERE TB.ClePrimaire IS NULL;

Ou autre solution possible

INSERT INTO TableB
SELECT TA.ClePrimaire, TA.Champ1, TA.Champ2, TA.Champ3
FROM TableA AS TA
WHERE TA.ClePrimaire Not IN (SELECT ClePrimaire FROM TableB);


Rémi a écrit :
Michel,
ok pour le conseil, je vais donc aller dans ce sens
par contre, connais tu un moyen de masquer la boite de dialogue
d'erreur pour les enregistrements ayant déjà été ajouté ?
merci d'avance


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

Rémi a écrit :
bonjour Michel,
merci de t'interesser à mon cas.
j'ai donc une table A depuis laquelle je voudrais copier vers une
table B trois champs (en fait la table B est faite pour contenir des
données temporaires)
ce que je souhaiterais faire est copier mes données et en même temps
que cette action coche un champs oui/non (ça me servirait de filtre
ultérieurement pour contrôler que mes enregistrements ont déjà été
ajoutés à ma table B)
en fait je ne sais pas si c'est la meilleure manière de procéder ???
j'ai eu toutefois une autre idée : copier aussi la clé primaire (de
la table A) dans un champs indéxé sans doublons, ça marche mais si
un enregistrement à déjà été copier cela déclenche donc un message
d'erreur.



C'est l'option à préconiser et tu ne rajoute que les enregistrements
de la table A dont la clé primaire n'existe pas dans la table B.




Avatar
Rémi
Merci Michel
un très grand merci
une petite question subsidiaire si tu veux bien
où puis je trouver des cours à ma portée sur les requêtes sql et le langage
vba ?
bonne soirée

"Michel__D" a écrit dans le message de
news:
Bonjour,

Tu n'a pas besoin de masquer la boite de dialogue puisqu'elle ne doit pas
apparaître.

Regarde le SQL de la requête suivante :

INSERT INTO TableB
SELECT TA.ClePrimaire, TA.Champ1, TA.Champ2, TA.Champ3
FROM TableA AS TA LEFT JOIN TableB AS TB ON TA.ClePrimaire=TB.ClePrimaire
WHERE TB.ClePrimaire IS NULL;

Ou autre solution possible

INSERT INTO TableB
SELECT TA.ClePrimaire, TA.Champ1, TA.Champ2, TA.Champ3
FROM TableA AS TA
WHERE TA.ClePrimaire Not IN (SELECT ClePrimaire FROM TableB);


Rémi a écrit :
Michel,
ok pour le conseil, je vais donc aller dans ce sens
par contre, connais tu un moyen de masquer la boite de dialogue d'erreur
pour les enregistrements ayant déjà été ajouté ?
merci d'avance


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

Rémi a écrit :
bonjour Michel,
merci de t'interesser à mon cas.
j'ai donc une table A depuis laquelle je voudrais copier vers une table
B trois champs (en fait la table B est faite pour contenir des données
temporaires)
ce que je souhaiterais faire est copier mes données et en même temps
que cette action coche un champs oui/non (ça me servirait de filtre
ultérieurement pour contrôler que mes enregistrements ont déjà été
ajoutés à ma table B)
en fait je ne sais pas si c'est la meilleure manière de procéder ???
j'ai eu toutefois une autre idée : copier aussi la clé primaire (de la
table A) dans un champs indéxé sans doublons, ça marche mais si un
enregistrement à déjà été copier cela déclenche donc un message
d'erreur.



C'est l'option à préconiser et tu ne rajoute que les enregistrements de
la table A dont la clé primaire n'existe pas dans la table B.






Avatar
Michel__D
Re,

Rémi a écrit :
Merci Michel
un très grand merci
une petite question subsidiaire si tu veux bien
où puis je trouver des cours à ma portée sur les requêtes sql et le
langage vba ?
bonne soirée



Regarde la signature de certain intervenant qui possède des liens vers
des sites d'aide
sinon tu fais une recherche via ton moteur de recherche avec les mots
qui vont bien.