verif d'un critère de requête ajout dans table destination pour eviter doublons
6 réponses
sylvere
Je dois copier des enregistrements d'une table à une autre selon critères
par requête d'ajout.
je choisis dans cette requête le critère de copie d'enregistrements dans le
champ critere_a de la table "source"
Pour interdire les doublons de copie dans la table "destination", je
souhaite pouvoir vérifier dans la table "destination" si un enregistrement
avec le critere existe déjà, quelle que soit sa place dans le champ que nous
appelons critere_b de la table "destination", et interdire la requête si tel
est le cas.
ex :si je choisis le critère_a = 1 de la table "source", vérifier su ce
critère existe déjà quelque part dans le champ critere_b de la table
"destination" et interdire l'exécution de la requête.
Je sais le faire sur le dernier enregistrement de la table "destination"
avec un test sur le Dmax du champ "critere", mais cela ne résoud pas tout
mes problèmes et interdit l'ajout d'enregistrements inférieurs à Dmax et qui
n'auraient pas encore été ajoutés.
Merci d'avance.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Fabien
Je dois copier des enregistrements d'une table à une autre selon critères par requête d'ajout. je choisis dans cette requête le critère de copie d'enregistrements dans le champ critere_a de la table "source" Pour interdire les doublons de copie dans la table "destination", je souhaite pouvoir vérifier dans la table "destination" si un enregistrement avec le critere existe déjà, quelle que soit sa place dans le champ que nous appelons critere_b de la table "destination", et interdire la requête si tel est le cas. ex :si je choisis le critère_a = 1 de la table "source", vérifier su ce critère existe déjà quelque part dans le champ critere_b de la table "destination" et interdire l'exécution de la requête. Je sais le faire sur le dernier enregistrement de la table "destination" avec un test sur le Dmax du champ "critere", mais cela ne résoud pas tout mes problèmes et interdit l'ajout d'enregistrements inférieurs à Dmax et qui n'auraient pas encore été ajoutés. Merci d'avance.
Sylvere
Salut Sylvere
et si tu utilises un dcount a la place de dmax ? genre if dcount("*","Destination","Critere_b="&critere_a)>0 then msgbox("Le critere " & critere_a & " est déjà présent dans la table de destination !") else docmd.runsql marequete end if
Je dois copier des enregistrements d'une table à une autre selon critères
par requête d'ajout.
je choisis dans cette requête le critère de copie d'enregistrements dans le
champ critere_a de la table "source"
Pour interdire les doublons de copie dans la table "destination", je
souhaite pouvoir vérifier dans la table "destination" si un enregistrement
avec le critere existe déjà, quelle que soit sa place dans le champ que nous
appelons critere_b de la table "destination", et interdire la requête si tel
est le cas.
ex :si je choisis le critère_a = 1 de la table "source", vérifier su ce
critère existe déjà quelque part dans le champ critere_b de la table
"destination" et interdire l'exécution de la requête.
Je sais le faire sur le dernier enregistrement de la table "destination"
avec un test sur le Dmax du champ "critere", mais cela ne résoud pas tout
mes problèmes et interdit l'ajout d'enregistrements inférieurs à Dmax et qui
n'auraient pas encore été ajoutés.
Merci d'avance.
Sylvere
Salut Sylvere
et si tu utilises un dcount a la place de dmax ?
genre
if dcount("*","Destination","Critere_b="&critere_a)>0 then
msgbox("Le critere " & critere_a & " est déjà présent dans la table de
destination !")
else
docmd.runsql marequete
end if
Je dois copier des enregistrements d'une table à une autre selon critères par requête d'ajout. je choisis dans cette requête le critère de copie d'enregistrements dans le champ critere_a de la table "source" Pour interdire les doublons de copie dans la table "destination", je souhaite pouvoir vérifier dans la table "destination" si un enregistrement avec le critere existe déjà, quelle que soit sa place dans le champ que nous appelons critere_b de la table "destination", et interdire la requête si tel est le cas. ex :si je choisis le critère_a = 1 de la table "source", vérifier su ce critère existe déjà quelque part dans le champ critere_b de la table "destination" et interdire l'exécution de la requête. Je sais le faire sur le dernier enregistrement de la table "destination" avec un test sur le Dmax du champ "critere", mais cela ne résoud pas tout mes problèmes et interdit l'ajout d'enregistrements inférieurs à Dmax et qui n'auraient pas encore été ajoutés. Merci d'avance.
Sylvere
Salut Sylvere
et si tu utilises un dcount a la place de dmax ? genre if dcount("*","Destination","Critere_b="&critere_a)>0 then msgbox("Le critere " & critere_a & " est déjà présent dans la table de destination !") else docmd.runsql marequete end if
sylvere
Merci pour l'aide, mais ça coince : "erreur de syntaxe, opérateur absent dans l'expression "nostage_b=" à la ligne suivante : If DCount("*", "facturation", "nostage_b=" & nostage) > 0 Then MsgBox ("le critere" & nostage & "est déjà present") Else DoCmd.RunSQL "R_transfert_facturation" End If "Facturation" est la table destination et "_b" est le critère à aller vérifier en comparaison de "nostage" qui appartient à la table " source "
Merci pour l'aide.. Sylvere
"Fabien" a écrit dans le message de news: 4732bb02$0$25934$
Je dois copier des enregistrements d'une table à une autre selon critères
par requête d'ajout. je choisis dans cette requête le critère de copie d'enregistrements dans le
champ critere_a de la table "source" Pour interdire les doublons de copie dans la table "destination", je souhaite pouvoir vérifier dans la table "destination" si un enregistrement
avec le critere existe déjà, quelle que soit sa place dans le champ que nous
appelons critere_b de la table "destination", et interdire la requête si tel
est le cas. ex :si je choisis le critère_a = 1 de la table "source", vérifier su ce critère existe déjà quelque part dans le champ critere_b de la table "destination" et interdire l'exécution de la requête. Je sais le faire sur le dernier enregistrement de la table "destination" avec un test sur le Dmax du champ "critere", mais cela ne résoud pas tout
mes problèmes et interdit l'ajout d'enregistrements inférieurs à Dmax et qui
n'auraient pas encore été ajoutés. Merci d'avance.
Sylvere
Salut Sylvere
et si tu utilises un dcount a la place de dmax ? genre if dcount("*","Destination","Critere_b="&critere_a)>0 then msgbox("Le critere " & critere_a & " est déjà présent dans la table de destination !") else docmd.runsql marequete end if
Merci pour l'aide, mais ça coince :
"erreur de syntaxe, opérateur absent dans l'expression "nostage_b="
à la ligne suivante :
If DCount("*", "facturation", "nostage_b=" & nostage) > 0 Then
MsgBox ("le critere" & nostage & "est déjà present")
Else
DoCmd.RunSQL "R_transfert_facturation"
End If
"Facturation" est la table destination et "_b" est le critère à aller
vérifier en comparaison de "nostage" qui appartient à la table " source "
Merci pour l'aide..
Sylvere
"Fabien" <UrbaniakFabienxxxxx@Neuf.fr> a écrit dans le message de news:
4732bb02$0$25934$ba4acef3@news.orange.fr...
Je dois copier des enregistrements d'une table à une autre selon
critères
par requête d'ajout.
je choisis dans cette requête le critère de copie d'enregistrements dans
le
champ critere_a de la table "source"
Pour interdire les doublons de copie dans la table "destination", je
souhaite pouvoir vérifier dans la table "destination" si un
enregistrement
avec le critere existe déjà, quelle que soit sa place dans le champ que
nous
appelons critere_b de la table "destination", et interdire la requête si
tel
est le cas.
ex :si je choisis le critère_a = 1 de la table "source", vérifier su ce
critère existe déjà quelque part dans le champ critere_b de la table
"destination" et interdire l'exécution de la requête.
Je sais le faire sur le dernier enregistrement de la table "destination"
avec un test sur le Dmax du champ "critere", mais cela ne résoud pas
tout
mes problèmes et interdit l'ajout d'enregistrements inférieurs à Dmax et
qui
n'auraient pas encore été ajoutés.
Merci d'avance.
Sylvere
Salut Sylvere
et si tu utilises un dcount a la place de dmax ?
genre
if dcount("*","Destination","Critere_b="&critere_a)>0 then
msgbox("Le critere " & critere_a & " est déjà présent dans la table de
destination !")
else
docmd.runsql marequete
end if
Merci pour l'aide, mais ça coince : "erreur de syntaxe, opérateur absent dans l'expression "nostage_b=" à la ligne suivante : If DCount("*", "facturation", "nostage_b=" & nostage) > 0 Then MsgBox ("le critere" & nostage & "est déjà present") Else DoCmd.RunSQL "R_transfert_facturation" End If "Facturation" est la table destination et "_b" est le critère à aller vérifier en comparaison de "nostage" qui appartient à la table " source "
Merci pour l'aide.. Sylvere
"Fabien" a écrit dans le message de news: 4732bb02$0$25934$
Je dois copier des enregistrements d'une table à une autre selon critères
par requête d'ajout. je choisis dans cette requête le critère de copie d'enregistrements dans le
champ critere_a de la table "source" Pour interdire les doublons de copie dans la table "destination", je souhaite pouvoir vérifier dans la table "destination" si un enregistrement
avec le critere existe déjà, quelle que soit sa place dans le champ que nous
appelons critere_b de la table "destination", et interdire la requête si tel
est le cas. ex :si je choisis le critère_a = 1 de la table "source", vérifier su ce critère existe déjà quelque part dans le champ critere_b de la table "destination" et interdire l'exécution de la requête. Je sais le faire sur le dernier enregistrement de la table "destination" avec un test sur le Dmax du champ "critere", mais cela ne résoud pas tout
mes problèmes et interdit l'ajout d'enregistrements inférieurs à Dmax et qui
n'auraient pas encore été ajoutés. Merci d'avance.
Sylvere
Salut Sylvere
et si tu utilises un dcount a la place de dmax ? genre if dcount("*","Destination","Critere_b="&critere_a)>0 then msgbox("Le critere " & critere_a & " est déjà présent dans la table de destination !") else docmd.runsql marequete end if
Michel_D
Bonjour,
J'ai l'impression que cela ressemble à une réponse que j'ai déja donné.
Donc, en partant du principe que les 2 tables (source et destination) ont une structure identique, la requête suivante ajoute les enregistrements de la table "AAA" dans la table "AA" à condition que la valeur du champ "MOTO" de la table "AAA" n'existe pas dans la table "AA".
INSERT INTO AA SELECT AAA.* FROM AAA WHERE Not([AAA].[MOTO] IN (SELECT [AA].[MOTO] FROM AA));
"sylvere" a écrit dans le message de news:47322f56$0$28497$
Je dois copier des enregistrements d'une table à une autre selon critères par requête d'ajout. je choisis dans cette requête le critère de copie d'enregistrements dans le champ critere_a de la table "source" Pour interdire les doublons de copie dans la table "destination", je souhaite pouvoir vérifier dans la table "destination" si un enregistrement avec le critere existe déjà, quelle que soit sa place dans le champ que nous appelons critere_b de la table "destination", et interdire la requête si tel est le cas. ex :si je choisis le critère_a = 1 de la table "source", vérifier su ce critère existe déjà quelque part dans le champ critere_b de la table "destination" et interdire l'exécution de la requête. Je sais le faire sur le dernier enregistrement de la table "destination" avec un test sur le Dmax du champ "critere", mais cela ne résoud pas tout mes problèmes et interdit l'ajout d'enregistrements inférieurs à Dmax et qui n'auraient pas encore été ajoutés. Merci d'avance.
Sylvere
Bonjour,
J'ai l'impression que cela ressemble à une réponse que j'ai déja donné.
Donc, en partant du principe que les 2 tables (source et destination) ont
une structure identique, la requête suivante ajoute les enregistrements
de la table "AAA" dans la table "AA" à condition que la valeur du champ
"MOTO" de la table "AAA" n'existe pas dans la table "AA".
INSERT INTO AA
SELECT AAA.*
FROM AAA
WHERE Not([AAA].[MOTO] IN (SELECT [AA].[MOTO] FROM AA));
"sylvere" <francois@ayhoo.fr> a écrit dans le message de news:47322f56$0$28497$426a74cc@news.free.fr...
Je dois copier des enregistrements d'une table à une autre selon critères
par requête d'ajout.
je choisis dans cette requête le critère de copie d'enregistrements dans le
champ critere_a de la table "source"
Pour interdire les doublons de copie dans la table "destination", je
souhaite pouvoir vérifier dans la table "destination" si un enregistrement
avec le critere existe déjà, quelle que soit sa place dans le champ que nous
appelons critere_b de la table "destination", et interdire la requête si tel
est le cas.
ex :si je choisis le critère_a = 1 de la table "source", vérifier su ce
critère existe déjà quelque part dans le champ critere_b de la table
"destination" et interdire l'exécution de la requête.
Je sais le faire sur le dernier enregistrement de la table "destination"
avec un test sur le Dmax du champ "critere", mais cela ne résoud pas tout
mes problèmes et interdit l'ajout d'enregistrements inférieurs à Dmax et qui
n'auraient pas encore été ajoutés.
Merci d'avance.
J'ai l'impression que cela ressemble à une réponse que j'ai déja donné.
Donc, en partant du principe que les 2 tables (source et destination) ont une structure identique, la requête suivante ajoute les enregistrements de la table "AAA" dans la table "AA" à condition que la valeur du champ "MOTO" de la table "AAA" n'existe pas dans la table "AA".
INSERT INTO AA SELECT AAA.* FROM AAA WHERE Not([AAA].[MOTO] IN (SELECT [AA].[MOTO] FROM AA));
"sylvere" a écrit dans le message de news:47322f56$0$28497$
Je dois copier des enregistrements d'une table à une autre selon critères par requête d'ajout. je choisis dans cette requête le critère de copie d'enregistrements dans le champ critere_a de la table "source" Pour interdire les doublons de copie dans la table "destination", je souhaite pouvoir vérifier dans la table "destination" si un enregistrement avec le critere existe déjà, quelle que soit sa place dans le champ que nous appelons critere_b de la table "destination", et interdire la requête si tel est le cas. ex :si je choisis le critère_a = 1 de la table "source", vérifier su ce critère existe déjà quelque part dans le champ critere_b de la table "destination" et interdire l'exécution de la requête. Je sais le faire sur le dernier enregistrement de la table "destination" avec un test sur le Dmax du champ "critere", mais cela ne résoud pas tout mes problèmes et interdit l'ajout d'enregistrements inférieurs à Dmax et qui n'auraient pas encore été ajoutés. Merci d'avance.
Sylvere
sylvere
Merci, ça fonctionne très bien. Un plus ? peut on remplacer au moment de l'exécution de la requête, ce message " vous allez ajouter 0 lignes" par "transfert déjà effectué" ? et "vous allez ajouter 3lignes de code MOTO "xx" ? merci d'avance Sylvere
"Michel_D" a écrit dans le message de news: fh15kc$sud$
Bonjour,
J'ai l'impression que cela ressemble à une réponse que j'ai déja donné.
Donc, en partant du principe que les 2 tables (source et destination) ont une structure identique, la requête suivante ajoute les enregistrements de la table "AAA" dans la table "AA" à condition que la valeur du champ "MOTO" de la table "AAA" n'existe pas dans la table "AA".
INSERT INTO AA SELECT AAA.* FROM AAA WHERE Not([AAA].[MOTO] IN (SELECT [AA].[MOTO] FROM AA));
"sylvere" a écrit dans le message de news:47322f56$0$28497$
Je dois copier des enregistrements d'une table à une autre selon critères
par requête d'ajout. je choisis dans cette requête le critère de copie d'enregistrements dans le
champ critere_a de la table "source" Pour interdire les doublons de copie dans la table "destination", je souhaite pouvoir vérifier dans la table "destination" si un enregistrement
avec le critere existe déjà, quelle que soit sa place dans le champ que nous
appelons critere_b de la table "destination", et interdire la requête si tel
est le cas. ex :si je choisis le critère_a = 1 de la table "source", vérifier su ce critère existe déjà quelque part dans le champ critere_b de la table "destination" et interdire l'exécution de la requête. Je sais le faire sur le dernier enregistrement de la table "destination" avec un test sur le Dmax du champ "critere", mais cela ne résoud pas tout
mes problèmes et interdit l'ajout d'enregistrements inférieurs à Dmax et qui
n'auraient pas encore été ajoutés. Merci d'avance.
Sylvere
Merci, ça fonctionne très bien.
Un plus ?
peut on remplacer au moment de l'exécution de la requête, ce message " vous
allez ajouter 0 lignes" par "transfert déjà effectué" ?
et "vous allez ajouter 3lignes de code MOTO "xx" ?
merci d'avance
Sylvere
"Michel_D" <michel.NOSPAM@orange-ft.com.invalid> a écrit dans le message de
news: fh15kc$sud$1@news.rd.francetelecom.fr...
Bonjour,
J'ai l'impression que cela ressemble à une réponse que j'ai déja donné.
Donc, en partant du principe que les 2 tables (source et destination) ont
une structure identique, la requête suivante ajoute les enregistrements
de la table "AAA" dans la table "AA" à condition que la valeur du champ
"MOTO" de la table "AAA" n'existe pas dans la table "AA".
INSERT INTO AA
SELECT AAA.*
FROM AAA
WHERE Not([AAA].[MOTO] IN (SELECT [AA].[MOTO] FROM AA));
"sylvere" <francois@ayhoo.fr> a écrit dans le message de
news:47322f56$0$28497$426a74cc@news.free.fr...
Je dois copier des enregistrements d'une table à une autre selon
critères
par requête d'ajout.
je choisis dans cette requête le critère de copie d'enregistrements dans
le
champ critere_a de la table "source"
Pour interdire les doublons de copie dans la table "destination", je
souhaite pouvoir vérifier dans la table "destination" si un
enregistrement
avec le critere existe déjà, quelle que soit sa place dans le champ que
nous
appelons critere_b de la table "destination", et interdire la requête si
tel
est le cas.
ex :si je choisis le critère_a = 1 de la table "source", vérifier su ce
critère existe déjà quelque part dans le champ critere_b de la table
"destination" et interdire l'exécution de la requête.
Je sais le faire sur le dernier enregistrement de la table "destination"
avec un test sur le Dmax du champ "critere", mais cela ne résoud pas
tout
mes problèmes et interdit l'ajout d'enregistrements inférieurs à Dmax et
qui
n'auraient pas encore été ajoutés.
Merci d'avance.
Merci, ça fonctionne très bien. Un plus ? peut on remplacer au moment de l'exécution de la requête, ce message " vous allez ajouter 0 lignes" par "transfert déjà effectué" ? et "vous allez ajouter 3lignes de code MOTO "xx" ? merci d'avance Sylvere
"Michel_D" a écrit dans le message de news: fh15kc$sud$
Bonjour,
J'ai l'impression que cela ressemble à une réponse que j'ai déja donné.
Donc, en partant du principe que les 2 tables (source et destination) ont une structure identique, la requête suivante ajoute les enregistrements de la table "AAA" dans la table "AA" à condition que la valeur du champ "MOTO" de la table "AAA" n'existe pas dans la table "AA".
INSERT INTO AA SELECT AAA.* FROM AAA WHERE Not([AAA].[MOTO] IN (SELECT [AA].[MOTO] FROM AA));
"sylvere" a écrit dans le message de news:47322f56$0$28497$
Je dois copier des enregistrements d'une table à une autre selon critères
par requête d'ajout. je choisis dans cette requête le critère de copie d'enregistrements dans le
champ critere_a de la table "source" Pour interdire les doublons de copie dans la table "destination", je souhaite pouvoir vérifier dans la table "destination" si un enregistrement
avec le critere existe déjà, quelle que soit sa place dans le champ que nous
appelons critere_b de la table "destination", et interdire la requête si tel
est le cas. ex :si je choisis le critère_a = 1 de la table "source", vérifier su ce critère existe déjà quelque part dans le champ critere_b de la table "destination" et interdire l'exécution de la requête. Je sais le faire sur le dernier enregistrement de la table "destination" avec un test sur le Dmax du champ "critere", mais cela ne résoud pas tout
mes problèmes et interdit l'ajout d'enregistrements inférieurs à Dmax et qui
n'auraient pas encore été ajoutés. Merci d'avance.
Sylvere
Eric
Bonjour,
Avec ce genre de procédure, en adaptant le SQL de la requête à ton besoin :
Sub zz() ' Référence Microsoft DAO 3.x Object Library Dim strSQL As String Dim bd As DAO.Database, qry As DAO.QueryDef strSQL = "Insert into employes1 " _ & "select * from employes where noemp " _ & "not in(select noemp from employes1);" Set bd = CurrentDb Set qry = bd.CreateQueryDef("", strSQL) With qry .Execute If .RecordsAffected = 0 Then MsgBox "Transfert déjà effectué" Else MsgBox .RecordsAffected & " enregistrement(s) transféré(s)" End If End With Set qry = Nothing Set bd = Nothing End Sub
Merci, ça fonctionne très bien. Un plus ? peut on remplacer au moment de l'exécution de la requête, ce message " vous allez ajouter 0 lignes" par "transfert déjà effectué" ? et "vous allez ajouter 3lignes de code MOTO "xx" ? merci d'avance Sylvere
Avec ce genre de procédure, en adaptant le SQL de la requête à ton besoin :
Sub zz()
' Référence Microsoft DAO 3.x Object Library
Dim strSQL As String
Dim bd As DAO.Database, qry As DAO.QueryDef
strSQL = "Insert into employes1 " _
& "select * from employes where noemp " _
& "not in(select noemp from employes1);"
Set bd = CurrentDb
Set qry = bd.CreateQueryDef("", strSQL)
With qry
.Execute
If .RecordsAffected = 0 Then
MsgBox "Transfert déjà effectué"
Else
MsgBox .RecordsAffected & " enregistrement(s) transféré(s)"
End If
End With
Set qry = Nothing
Set bd = Nothing
End Sub
Merci, ça fonctionne très bien.
Un plus ?
peut on remplacer au moment de l'exécution de la requête, ce message " vous
allez ajouter 0 lignes" par "transfert déjà effectué" ?
et "vous allez ajouter 3lignes de code MOTO "xx" ?
merci d'avance
Sylvere
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Avec ce genre de procédure, en adaptant le SQL de la requête à ton besoin :
Sub zz() ' Référence Microsoft DAO 3.x Object Library Dim strSQL As String Dim bd As DAO.Database, qry As DAO.QueryDef strSQL = "Insert into employes1 " _ & "select * from employes where noemp " _ & "not in(select noemp from employes1);" Set bd = CurrentDb Set qry = bd.CreateQueryDef("", strSQL) With qry .Execute If .RecordsAffected = 0 Then MsgBox "Transfert déjà effectué" Else MsgBox .RecordsAffected & " enregistrement(s) transféré(s)" End If End With Set qry = Nothing Set bd = Nothing End Sub
Merci, ça fonctionne très bien. Un plus ? peut on remplacer au moment de l'exécution de la requête, ce message " vous allez ajouter 0 lignes" par "transfert déjà effectué" ? et "vous allez ajouter 3lignes de code MOTO "xx" ? merci d'avance Sylvere
Merci, je vais tester... "Eric" a écrit dans le message de news:
Bonjour,
Avec ce genre de procédure, en adaptant le SQL de la requête à ton besoin :
Sub zz() ' Référence Microsoft DAO 3.x Object Library Dim strSQL As String Dim bd As DAO.Database, qry As DAO.QueryDef strSQL = "Insert into employes1 " _ & "select * from employes where noemp " _ & "not in(select noemp from employes1);" Set bd = CurrentDb Set qry = bd.CreateQueryDef("", strSQL) With qry .Execute If .RecordsAffected = 0 Then MsgBox "Transfert déjà effectué" Else MsgBox .RecordsAffected & " enregistrement(s) transféré(s)" End If End With Set qry = Nothing Set bd = Nothing End Sub
Merci, ça fonctionne très bien. Un plus ? peut on remplacer au moment de l'exécution de la requête, ce message " vous
allez ajouter 0 lignes" par "transfert déjà effectué" ? et "vous allez ajouter 3lignes de code MOTO "xx" ? merci d'avance Sylvere
Merci, je vais tester...
"Eric" <f_framZZ@hotmail.com> a écrit dans le message de news:
u1jGuu2IIHA.484@TK2MSFTNGP06.phx.gbl...
Bonjour,
Avec ce genre de procédure, en adaptant le SQL de la requête à ton besoin
:
Sub zz()
' Référence Microsoft DAO 3.x Object Library
Dim strSQL As String
Dim bd As DAO.Database, qry As DAO.QueryDef
strSQL = "Insert into employes1 " _
& "select * from employes where noemp " _
& "not in(select noemp from employes1);"
Set bd = CurrentDb
Set qry = bd.CreateQueryDef("", strSQL)
With qry
.Execute
If .RecordsAffected = 0 Then
MsgBox "Transfert déjà effectué"
Else
MsgBox .RecordsAffected & " enregistrement(s) transféré(s)"
End If
End With
Set qry = Nothing
Set bd = Nothing
End Sub
Merci, ça fonctionne très bien.
Un plus ?
peut on remplacer au moment de l'exécution de la requête, ce message "
vous
allez ajouter 0 lignes" par "transfert déjà effectué" ?
et "vous allez ajouter 3lignes de code MOTO "xx" ?
merci d'avance
Sylvere
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Merci, je vais tester... "Eric" a écrit dans le message de news:
Bonjour,
Avec ce genre de procédure, en adaptant le SQL de la requête à ton besoin :
Sub zz() ' Référence Microsoft DAO 3.x Object Library Dim strSQL As String Dim bd As DAO.Database, qry As DAO.QueryDef strSQL = "Insert into employes1 " _ & "select * from employes where noemp " _ & "not in(select noemp from employes1);" Set bd = CurrentDb Set qry = bd.CreateQueryDef("", strSQL) With qry .Execute If .RecordsAffected = 0 Then MsgBox "Transfert déjà effectué" Else MsgBox .RecordsAffected & " enregistrement(s) transféré(s)" End If End With Set qry = Nothing Set bd = Nothing End Sub
Merci, ça fonctionne très bien. Un plus ? peut on remplacer au moment de l'exécution de la requête, ce message " vous
allez ajouter 0 lignes" par "transfert déjà effectué" ? et "vous allez ajouter 3lignes de code MOTO "xx" ? merci d'avance Sylvere