Bonjour tout le monde !
Voici un extrait de procédure :
sql = "SELECT * "
sql = sql & "FROM Batches1 "
sql = sql & "WHERE (((Batches1.[Batch Number]) Not In (SELECT
[Batch Number] from [Batches])));"
Set Rs = CurrentDb.OpenRecordset(sql, dbOpenDynaset)
La table "Batches1" contient quelques 4000 enregistrements
La table "Batches" en contient au moins 10 fois plus
Les tables ont la même structure et contiennent 220 champs (et oui, c'est
beaucoup, mais nécessaire).
Le but est d'ajouter dans la tables "Batches" les enregistrments se
trouvant dans "Batches1" mais pas dans "Batches",
la clé étant "Batch Number"
J'ai essayé avec un "INSERT", et le temps étant très long, j'ai essayé
d'abord de tester s'il y avait des enregistrements à ajouter (avec un test
derrière ces lignes genre rs.recordcount etc... pour les ajouter une par
une)
Mais cette dernière ligne
Set Rs = CurrentDb.OpenRecordset(sql, dbOpenDynaset)
met 10 bonnes minutes à s'exécuter.
Y a-t-il un moyen de faire plus vite ?
Vous en remerciant par avance,
--
Bien cordialement,
Joël GARBE
www.joelgarbe.fr
Bonjour tout le monde !
Voici un extrait de procédure :
sql = "SELECT * "
sql = sql & "FROM Batches1 "
sql = sql & "WHERE (((Batches1.[Batch Number]) Not In (SELECT
[Batch Number] from [Batches])));"
Set Rs = CurrentDb.OpenRecordset(sql, dbOpenDynaset)
La table "Batches1" contient quelques 4000 enregistrements
La table "Batches" en contient au moins 10 fois plus
Les tables ont la même structure et contiennent 220 champs (et oui, c'est
beaucoup, mais nécessaire).
Le but est d'ajouter dans la tables "Batches" les enregistrments se
trouvant dans "Batches1" mais pas dans "Batches",
la clé étant "Batch Number"
J'ai essayé avec un "INSERT", et le temps étant très long, j'ai essayé
d'abord de tester s'il y avait des enregistrements à ajouter (avec un test
derrière ces lignes genre rs.recordcount etc... pour les ajouter une par
une)
Mais cette dernière ligne
Set Rs = CurrentDb.OpenRecordset(sql, dbOpenDynaset)
met 10 bonnes minutes à s'exécuter.
Y a-t-il un moyen de faire plus vite ?
Vous en remerciant par avance,
--
Bien cordialement,
Joël GARBE
www.joelgarbe.fr
Bonjour tout le monde !
Voici un extrait de procédure :
sql = "SELECT * "
sql = sql & "FROM Batches1 "
sql = sql & "WHERE (((Batches1.[Batch Number]) Not In (SELECT
[Batch Number] from [Batches])));"
Set Rs = CurrentDb.OpenRecordset(sql, dbOpenDynaset)
La table "Batches1" contient quelques 4000 enregistrements
La table "Batches" en contient au moins 10 fois plus
Les tables ont la même structure et contiennent 220 champs (et oui, c'est
beaucoup, mais nécessaire).
Le but est d'ajouter dans la tables "Batches" les enregistrments se
trouvant dans "Batches1" mais pas dans "Batches",
la clé étant "Batch Number"
J'ai essayé avec un "INSERT", et le temps étant très long, j'ai essayé
d'abord de tester s'il y avait des enregistrements à ajouter (avec un test
derrière ces lignes genre rs.recordcount etc... pour les ajouter une par
une)
Mais cette dernière ligne
Set Rs = CurrentDb.OpenRecordset(sql, dbOpenDynaset)
met 10 bonnes minutes à s'exécuter.
Y a-t-il un moyen de faire plus vite ?
Vous en remerciant par avance,
--
Bien cordialement,
Joël GARBE
www.joelgarbe.fr
Bonjour tout le monde !
Voici un extrait de procédure :
sql = "SELECT * "
sql = sql & "FROM Batches1 "
sql = sql & "WHERE (((Batches1.[Batch Number]) Not In (SELECT
[Batch Number] from [Batches])));"
Set Rs = CurrentDb.OpenRecordset(sql, dbOpenDynaset)
La table "Batches1" contient quelques 4000 enregistrements
La table "Batches" en contient au moins 10 fois plus
Les tables ont la même structure et contiennent 220 champs (et oui, c'est
beaucoup, mais nécessaire).
Le but est d'ajouter dans la tables "Batches" les enregistrments se
trouvant dans "Batches1" mais pas dans "Batches",
la clé étant "Batch Number"
J'ai essayé avec un "INSERT", et le temps étant très long, j'ai essayé
d'abord de tester s'il y avait des enregistrements à ajouter (avec un test
derrière ces lignes genre rs.recordcount etc... pour les ajouter une par
une)
Mais cette dernière ligne
Set Rs = CurrentDb.OpenRecordset(sql, dbOpenDynaset)
met 10 bonnes minutes à s'exécuter.
Y a-t-il un moyen de faire plus vite ?
Vous en remerciant par avance,
--
Bien cordialement,
Joël GARBE
www.joelgarbe.fr
Bonjour tout le monde !
Voici un extrait de procédure :
sql = "SELECT * "
sql = sql & "FROM Batches1 "
sql = sql & "WHERE (((Batches1.[Batch Number]) Not In (SELECT
[Batch Number] from [Batches])));"
Set Rs = CurrentDb.OpenRecordset(sql, dbOpenDynaset)
La table "Batches1" contient quelques 4000 enregistrements
La table "Batches" en contient au moins 10 fois plus
Les tables ont la même structure et contiennent 220 champs (et oui, c'est
beaucoup, mais nécessaire).
Le but est d'ajouter dans la tables "Batches" les enregistrments se
trouvant dans "Batches1" mais pas dans "Batches",
la clé étant "Batch Number"
J'ai essayé avec un "INSERT", et le temps étant très long, j'ai essayé
d'abord de tester s'il y avait des enregistrements à ajouter (avec un test
derrière ces lignes genre rs.recordcount etc... pour les ajouter une par
une)
Mais cette dernière ligne
Set Rs = CurrentDb.OpenRecordset(sql, dbOpenDynaset)
met 10 bonnes minutes à s'exécuter.
Y a-t-il un moyen de faire plus vite ?
Vous en remerciant par avance,
--
Bien cordialement,
Joël GARBE
www.joelgarbe.fr
Bonjour tout le monde !
Voici un extrait de procédure :
sql = "SELECT * "
sql = sql & "FROM Batches1 "
sql = sql & "WHERE (((Batches1.[Batch Number]) Not In (SELECT
[Batch Number] from [Batches])));"
Set Rs = CurrentDb.OpenRecordset(sql, dbOpenDynaset)
La table "Batches1" contient quelques 4000 enregistrements
La table "Batches" en contient au moins 10 fois plus
Les tables ont la même structure et contiennent 220 champs (et oui, c'est
beaucoup, mais nécessaire).
Le but est d'ajouter dans la tables "Batches" les enregistrments se
trouvant dans "Batches1" mais pas dans "Batches",
la clé étant "Batch Number"
J'ai essayé avec un "INSERT", et le temps étant très long, j'ai essayé
d'abord de tester s'il y avait des enregistrements à ajouter (avec un test
derrière ces lignes genre rs.recordcount etc... pour les ajouter une par
une)
Mais cette dernière ligne
Set Rs = CurrentDb.OpenRecordset(sql, dbOpenDynaset)
met 10 bonnes minutes à s'exécuter.
Y a-t-il un moyen de faire plus vite ?
Vous en remerciant par avance,
--
Bien cordialement,
Joël GARBE
www.joelgarbe.fr
oui, suite, la req union, sans mettre All, shuntera les doublons
--
Pierre SALAUN
MVP Access
*******************************************************
"Joël" a écrit dans le message de news:
47d008f8$0$890$Bonjour tout le monde !
Voici un extrait de procédure :
sql = "SELECT * "
sql = sql & "FROM Batches1 "
sql = sql & "WHERE (((Batches1.[Batch Number]) Not In (SELECT
[Batch Number] from [Batches])));"
Set Rs = CurrentDb.OpenRecordset(sql, dbOpenDynaset)
La table "Batches1" contient quelques 4000 enregistrements
La table "Batches" en contient au moins 10 fois plus
Les tables ont la même structure et contiennent 220 champs (et oui, c'est
beaucoup, mais nécessaire).
Le but est d'ajouter dans la tables "Batches" les enregistrments se
trouvant dans "Batches1" mais pas dans "Batches",
la clé étant "Batch Number"
J'ai essayé avec un "INSERT", et le temps étant très long, j'ai essayé
d'abord de tester s'il y avait des enregistrements à ajouter (avec un
test derrière ces lignes genre rs.recordcount etc... pour les ajouter une
par une)
Mais cette dernière ligne
Set Rs = CurrentDb.OpenRecordset(sql, dbOpenDynaset)
met 10 bonnes minutes à s'exécuter.
Y a-t-il un moyen de faire plus vite ?
Vous en remerciant par avance,
--
Bien cordialement,
Joël GARBE
www.joelgarbe.fr
oui, suite, la req union, sans mettre All, shuntera les doublons
--
Pierre SALAUN
MVP Access
*******************************************************
"Joël" <joel-garbe@wanadoo.fr> a écrit dans le message de news:
47d008f8$0$890$ba4acef3@news.orange.fr...
Bonjour tout le monde !
Voici un extrait de procédure :
sql = "SELECT * "
sql = sql & "FROM Batches1 "
sql = sql & "WHERE (((Batches1.[Batch Number]) Not In (SELECT
[Batch Number] from [Batches])));"
Set Rs = CurrentDb.OpenRecordset(sql, dbOpenDynaset)
La table "Batches1" contient quelques 4000 enregistrements
La table "Batches" en contient au moins 10 fois plus
Les tables ont la même structure et contiennent 220 champs (et oui, c'est
beaucoup, mais nécessaire).
Le but est d'ajouter dans la tables "Batches" les enregistrments se
trouvant dans "Batches1" mais pas dans "Batches",
la clé étant "Batch Number"
J'ai essayé avec un "INSERT", et le temps étant très long, j'ai essayé
d'abord de tester s'il y avait des enregistrements à ajouter (avec un
test derrière ces lignes genre rs.recordcount etc... pour les ajouter une
par une)
Mais cette dernière ligne
Set Rs = CurrentDb.OpenRecordset(sql, dbOpenDynaset)
met 10 bonnes minutes à s'exécuter.
Y a-t-il un moyen de faire plus vite ?
Vous en remerciant par avance,
--
Bien cordialement,
Joël GARBE
www.joelgarbe.fr
oui, suite, la req union, sans mettre All, shuntera les doublons
--
Pierre SALAUN
MVP Access
*******************************************************
"Joël" a écrit dans le message de news:
47d008f8$0$890$Bonjour tout le monde !
Voici un extrait de procédure :
sql = "SELECT * "
sql = sql & "FROM Batches1 "
sql = sql & "WHERE (((Batches1.[Batch Number]) Not In (SELECT
[Batch Number] from [Batches])));"
Set Rs = CurrentDb.OpenRecordset(sql, dbOpenDynaset)
La table "Batches1" contient quelques 4000 enregistrements
La table "Batches" en contient au moins 10 fois plus
Les tables ont la même structure et contiennent 220 champs (et oui, c'est
beaucoup, mais nécessaire).
Le but est d'ajouter dans la tables "Batches" les enregistrments se
trouvant dans "Batches1" mais pas dans "Batches",
la clé étant "Batch Number"
J'ai essayé avec un "INSERT", et le temps étant très long, j'ai essayé
d'abord de tester s'il y avait des enregistrements à ajouter (avec un
test derrière ces lignes genre rs.recordcount etc... pour les ajouter une
par une)
Mais cette dernière ligne
Set Rs = CurrentDb.OpenRecordset(sql, dbOpenDynaset)
met 10 bonnes minutes à s'exécuter.
Y a-t-il un moyen de faire plus vite ?
Vous en remerciant par avance,
--
Bien cordialement,
Joël GARBE
www.joelgarbe.fr
Bonjour tout le monde !
Voici un extrait de procédure :
sql = "SELECT * "
sql = sql & "FROM Batches1 "
sql = sql & "WHERE (((Batches1.[Batch Number]) Not In (SELECT [Batch
Number] from [Batches])));"
Set Rs = CurrentDb.OpenRecordset(sql, dbOpenDynaset)
La table "Batches1" contient quelques 4000 enregistrements
La table "Batches" en contient au moins 10 fois plus
Les tables ont la même structure et contiennent 220 champs (et oui, c'est
beaucoup, mais nécessaire).
Le but est d'ajouter dans la tables "Batches" les enregistrments se trouvant
dans "Batches1" mais pas dans "Batches",
la clé étant "Batch Number"
J'ai essayé avec un "INSERT", et le temps étant très long, j'ai essayé
d'abord de tester s'il y avait des enregistrements à ajouter (avec un test
derrière ces lignes genre rs.recordcount etc... pour les ajouter une par
une)
Mais cette dernière ligne
Set Rs = CurrentDb.OpenRecordset(sql, dbOpenDynaset)
met 10 bonnes minutes à s'exécuter.
Y a-t-il un moyen de faire plus vite ?
Bonjour tout le monde !
Voici un extrait de procédure :
sql = "SELECT * "
sql = sql & "FROM Batches1 "
sql = sql & "WHERE (((Batches1.[Batch Number]) Not In (SELECT [Batch
Number] from [Batches])));"
Set Rs = CurrentDb.OpenRecordset(sql, dbOpenDynaset)
La table "Batches1" contient quelques 4000 enregistrements
La table "Batches" en contient au moins 10 fois plus
Les tables ont la même structure et contiennent 220 champs (et oui, c'est
beaucoup, mais nécessaire).
Le but est d'ajouter dans la tables "Batches" les enregistrments se trouvant
dans "Batches1" mais pas dans "Batches",
la clé étant "Batch Number"
J'ai essayé avec un "INSERT", et le temps étant très long, j'ai essayé
d'abord de tester s'il y avait des enregistrements à ajouter (avec un test
derrière ces lignes genre rs.recordcount etc... pour les ajouter une par
une)
Mais cette dernière ligne
Set Rs = CurrentDb.OpenRecordset(sql, dbOpenDynaset)
met 10 bonnes minutes à s'exécuter.
Y a-t-il un moyen de faire plus vite ?
Bonjour tout le monde !
Voici un extrait de procédure :
sql = "SELECT * "
sql = sql & "FROM Batches1 "
sql = sql & "WHERE (((Batches1.[Batch Number]) Not In (SELECT [Batch
Number] from [Batches])));"
Set Rs = CurrentDb.OpenRecordset(sql, dbOpenDynaset)
La table "Batches1" contient quelques 4000 enregistrements
La table "Batches" en contient au moins 10 fois plus
Les tables ont la même structure et contiennent 220 champs (et oui, c'est
beaucoup, mais nécessaire).
Le but est d'ajouter dans la tables "Batches" les enregistrments se trouvant
dans "Batches1" mais pas dans "Batches",
la clé étant "Batch Number"
J'ai essayé avec un "INSERT", et le temps étant très long, j'ai essayé
d'abord de tester s'il y avait des enregistrements à ajouter (avec un test
derrière ces lignes genre rs.recordcount etc... pour les ajouter une par
une)
Mais cette dernière ligne
Set Rs = CurrentDb.OpenRecordset(sql, dbOpenDynaset)
met 10 bonnes minutes à s'exécuter.
Y a-t-il un moyen de faire plus vite ?
Bonjour,
"Joël" a écrit dans le message de
news:47d008f8$0$890$Bonjour tout le monde !
Voici un extrait de procédure :
sql = "SELECT * "
sql = sql & "FROM Batches1 "
sql = sql & "WHERE (((Batches1.[Batch Number]) Not In (SELECT
[Batch
Number] from [Batches])));"
Set Rs = CurrentDb.OpenRecordset(sql, dbOpenDynaset)
La table "Batches1" contient quelques 4000 enregistrements
La table "Batches" en contient au moins 10 fois plus
Les tables ont la même structure et contiennent 220 champs (et oui, c'est
beaucoup, mais nécessaire).
Hum, je pense que le problème de conception ne doit pas être loin,
sinon généralement sur une base bien conçu il suffit de vérifier le bon
positionnement des index.Le but est d'ajouter dans la tables "Batches" les enregistrments se
trouvant
dans "Batches1" mais pas dans "Batches",
la clé étant "Batch Number"
J'ai essayé avec un "INSERT", et le temps étant très long, j'ai essayé
d'abord de tester s'il y avait des enregistrements à ajouter (avec un
test
derrière ces lignes genre rs.recordcount etc... pour les ajouter une par
une)
Mais cette dernière ligne
Set Rs = CurrentDb.OpenRecordset(sql, dbOpenDynaset)
met 10 bonnes minutes à s'exécuter.
Y a-t-il un moyen de faire plus vite ?
Je dirais revoir la conception de la base, mais c'est apparemment une
option que tu as déjà écartée.
Bonjour,
"Joël" <joel-garbe@wanadoo.fr> a écrit dans le message de
news:47d008f8$0$890$ba4acef3@news.orange.fr...
Bonjour tout le monde !
Voici un extrait de procédure :
sql = "SELECT * "
sql = sql & "FROM Batches1 "
sql = sql & "WHERE (((Batches1.[Batch Number]) Not In (SELECT
[Batch
Number] from [Batches])));"
Set Rs = CurrentDb.OpenRecordset(sql, dbOpenDynaset)
La table "Batches1" contient quelques 4000 enregistrements
La table "Batches" en contient au moins 10 fois plus
Les tables ont la même structure et contiennent 220 champs (et oui, c'est
beaucoup, mais nécessaire).
Hum, je pense que le problème de conception ne doit pas être loin,
sinon généralement sur une base bien conçu il suffit de vérifier le bon
positionnement des index.
Le but est d'ajouter dans la tables "Batches" les enregistrments se
trouvant
dans "Batches1" mais pas dans "Batches",
la clé étant "Batch Number"
J'ai essayé avec un "INSERT", et le temps étant très long, j'ai essayé
d'abord de tester s'il y avait des enregistrements à ajouter (avec un
test
derrière ces lignes genre rs.recordcount etc... pour les ajouter une par
une)
Mais cette dernière ligne
Set Rs = CurrentDb.OpenRecordset(sql, dbOpenDynaset)
met 10 bonnes minutes à s'exécuter.
Y a-t-il un moyen de faire plus vite ?
Je dirais revoir la conception de la base, mais c'est apparemment une
option que tu as déjà écartée.
Bonjour,
"Joël" a écrit dans le message de
news:47d008f8$0$890$Bonjour tout le monde !
Voici un extrait de procédure :
sql = "SELECT * "
sql = sql & "FROM Batches1 "
sql = sql & "WHERE (((Batches1.[Batch Number]) Not In (SELECT
[Batch
Number] from [Batches])));"
Set Rs = CurrentDb.OpenRecordset(sql, dbOpenDynaset)
La table "Batches1" contient quelques 4000 enregistrements
La table "Batches" en contient au moins 10 fois plus
Les tables ont la même structure et contiennent 220 champs (et oui, c'est
beaucoup, mais nécessaire).
Hum, je pense que le problème de conception ne doit pas être loin,
sinon généralement sur une base bien conçu il suffit de vérifier le bon
positionnement des index.Le but est d'ajouter dans la tables "Batches" les enregistrments se
trouvant
dans "Batches1" mais pas dans "Batches",
la clé étant "Batch Number"
J'ai essayé avec un "INSERT", et le temps étant très long, j'ai essayé
d'abord de tester s'il y avait des enregistrements à ajouter (avec un
test
derrière ces lignes genre rs.recordcount etc... pour les ajouter une par
une)
Mais cette dernière ligne
Set Rs = CurrentDb.OpenRecordset(sql, dbOpenDynaset)
met 10 bonnes minutes à s'exécuter.
Y a-t-il un moyen de faire plus vite ?
Je dirais revoir la conception de la base, mais c'est apparemment une
option que tu as déjà écartée.
Merci Michel
Effectivement, c'est une option que j'ai écartée.
Pour information, la tables "Batches1" provient d'un autre base de donné es
qu'il est nécessaire de consolider dans la principale.
Encore merci pour le temps passé,
--
Bien cordialement,
Joël GARBEwww.joelgarbe.fr
"Michel_D" a écrit dans le message denews: fqp3o4$9o__BEGIN_MASK_n#9g02mG7!__...__END_MASK_i?a63jfAD$ rd.francetelecom.fr...Bonjour,
"Joël" a écrit dans le message de
news:47d008f8$0$890$Bonjour tout le monde !
Voici un extrait de procédure :
sql = "SELECT * "
sql = sql & "FROM Batches1 "
sql = sql & "WHERE (((Batches1.[Batch Number]) Not In (SELECT
[Batch
Number] from [Batches])));"
Set Rs = CurrentDb.OpenRecordset(sql, dbOpenDynaset)
La table "Batches1" contient quelques 4000 enregistrements
La table "Batches" en contient au moins 10 fois plus
Les tables ont la même structure et contiennent 220 champs (et oui, c 'est
beaucoup, mais nécessaire).
Hum, je pense que le problème de conception ne doit pas être loin,
sinon généralement sur une base bien conçu il suffit de vérifier le bon
positionnement des index.Le but est d'ajouter dans la tables "Batches" les enregistrments se
trouvant
dans "Batches1" mais pas dans "Batches",
la clé étant "Batch Number"
J'ai essayé avec un "INSERT", et le temps étant très long, j'ai e ssayé
d'abord de tester s'il y avait des enregistrements à ajouter (avec un
test
derrière ces lignes genre rs.recordcount etc... pour les ajouter une par
une)
Mais cette dernière ligne
Set Rs = CurrentDb.OpenRecordset(sql, dbOpenDynaset)
met 10 bonnes minutes à s'exécuter.
Y a-t-il un moyen de faire plus vite ?
Je dirais revoir la conception de la base, mais c'est apparemment une
option que tu as déjà écartée.- Masquer le texte des messages pr écédents -
- Afficher le texte des messages précédents -
Merci Michel
Effectivement, c'est une option que j'ai écartée.
Pour information, la tables "Batches1" provient d'un autre base de donné es
qu'il est nécessaire de consolider dans la principale.
Encore merci pour le temps passé,
--
Bien cordialement,
Joël GARBEwww.joelgarbe.fr
"Michel_D" <michel.NOS...@orange-ft.com.invalid> a écrit dans le message denews: fqp3o4$9o__BEGIN_MASK_n#9g02mG7!__...__END_MASK_i?a63jfAD$z__@news. rd.francetelecom.fr...
Bonjour,
"Joël" <joel-ga...@wanadoo.fr> a écrit dans le message de
news:47d008f8$0$890$ba4acef3@news.orange.fr...
Bonjour tout le monde !
Voici un extrait de procédure :
sql = "SELECT * "
sql = sql & "FROM Batches1 "
sql = sql & "WHERE (((Batches1.[Batch Number]) Not In (SELECT
[Batch
Number] from [Batches])));"
Set Rs = CurrentDb.OpenRecordset(sql, dbOpenDynaset)
La table "Batches1" contient quelques 4000 enregistrements
La table "Batches" en contient au moins 10 fois plus
Les tables ont la même structure et contiennent 220 champs (et oui, c 'est
beaucoup, mais nécessaire).
Hum, je pense que le problème de conception ne doit pas être loin,
sinon généralement sur une base bien conçu il suffit de vérifier le bon
positionnement des index.
Le but est d'ajouter dans la tables "Batches" les enregistrments se
trouvant
dans "Batches1" mais pas dans "Batches",
la clé étant "Batch Number"
J'ai essayé avec un "INSERT", et le temps étant très long, j'ai e ssayé
d'abord de tester s'il y avait des enregistrements à ajouter (avec un
test
derrière ces lignes genre rs.recordcount etc... pour les ajouter une par
une)
Mais cette dernière ligne
Set Rs = CurrentDb.OpenRecordset(sql, dbOpenDynaset)
met 10 bonnes minutes à s'exécuter.
Y a-t-il un moyen de faire plus vite ?
Je dirais revoir la conception de la base, mais c'est apparemment une
option que tu as déjà écartée.- Masquer le texte des messages pr écédents -
- Afficher le texte des messages précédents -
Merci Michel
Effectivement, c'est une option que j'ai écartée.
Pour information, la tables "Batches1" provient d'un autre base de donné es
qu'il est nécessaire de consolider dans la principale.
Encore merci pour le temps passé,
--
Bien cordialement,
Joël GARBEwww.joelgarbe.fr
"Michel_D" a écrit dans le message denews: fqp3o4$9o__BEGIN_MASK_n#9g02mG7!__...__END_MASK_i?a63jfAD$ rd.francetelecom.fr...Bonjour,
"Joël" a écrit dans le message de
news:47d008f8$0$890$Bonjour tout le monde !
Voici un extrait de procédure :
sql = "SELECT * "
sql = sql & "FROM Batches1 "
sql = sql & "WHERE (((Batches1.[Batch Number]) Not In (SELECT
[Batch
Number] from [Batches])));"
Set Rs = CurrentDb.OpenRecordset(sql, dbOpenDynaset)
La table "Batches1" contient quelques 4000 enregistrements
La table "Batches" en contient au moins 10 fois plus
Les tables ont la même structure et contiennent 220 champs (et oui, c 'est
beaucoup, mais nécessaire).
Hum, je pense que le problème de conception ne doit pas être loin,
sinon généralement sur une base bien conçu il suffit de vérifier le bon
positionnement des index.Le but est d'ajouter dans la tables "Batches" les enregistrments se
trouvant
dans "Batches1" mais pas dans "Batches",
la clé étant "Batch Number"
J'ai essayé avec un "INSERT", et le temps étant très long, j'ai e ssayé
d'abord de tester s'il y avait des enregistrements à ajouter (avec un
test
derrière ces lignes genre rs.recordcount etc... pour les ajouter une par
une)
Mais cette dernière ligne
Set Rs = CurrentDb.OpenRecordset(sql, dbOpenDynaset)
met 10 bonnes minutes à s'exécuter.
Y a-t-il un moyen de faire plus vite ?
Je dirais revoir la conception de la base, mais c'est apparemment une
option que tu as déjà écartée.- Masquer le texte des messages pr écédents -
- Afficher le texte des messages précédents -