|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Jan 2006
Messaggi: 154
|
Eliminare anagrafiche doppie da tabella access..
Ciao a tutti,
vi chiedo un grandissimo aiuto... Ho un Database Access con una tabella semplice (senza collegamenti ad altre tabelle) di anagrafiche. Chiaramente la prima colonna ha un codice diverso per tutte le righe, ma in alcune tutti gli altri campi sono identici. Come posso fare ad eliminare queste righe duplicate? Chi mi aiuta sarà x sempre nel mio cuore! |
![]() |
![]() |
![]() |
#2 |
Bannato
Iscritto dal: Mar 2004
Città: Roma
Messaggi: 2682
|
mmm mmm in mysql c'è un comando sql appostio per eliminare i record doppioni...ora non ricordo quale...ma visto che anceh acces dovrebbe usare SQL credo che ci sia qualcosa del genere
|
![]() |
![]() |
![]() |
#3 | |||
Member
Iscritto dal: Jul 2005
Messaggi: 291
|
Quote:
![]()
__________________
CPU: Intel Core 2 Quad Q6600 - Mobo: Asus P5E - RAM:4x2GB DDR2 - sk video: Power Color ATI Radeon HD3870 - HD:Western Digital 750GB |
|||
![]() |
![]() |
![]() |
#4 | |||
Member
Iscritto dal: Jan 2006
Messaggi: 154
|
Quote:
1) ho creato un nuovo db e ho importato la tabella (2700 anagrafiche)...ora modificabile 2) il problema che la prima colonna (progressivo) ha valore sempre diversi... vi presento una mia amica gnocca!! ![]() ![]() Grazie ancora |
|||
![]() |
![]() |
![]() |
#5 | |
Member
Iscritto dal: Jul 2005
Messaggi: 291
|
Quote:
Bhe, per le anagrafiche esistenti un programmetto java che dovrebbe (e sottolineo il condizionale) fare al caso tuo sarebbe Codice:
import java.sql.*; public class EliminaDoppioni{ /* Sottintendo che la chiave primaria (che ho chiamato ID) e la colonna incriminata siano di tipo Stringa (varchar), sennò cambiare i vari getString() con il valore giusto e che la tabella dei nominativi sia "MiaTabella" */ public static void elimina(Connection conn,String altraColonnaIdentici) throws Exception{ PreparedStatement ps=conn.prepareStatement("select * from MiaTabella"); //Prendo tutte le tuple dalla tabella delle anagrafiche ResultSet rs=ps.executeQuery(); while (rs.next()){ //per ogni tupla nel db String valoreColonna=rs.getString(altraColonnaIdentici); //prendo il valore della colonna incriminata PreparedStatement ps1=conn.prepareStatement("select * from MiaTabella where ID<>? and "+altraColonnaIdentici+"=?"); //prendi tutte le tuple esclusa la presente (ID<>?) che hanno la colonna incriminata uguale ps1.setString(1,rs.getString("ID")); ps1.setString(2,valoreColonna); ResultSet rs1=ps1.executeQuery(); while(rs1.next()){ //per ogni tupla che ho trovato PreparedStatement ps2=conn.prepareStatement("delete from MiaTabella where ID=?"); //elimino la tupla doppiona ps2.setString(1,rs1.getString("ID")); ps2.executeUpdate(); ps2.close(); } rs1.close(); ps1.close(); } rs.close(); ps.close(); } public static void main(String[] args) throws Exception{ Class.forName(driverPerAcces); //Esattamente non so il nome del driver per Access, googlando si trova Connection conn=DriverManager.getConnection(url); //Mettere la url di connessione al db elimina(conn,"ColonnaIncriminata"); conn.close(); } }
__________________
CPU: Intel Core 2 Quad Q6600 - Mobo: Asus P5E - RAM:4x2GB DDR2 - sk video: Power Color ATI Radeon HD3870 - HD:Western Digital 750GB |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 00:27.