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

LA Question - Doublons

5 réponses
Avatar
Jeff
Bonjour à tous

Dans une table 4 champs [Code],[Date1],[Prix],[Etat]

Une importation de données (fichier texte) vient alimenter
cette table.

Problème (je sais c'est le même pour tout le monde) : empécher
les doublons dans la table basés sur les 2 premiers enregistrements
[Code],[Date1]. Un code peut apparaître plusieurs fois, une date aussi
mais un code à une date ne peut apparaître qu'une seule fois.

Ma solution (qui ne me semble pas être trés bonne)
Requête sélection avec regroupement, comptage des champs et prise en
compte
uniquement de ceux qui apparaissent plus d'une fois dans la table.

Plus une fonction

Sub SuppressionDoublons()

Dim db As DAO.Database, rs As DAO.Recordset, rs1 As DAO.Recordset

Set db = CurrentDb()
Set rs = db.OpenRecordset("DOUBLONS")
Do Until rs.EOF
Set rs1 = db.OpenRecordset("select * from [table1] where
[Code]=" & EntoureGuillemets(rs!Code) & " and [Date1]=" &
DateAmericaine(rs!date1))
rs1.MoveNext
Do Until rs1.EOF
rs1.Delete
rs1.MoveNext
Loop
rs1.Close
rs.MoveNext
Loop
rs.Close
db.Close
Set rs = Nothing
Set rs1 = Nothing
Set db = Nothing

End Sub

Etant donné que ma recherche de doublons se basent sur deux champs de
la table et non pas sur un seul, j'en appelle à vos conseil pour soit
optimiser
cette fonction (si c'est possible :-) ) ou la convertir en requête
suppression
(toujours si cela est possible). A moins que la solution me soit
bêtement
passer sous le nez...

Merci d'avance

Cordialement

Jeff

--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com

5 réponses

Avatar
Pierre CFI [mvp]
bonjour
si tu base ta clé primaire sur ces 2 champs (ou tu crées un undex sur les 2 champs sans doublon) lors de l'import, les doublons se
font jeter, tout simplement


--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Jeff" a écrit dans le message de news:
Bonjour à tous

Dans une table 4 champs [Code],[Date1],[Prix],[Etat]

Une importation de données (fichier texte) vient alimenter
cette table.

Problème (je sais c'est le même pour tout le monde) : empécher
les doublons dans la table basés sur les 2 premiers enregistrements
[Code],[Date1]. Un code peut apparaître plusieurs fois, une date aussi
mais un code à une date ne peut apparaître qu'une seule fois.

Ma solution (qui ne me semble pas être trés bonne)
Requête sélection avec regroupement, comptage des champs et prise en
compte
uniquement de ceux qui apparaissent plus d'une fois dans la table.

Plus une fonction

Sub SuppressionDoublons()

Dim db As DAO.Database, rs As DAO.Recordset, rs1 As DAO.Recordset

Set db = CurrentDb()
Set rs = db.OpenRecordset("DOUBLONS")
Do Until rs.EOF
Set rs1 = db.OpenRecordset("select * from [table1] where
[Code]=" & EntoureGuillemets(rs!Code) & " and [Date1]=" &
DateAmericaine(rs!date1))
rs1.MoveNext
Do Until rs1.EOF
rs1.Delete
rs1.MoveNext
Loop
rs1.Close
rs.MoveNext
Loop
rs.Close
db.Close
Set rs = Nothing
Set rs1 = Nothing
Set db = Nothing

End Sub

Etant donné que ma recherche de doublons se basent sur deux champs de
la table et non pas sur un seul, j'en appelle à vos conseil pour soit
optimiser
cette fonction (si c'est possible :-) ) ou la convertir en requête
suppression
(toujours si cela est possible). A moins que la solution me soit
bêtement
passer sous le nez...

Merci d'avance

Cordialement

Jeff

--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com



Avatar
Jeff
Bonjour Pierre

Si je crée deux index sans doublons, cela veut donc dire que
deux code ne peuvent pas avoir la même date ?

Si c'est ça ce n'est pas bon car deux codes peuvent avoir
la même date mais le même code ne peut pas avoir deux fois
la même date ... (j'espère que c'est clair)

Cordialement

Jeff

bonjour
si tu base ta clé primaire sur ces 2 champs (ou tu crées un undex sur les 2
champs sans doublon) lors de l'import, les doublons se font jeter, tout
simplement


--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Jeff" a écrit dans le message de news:

Bonjour à tous

Dans une table 4 champs [Code],[Date1],[Prix],[Etat]

Une importation de données (fichier texte) vient alimenter
cette table.

Problème (je sais c'est le même pour tout le monde) : empécher
les doublons dans la table basés sur les 2 premiers enregistrements
[Code],[Date1]. Un code peut apparaître plusieurs fois, une date aussi
mais un code à une date ne peut apparaître qu'une seule fois.

Ma solution (qui ne me semble pas être trés bonne)
Requête sélection avec regroupement, comptage des champs et prise en
compte
uniquement de ceux qui apparaissent plus d'une fois dans la table.

Plus une fonction

Sub SuppressionDoublons()

Dim db As DAO.Database, rs As DAO.Recordset, rs1 As DAO.Recordset

Set db = CurrentDb()
Set rs = db.OpenRecordset("DOUBLONS")
Do Until rs.EOF
Set rs1 = db.OpenRecordset("select * from [table1] where
[Code]=" & EntoureGuillemets(rs!Code) & " and [Date1]=" &
DateAmericaine(rs!date1))
rs1.MoveNext
Do Until rs1.EOF
rs1.Delete
rs1.MoveNext
Loop
rs1.Close
rs.MoveNext
Loop
rs.Close
db.Close
Set rs = Nothing
Set rs1 = Nothing
Set db = Nothing

End Sub

Etant donné que ma recherche de doublons se basent sur deux champs de
la table et non pas sur un seul, j'en appelle à vos conseil pour soit
optimiser
cette fonction (si c'est possible :-) ) ou la convertir en requête
suppression
(toujours si cela est possible). A moins que la solution me soit
bêtement
passer sous le nez...

Merci d'avance

Cordialement

Jeff

--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com



--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com


Avatar
Raymond [mvp]
RE.

non, ce qu'a voulu te dire Pierre c'est que ta clé primaire qui est toujours
unique est basée sur les deux champs indissociables et que la valeur jointe
de ces deux champs est unique.. si ta clé est basée sur code + date, comme
tu le dis, un code ne peut pas avoir deux fois la même date donc tu peux le
prendre en clé primaire. lors de l'import le doublon sur la clé primaire ne
sera pas pris en compte.

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour une meilleure
efficacité de tes interventions sur MPFA


"Jeff" a écrit dans le message de
news:
Bonjour Pierre

Si je crée deux index sans doublons, cela veut donc dire que
deux code ne peuvent pas avoir la même date ?

Si c'est ça ce n'est pas bon car deux codes peuvent avoir
la même date mais le même code ne peut pas avoir deux fois
la même date ... (j'espère que c'est clair)

Cordialement

Jeff



Avatar
Pierre CFI [mvp]
pas du tout, tu crées une clé primaire en selectionnant les 2 champs
Un index peut comprendre 1 ou plusieurs champs et il y a doublon si les 2 champs se retrouvent à l'identique

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Jeff" a écrit dans le message de news:
Bonjour Pierre

Si je crée deux index sans doublons, cela veut donc dire que
deux code ne peuvent pas avoir la même date ?

Si c'est ça ce n'est pas bon car deux codes peuvent avoir
la même date mais le même code ne peut pas avoir deux fois
la même date ... (j'espère que c'est clair)

Cordialement

Jeff

bonjour
si tu base ta clé primaire sur ces 2 champs (ou tu crées un undex sur les 2
champs sans doublon) lors de l'import, les doublons se font jeter, tout
simplement


--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Jeff" a écrit dans le message de news:

Bonjour à tous

Dans une table 4 champs [Code],[Date1],[Prix],[Etat]

Une importation de données (fichier texte) vient alimenter
cette table.

Problème (je sais c'est le même pour tout le monde) : empécher
les doublons dans la table basés sur les 2 premiers enregistrements
[Code],[Date1]. Un code peut apparaître plusieurs fois, une date aussi
mais un code à une date ne peut apparaître qu'une seule fois.

Ma solution (qui ne me semble pas être trés bonne)
Requête sélection avec regroupement, comptage des champs et prise en
compte
uniquement de ceux qui apparaissent plus d'une fois dans la table.

Plus une fonction

Sub SuppressionDoublons()

Dim db As DAO.Database, rs As DAO.Recordset, rs1 As DAO.Recordset

Set db = CurrentDb()
Set rs = db.OpenRecordset("DOUBLONS")
Do Until rs.EOF
Set rs1 = db.OpenRecordset("select * from [table1] where
[Code]=" & EntoureGuillemets(rs!Code) & " and [Date1]=" &
DateAmericaine(rs!date1))
rs1.MoveNext
Do Until rs1.EOF
rs1.Delete
rs1.MoveNext
Loop
rs1.Close
rs.MoveNext
Loop
rs.Close
db.Close
Set rs = Nothing
Set rs1 = Nothing
Set db = Nothing

End Sub

Etant donné que ma recherche de doublons se basent sur deux champs de
la table et non pas sur un seul, j'en appelle à vos conseil pour soit
optimiser
cette fonction (si c'est possible :-) ) ou la convertir en requête
suppression
(toujours si cela est possible). A moins que la solution me soit
bêtement
passer sous le nez...

Merci d'avance

Cordialement

Jeff

--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com



--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com





Avatar
Jeff
Bonjour Pierre

Merci beaucoup pour cette information.

Cordialement

Jeff

pas du tout, tu crées une clé primaire en selectionnant les 2 champs
Un index peut comprendre 1 ou plusieurs champs et il y a doublon si les 2
champs se retrouvent à l'identique

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Jeff" a écrit dans le message de news:

Bonjour Pierre

Si je crée deux index sans doublons, cela veut donc dire que
deux code ne peuvent pas avoir la même date ?

Si c'est ça ce n'est pas bon car deux codes peuvent avoir
la même date mais le même code ne peut pas avoir deux fois
la même date ... (j'espère que c'est clair)

Cordialement

Jeff

bonjour
si tu base ta clé primaire sur ces 2 champs (ou tu crées un undex sur les 2
champs sans doublon) lors de l'import, les doublons se font jeter, tout
simplement


--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Jeff" a écrit dans le message de news:

Bonjour à tous

Dans une table 4 champs [Code],[Date1],[Prix],[Etat]

Une importation de données (fichier texte) vient alimenter
cette table.

Problème (je sais c'est le même pour tout le monde) : empécher
les doublons dans la table basés sur les 2 premiers enregistrements
[Code],[Date1]. Un code peut apparaître plusieurs fois, une date aussi
mais un code à une date ne peut apparaître qu'une seule fois.

Ma solution (qui ne me semble pas être trés bonne)
Requête sélection avec regroupement, comptage des champs et prise en
compte
uniquement de ceux qui apparaissent plus d'une fois dans la table.

Plus une fonction

Sub SuppressionDoublons()

Dim db As DAO.Database, rs As DAO.Recordset, rs1 As DAO.Recordset

Set db = CurrentDb()
Set rs = db.OpenRecordset("DOUBLONS")
Do Until rs.EOF
Set rs1 = db.OpenRecordset("select * from [table1] where
[Code]=" & EntoureGuillemets(rs!Code) & " and [Date1]=" &
DateAmericaine(rs!date1))
rs1.MoveNext
Do Until rs1.EOF
rs1.Delete
rs1.MoveNext
Loop
rs1.Close
rs.MoveNext
Loop
rs.Close
db.Close
Set rs = Nothing
Set rs1 = Nothing
Set db = Nothing

End Sub

Etant donné que ma recherche de doublons se basent sur deux champs de
la table et non pas sur un seul, j'en appelle à vos conseil pour soit
optimiser
cette fonction (si c'est possible :-) ) ou la convertir en requête
suppression
(toujours si cela est possible). A moins que la solution me soit
bêtement
passer sous le nez...

Merci d'avance

Cordialement

Jeff

--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com



--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com



--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com