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
Thierry (ze Titi)
Hello Franky !
Pour les 10000 suivants:
SELECT TOP 10000 * FROM matable WHERE matable.Identifiant NOT IN(SELECT Identifiant FROM requête10000Précédents)
J'ai écrit une petite fonction qui créé des requêtes coupant une table par tranches mais j'ai un doute quant à son fonctionnement, à tester donc... Note aussi que plus tu vas avancer dans les tranches, plus les requêtes seront longues à exécuter... C'est pour ça que j'émets des doutes... Mais je n'ai aucun doute quant au fait que 3Stone va passer derrière pour proposer un truc génial...
Function creerTranches(laTable As String, nomClePrimaire As String, tranche As Long) Dim i As Integer, strReqPrec As String i = 0 CurrentDb.CreateQueryDef "Extract0", "SELECT TOP " & tranche & " * FROM [" & latable & "]" strReqPrec = nomClePrimaire & " NOT IN(SELECT " & nomClePrimaire & " FROM Extract0)" While DCount("*", laTable, nomClePrimaire & " NOT IN(SELECT " & nomClePrimaire & " FROM Extract" & i & ")") > 10 CurrentDb.CreateQueryDef "Extract" & i + 1, _ "SELECT TOP 10 * FROM " & laTable & " WHERE " & strReqPrec i = i + 1 strReqPrec = strReqPrec & " AND " & nomClePrimaire & " NOT IN(SELECT " & nomClePrimaire & " FROM Extract" & i & ")" Wend End Function
Utilisation:
creerTranches nomTable, nomClePrimaire, tranche
-- Cordialement, Thierry
Tout pour réussir avec Access : http://www.mpfa.info
Hello Franky !
Pour les 10000 suivants:
SELECT TOP 10000 *
FROM matable
WHERE matable.Identifiant NOT IN(SELECT Identifiant FROM requête10000Précédents)
J'ai écrit une petite fonction qui créé des requêtes coupant une table par tranches mais j'ai un doute quant à son fonctionnement, à tester donc... Note aussi que plus tu vas avancer dans les tranches, plus les requêtes seront longues à exécuter... C'est pour ça que j'émets des doutes... Mais je n'ai aucun doute quant au fait que 3Stone va passer derrière pour proposer un truc génial...
Function creerTranches(laTable As String, nomClePrimaire As String, tranche As Long)
Dim i As Integer, strReqPrec As String
i = 0
CurrentDb.CreateQueryDef "Extract0", "SELECT TOP " & tranche & " * FROM [" & latable & "]"
strReqPrec = nomClePrimaire & " NOT IN(SELECT " & nomClePrimaire & " FROM Extract0)"
While DCount("*", laTable, nomClePrimaire & " NOT IN(SELECT " & nomClePrimaire & " FROM Extract" & i & ")") > 10
CurrentDb.CreateQueryDef "Extract" & i + 1, _
"SELECT TOP 10 * FROM " & laTable & " WHERE " & strReqPrec
i = i + 1
strReqPrec = strReqPrec & " AND " & nomClePrimaire & " NOT IN(SELECT " & nomClePrimaire & " FROM Extract" & i & ")"
Wend
End Function
Utilisation:
creerTranches nomTable, nomClePrimaire, tranche
--
Cordialement,
Thierry
Tout pour réussir avec Access :
http://www.mpfa.info
SELECT TOP 10000 * FROM matable WHERE matable.Identifiant NOT IN(SELECT Identifiant FROM requête10000Précédents)
J'ai écrit une petite fonction qui créé des requêtes coupant une table par tranches mais j'ai un doute quant à son fonctionnement, à tester donc... Note aussi que plus tu vas avancer dans les tranches, plus les requêtes seront longues à exécuter... C'est pour ça que j'émets des doutes... Mais je n'ai aucun doute quant au fait que 3Stone va passer derrière pour proposer un truc génial...
Function creerTranches(laTable As String, nomClePrimaire As String, tranche As Long) Dim i As Integer, strReqPrec As String i = 0 CurrentDb.CreateQueryDef "Extract0", "SELECT TOP " & tranche & " * FROM [" & latable & "]" strReqPrec = nomClePrimaire & " NOT IN(SELECT " & nomClePrimaire & " FROM Extract0)" While DCount("*", laTable, nomClePrimaire & " NOT IN(SELECT " & nomClePrimaire & " FROM Extract" & i & ")") > 10 CurrentDb.CreateQueryDef "Extract" & i + 1, _ "SELECT TOP 10 * FROM " & laTable & " WHERE " & strReqPrec i = i + 1 strReqPrec = strReqPrec & " AND " & nomClePrimaire & " NOT IN(SELECT " & nomClePrimaire & " FROM Extract" & i & ")" Wend End Function
Utilisation:
creerTranches nomTable, nomClePrimaire, tranche
-- Cordialement, Thierry
Tout pour réussir avec Access : http://www.mpfa.info
Thierry (ze Titi)
Correction:
Function creerTranches(laTable As String, nomClePrimaire As String, tranche As Long) Dim i As Integer, strReqPrec As String i = 0 CurrentDb.CreateQueryDef "Extract0", "SELECT TOP " & tranche & " * FROM [" & laTable & "]" strReqPrec = nomClePrimaire & " NOT IN(SELECT " & nomClePrimaire & " FROM Extract0)" While DCount("*", laTable, nomClePrimaire & " NOT IN(SELECT " & nomClePrimaire & " FROM Extract" & i & ")") > 10 CurrentDb.CreateQueryDef "Extract" & i + 1, _ "SELECT TOP " & tranche & " * FROM " & laTable & " WHERE " & strReqPrec i = i + 1 strReqPrec = strReqPrec & " AND " & nomClePrimaire & " NOT IN(SELECT " & nomClePrimaire & " FROM Extract" & i & ")" Wend End Function
-- Cordialement, Thierry
Tout pour réussir avec Access : http://www.mpfa.info
Correction:
Function creerTranches(laTable As String, nomClePrimaire As String, tranche As Long)
Dim i As Integer, strReqPrec As String
i = 0
CurrentDb.CreateQueryDef "Extract0", "SELECT TOP " & tranche & " * FROM [" & laTable & "]"
strReqPrec = nomClePrimaire & " NOT IN(SELECT " & nomClePrimaire & " FROM Extract0)"
While DCount("*", laTable, nomClePrimaire & " NOT IN(SELECT " & nomClePrimaire & " FROM Extract" & i & ")") > 10
CurrentDb.CreateQueryDef "Extract" & i + 1, _
"SELECT TOP " & tranche & " * FROM " & laTable & " WHERE " & strReqPrec
i = i + 1
strReqPrec = strReqPrec & " AND " & nomClePrimaire & " NOT IN(SELECT " & nomClePrimaire & " FROM Extract" & i & ")"
Wend
End Function
--
Cordialement,
Thierry
Tout pour réussir avec Access :
http://www.mpfa.info
Function creerTranches(laTable As String, nomClePrimaire As String, tranche As Long) Dim i As Integer, strReqPrec As String i = 0 CurrentDb.CreateQueryDef "Extract0", "SELECT TOP " & tranche & " * FROM [" & laTable & "]" strReqPrec = nomClePrimaire & " NOT IN(SELECT " & nomClePrimaire & " FROM Extract0)" While DCount("*", laTable, nomClePrimaire & " NOT IN(SELECT " & nomClePrimaire & " FROM Extract" & i & ")") > 10 CurrentDb.CreateQueryDef "Extract" & i + 1, _ "SELECT TOP " & tranche & " * FROM " & laTable & " WHERE " & strReqPrec i = i + 1 strReqPrec = strReqPrec & " AND " & nomClePrimaire & " NOT IN(SELECT " & nomClePrimaire & " FROM Extract" & i & ")" Wend End Function
-- Cordialement, Thierry
Tout pour réussir avec Access : http://www.mpfa.info
Rv
Salut,
J'ai aussi proposé une solution dans le fil "Tronçonner les données d'une table par paquets de 500" proposé par Phil le 01/11/07.
A+
Rv
"Franky01" a écrit dans le message de news:
J'ai cru comprendre la semaine derniere que la fonction LIMIT n'existait pas dans ACCESS.
En fait la semaine derniere je voulais récolter les 10000 premieres occurences de ma base, j'ai donc fait :
SELECT TOP 1000 * FROM matable
Maintenant je voudrais récolter la deuxième tranche de 10000, c'est à dire de la 10001ème occurence à la 20000 ème occurence.
Quel requete effectué ?
Et puis si jamais il existe une requete qui coupe une table en tranche de 10000, elle sera la bienvenue aussi :)
Merci !!!
Salut,
J'ai aussi proposé une solution dans le fil "Tronçonner les données
d'une table par paquets de 500" proposé par Phil le 01/11/07.
A+
Rv
"Franky01" <Franky01@discussions.microsoft.com> a écrit dans le message de
news:04EF23B0-B601-4EF3-A354-58625BFFAFE4@microsoft.com...
J'ai cru comprendre la semaine derniere que la fonction LIMIT n'existait
pas
dans ACCESS.
En fait la semaine derniere je voulais récolter les 10000 premieres
occurences de ma base, j'ai donc fait :
SELECT TOP 1000 *
FROM matable
Maintenant je voudrais récolter la deuxième tranche de 10000, c'est à dire
de la 10001ème occurence à la 20000 ème occurence.
Quel requete effectué ?
Et puis si jamais il existe une requete qui coupe une table en tranche de
10000, elle sera la bienvenue aussi :)
J'ai aussi proposé une solution dans le fil "Tronçonner les données d'une table par paquets de 500" proposé par Phil le 01/11/07.
A+
Rv
"Franky01" a écrit dans le message de news:
J'ai cru comprendre la semaine derniere que la fonction LIMIT n'existait pas dans ACCESS.
En fait la semaine derniere je voulais récolter les 10000 premieres occurences de ma base, j'ai donc fait :
SELECT TOP 1000 * FROM matable
Maintenant je voudrais récolter la deuxième tranche de 10000, c'est à dire de la 10001ème occurence à la 20000 ème occurence.
Quel requete effectué ?
Et puis si jamais il existe une requete qui coupe une table en tranche de 10000, elle sera la bienvenue aussi :)
Merci !!!
Thierry (ze Titi)
Correction:
Function creerTranches(laTable As String, nomClePrimaire As String, tranche As Long) Dim i As Integer, strReqPrec As String i = 0 CurrentDb.CreateQueryDef "Extract0", "SELECT TOP " & tranche & " * FROM [" & laTable & "]" strReqPrec = nomClePrimaire & " NOT IN(SELECT " & nomClePrimaire & " FROM Extract0)" While DCount("*", laTable, nomClePrimaire & " NOT IN(SELECT " & nomClePrimaire & " FROM Extract" & i & ")") > 10 CurrentDb.CreateQueryDef "Extract" & i + 1, _ "SELECT TOP " & tranche & " * FROM " & laTable & " WHERE " & strReqPrec i = i + 1 strReqPrec = strReqPrec & " AND " & nomClePrimaire & " NOT IN(SELECT " & nomClePrimaire & " FROM Extract" & i & ")" Wend End Function
Après quelques tests, il s'avère que ça pose problème... Je pense que cela vient de la construction du critère lorsque la chaîne atteint ou dépasse 255 caractères. J'y travaille....
-- Cordialement, Thierry
Tout pour réussir avec Access : http://www.mpfa.info
Correction:
Function creerTranches(laTable As String, nomClePrimaire As String, tranche
As Long) Dim i As Integer, strReqPrec As String
i = 0
CurrentDb.CreateQueryDef "Extract0", "SELECT TOP " & tranche & " * FROM
[" & laTable & "]" strReqPrec = nomClePrimaire & " NOT IN(SELECT " &
nomClePrimaire & " FROM Extract0)" While DCount("*", laTable,
nomClePrimaire & " NOT IN(SELECT " & nomClePrimaire & " FROM Extract" & i &
")") > 10 CurrentDb.CreateQueryDef "Extract" & i + 1, _
"SELECT TOP " & tranche & " * FROM " & laTable & " WHERE " & strReqPrec
i = i + 1 strReqPrec = strReqPrec & " AND " & nomClePrimaire & "
NOT IN(SELECT " & nomClePrimaire & " FROM Extract" & i & ")" Wend
End Function
Après quelques tests, il s'avère que ça pose problème... Je pense que
cela vient de la construction du critère lorsque la chaîne atteint ou
dépasse 255 caractères.
J'y travaille....
--
Cordialement,
Thierry
Tout pour réussir avec Access :
http://www.mpfa.info
Function creerTranches(laTable As String, nomClePrimaire As String, tranche As Long) Dim i As Integer, strReqPrec As String i = 0 CurrentDb.CreateQueryDef "Extract0", "SELECT TOP " & tranche & " * FROM [" & laTable & "]" strReqPrec = nomClePrimaire & " NOT IN(SELECT " & nomClePrimaire & " FROM Extract0)" While DCount("*", laTable, nomClePrimaire & " NOT IN(SELECT " & nomClePrimaire & " FROM Extract" & i & ")") > 10 CurrentDb.CreateQueryDef "Extract" & i + 1, _ "SELECT TOP " & tranche & " * FROM " & laTable & " WHERE " & strReqPrec i = i + 1 strReqPrec = strReqPrec & " AND " & nomClePrimaire & " NOT IN(SELECT " & nomClePrimaire & " FROM Extract" & i & ")" Wend End Function
Après quelques tests, il s'avère que ça pose problème... Je pense que cela vient de la construction du critère lorsque la chaîne atteint ou dépasse 255 caractères. J'y travaille....
-- Cordialement, Thierry
Tout pour réussir avec Access : http://www.mpfa.info
Thierry (ze Titi)
Hello Franky !
Deuxième essai:
Function creerTranchesV2(laTable As String, nomClePrimaire As String, tranche As Long) Dim i As Integer, strReqPrec As String i = 0 CurrentDb.CreateQueryDef "Extract0", "SELECT TOP " & tranche & " * FROM [" & laTable & "]" strReqPrec = nomClePrimaire & ">" & DMax(nomClePrimaire, "Extract0") While DCount("*", laTable, nomClePrimaire & ">" & DMax(nomClePrimaire, "Extract" & i)) > 0 CurrentDb.CreateQueryDef "Extract" & i + 1, _ "SELECT TOP " & tranche & " * FROM " & laTable & " WHERE " & strReqPrec i = i + 1 strReqPrec = nomClePrimaire & ">" & DMax(nomClePrimaire, "Extract" & i) Wend End Function
-- Cordialement, Thierry
Tout pour réussir avec Access : http://www.mpfa.info
Hello Franky !
Deuxième essai:
Function creerTranchesV2(laTable As String, nomClePrimaire As String, tranche As Long)
Dim i As Integer, strReqPrec As String
i = 0
CurrentDb.CreateQueryDef "Extract0", "SELECT TOP " & tranche & " * FROM [" & laTable & "]"
strReqPrec = nomClePrimaire & ">" & DMax(nomClePrimaire, "Extract0")
While DCount("*", laTable, nomClePrimaire & ">" & DMax(nomClePrimaire, "Extract" & i)) > 0
CurrentDb.CreateQueryDef "Extract" & i + 1, _
"SELECT TOP " & tranche & " * FROM " & laTable & " WHERE " & strReqPrec
i = i + 1
strReqPrec = nomClePrimaire & ">" & DMax(nomClePrimaire, "Extract" & i)
Wend
End Function
--
Cordialement,
Thierry
Tout pour réussir avec Access :
http://www.mpfa.info
Function creerTranchesV2(laTable As String, nomClePrimaire As String, tranche As Long) Dim i As Integer, strReqPrec As String i = 0 CurrentDb.CreateQueryDef "Extract0", "SELECT TOP " & tranche & " * FROM [" & laTable & "]" strReqPrec = nomClePrimaire & ">" & DMax(nomClePrimaire, "Extract0") While DCount("*", laTable, nomClePrimaire & ">" & DMax(nomClePrimaire, "Extract" & i)) > 0 CurrentDb.CreateQueryDef "Extract" & i + 1, _ "SELECT TOP " & tranche & " * FROM " & laTable & " WHERE " & strReqPrec i = i + 1 strReqPrec = nomClePrimaire & ">" & DMax(nomClePrimaire, "Extract" & i) Wend End Function
-- Cordialement, Thierry
Tout pour réussir avec Access : http://www.mpfa.info
Gilbert
Bonjour,
En m'inspirant de l'idée de Thierry
Pour sélectionner les enregistrements 100 à 200 (mais triés à l'envers) SELECT top 100 * FROM (SELECT top 200 * FROM matable ORDER BY matable.Identifiant ORDER BY matable.Identifiant ) ORDER BY matable.Identifiant DESC
Pour les avoir dans l'ordre SELECT * FROM (SELECT top 100 * FROM (SELECT top 200 * FROM matable ORDER BY matable.Identifiant ORDER BY matable.Identifiant ) ORDER BY matable.Identifiant DESC) ORDER BY matable.Identifiant
Ensuite pour avoir les enregistrements 200 à 300 SELECT top 200 * FROM (SELECT top 300 *...
-- Cordialement,
Gilbert
"Franky01" a écrit dans le message de news:
J'ai cru comprendre la semaine derniere que la fonction LIMIT n'existait pas dans ACCESS.
En fait la semaine derniere je voulais récolter les 10000 premieres occurences de ma base, j'ai donc fait :
SELECT TOP 1000 * FROM matable
Maintenant je voudrais récolter la deuxième tranche de 10000, c'est à dire de la 10001ème occurence à la 20000 ème occurence.
Quel requete effectué ?
Et puis si jamais il existe une requete qui coupe une table en tranche de 10000, elle sera la bienvenue aussi :)
Merci !!!
Bonjour,
En m'inspirant de l'idée de Thierry
Pour sélectionner les enregistrements 100 à 200 (mais triés à l'envers)
SELECT top 100 *
FROM (SELECT top 200 *
FROM matable ORDER BY matable.Identifiant ORDER BY matable.Identifiant )
ORDER BY matable.Identifiant DESC
Pour les avoir dans l'ordre
SELECT * FROM (SELECT top 100 *
FROM (SELECT top 200 *
FROM matable ORDER BY matable.Identifiant ORDER BY matable.Identifiant )
ORDER BY matable.Identifiant DESC) ORDER BY matable.Identifiant
Ensuite pour avoir les enregistrements 200 à 300
SELECT top 200 * FROM (SELECT top 300 *...
--
Cordialement,
Gilbert
"Franky01" <Franky01@discussions.microsoft.com> a écrit dans le message de
news: 04EF23B0-B601-4EF3-A354-58625BFFAFE4@microsoft.com...
J'ai cru comprendre la semaine derniere que la fonction LIMIT n'existait
pas
dans ACCESS.
En fait la semaine derniere je voulais récolter les 10000 premieres
occurences de ma base, j'ai donc fait :
SELECT TOP 1000 *
FROM matable
Maintenant je voudrais récolter la deuxième tranche de 10000, c'est à dire
de la 10001ème occurence à la 20000 ème occurence.
Quel requete effectué ?
Et puis si jamais il existe une requete qui coupe une table en tranche de
10000, elle sera la bienvenue aussi :)
Pour sélectionner les enregistrements 100 à 200 (mais triés à l'envers) SELECT top 100 * FROM (SELECT top 200 * FROM matable ORDER BY matable.Identifiant ORDER BY matable.Identifiant ) ORDER BY matable.Identifiant DESC
Pour les avoir dans l'ordre SELECT * FROM (SELECT top 100 * FROM (SELECT top 200 * FROM matable ORDER BY matable.Identifiant ORDER BY matable.Identifiant ) ORDER BY matable.Identifiant DESC) ORDER BY matable.Identifiant
Ensuite pour avoir les enregistrements 200 à 300 SELECT top 200 * FROM (SELECT top 300 *...
-- Cordialement,
Gilbert
"Franky01" a écrit dans le message de news:
J'ai cru comprendre la semaine derniere que la fonction LIMIT n'existait pas dans ACCESS.
En fait la semaine derniere je voulais récolter les 10000 premieres occurences de ma base, j'ai donc fait :
SELECT TOP 1000 * FROM matable
Maintenant je voudrais récolter la deuxième tranche de 10000, c'est à dire de la 10001ème occurence à la 20000 ème occurence.
Quel requete effectué ?
Et puis si jamais il existe une requete qui coupe une table en tranche de 10000, elle sera la bienvenue aussi :)