Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Eliminare i doppioni all'interno di un db access

1,925 views
Skip to first unread message

GbMax78

unread,
Oct 14, 2009, 3:56:09 PM10/14/09
to
Salve,

dovrei eliminare in una maschera di access i record doppi identici in
quanto un software che avrebbe dovuto scrivere un record per ogni
informazione passata in realtᅵ ne ha inserite 2 o addirittura 3.

Saluti !
GbMax78

Oscar

unread,
Oct 15, 2009, 3:13:21 AM10/15/09
to
ho avuto lo stesso problema e l'ho risolto con una procedura inviatami
dal NG, non � quindi farina del mio sacco.
oscar

Eliminare i record duplicati da una tabella
Per eliminare i record duplicati da una tabella, � necessario eseguire
due passaggi. Creare innanzitutto una copia della struttura della
tabella che contiene i duplicati e quindi creare le chiavi primarie di
tutti i campi che contengono duplicati. � quindi necessario creare ed
eseguire una query di accodamento dalla tabella originale alla nuova
tabella. Poich� i campi che sono chiavi primarie non possono contenere
record duplicati, questa procedura consentir� di ottenere una tabella
senza campi duplicati.
Copiare la tabella e creare le chiavi primarie dei campi con
duplicati.
Procedura
Nella finestra del database scegliere Tabelle nell'elenco Oggetti.
Scegliere il nome della tabella dalla quale si desidera eliminare i
record duplicati.
Fare clic sul pulsante Copia sulla barra degli strumenti.
Fare clic sul pulsante Incolla sulla barra degli strumenti.
Nella finestra di dialogo Incolla tabella con nome digitare un nome
per la tabella copiata, scegliere Solo struttura, quindi scegliere OK.

Aprire la nuova tabella in visualizzazione Struttura e selezionare il
campo o i campi che contenevano duplicati nella tabella che � stata
copiata.
Fare clic sul pulsante Chiave primaria sulla barra degli strumenti per
creare una chiave primaria basata sui campi selezionati.
Salvare e chiudere la tabella.
Accodare alla nuova tabella solo record univoci.
Procedura
Creare una nuova query basata sulla tabella originale che contiene i
duplicati.
In visualizzazione Struttura della query fare clic sulla freccia
accanto al pulsante Tipo di query sulla barra degli strumenti, quindi
selezionare Query di accodamento.
Nella finestra di dialogo Accodamento selezionare il nome della nuova
tabella nell'elenco Nome tabella, quindi fare clic su OK.
Includere tutti i campi della tabella originale trascinando
l'asterisco (*) nella griglia di struttura della query.
Fare clic su Esegui sulla barra degli strumenti.
Scegliere S� quando si riceve il messaggio che segnala che si sta per
eseguire l'accodamento delle righe.
Scegliere S� quando viene visualizzato il messaggio che segnala che �
impossibile accodare tutti i record nella query di accodamento. In tal
modo, nella nuova tabella vengono trasferiti solo i record univoci e
vengono eliminati i duplicati.
Aprire la tabella per visualizzare i risultati.
Quando si � sicuri che la nuova tabella contiene i record univoci
corretti, � possibile eliminare la tabella originale e rinominare la
nuova tabella utilizzando il nome della tabella originale.

on Wed, 14 Oct 2009 21:56:09 +0200, GbMax78 <i...@io.it> wrote:

>Salve,
>
>dovrei eliminare in una maschera di access i record doppi identici in
>quanto un software che avrebbe dovuto scrivere un record per ogni

>informazione passata in realt� ne ha inserite 2 o addirittura 3.
>
>Saluti !
>GbMax78

Bruno Campanini

unread,
Oct 18, 2009, 11:26:38 AM10/18/09
to
"GbMax78" <i...@io.it> wrote in message
news:4ad62cc9$0$1426$4faf...@reader4.news.tin.it...

> Salve,
>
> dovrei eliminare in una maschera di access i record doppi identici in
> quanto un software che avrebbe dovuto scrivere un record per ogni
> informazione passata in realt� ne ha inserite 2 o addirittura 3.
>
> Saluti !
> GbMax78

Se per valutare l'esistenza di duplicati si considera un solo campo:
============================================
Private Sub EliminaDuplicati_Click()
Dim db As Database, RS As Recordset, k As Integer
Dim DupColl As New Collection, TableName As String

' Definizioni
' ---------------------------------------------
TableName = "t_Duplicati"
k = 1 ' Quale campo della tabella si considera
' per valutare l'esistenza di duplicati
' ---------------------------------------------

Set db = CurrentDb
Set RS = db.OpenRecordset(TableName, dbOpenDynaset)
Do Until RS.EOF
On Error GoTo Dups
DupColl.Add RS(k - 1), CStr(RS(k - 1))
Continua:
RS.MoveNext
Loop
Exit_Sub:
Exit Sub
Dups:
On Error GoTo 0
RS.Delete
Resume Continua
End Sub
=========================================
Se debbono prendersi in considerazione pi� campi...
si paga un supplemento.

Bruno


0 new messages