Opérateur SQL "IN" limité par la taille de la liste
4 réponses
youssef.berkane
Bonjour à tous,
voilà mon soucis:
je souhaite écrire une requête SQL sous VBA Excel en vue d'extraire, à
partir d'une base de données Access, un certain nombre d'enregistrements
d'une table et cela de manière aléatoire. J'ai eu un bon début en utilisant
l'opérateur IN comme ceci :
"SELECT * FROM table WHERE table.colonne_de_référence IN (1,5,89,....)
Seul problème:la liste (1,5,89,...) est très restreinte en taille (une
centaine de caractères)
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
Philippe T [MS]
Bonjour,
Il suffit de créer une table temporaire et d'insérer les enregistrements choisis ensuite on peut utiliser IN
SELECT * FROM table WHERE table.colonne_de_référence IN (SELECT MesChoix FROM MaTableTemp)
Phil. ________________________________________________________ Philippe TROTIN http://blogs.msdn.com/ptrotin Microsoft Services France http://www.microsoft.com/france
"youssef.berkane" wrote in message news:
Bonjour à tous,
voilà mon soucis: je souhaite écrire une requête SQL sous VBA Excel en vue d'extraire, à partir d'une base de données Access, un certain nombre d'enregistrements d'une table et cela de manière aléatoire. J'ai eu un bon début en utilisant
l'opérateur IN comme ceci : "SELECT * FROM table WHERE table.colonne_de_référence IN (1,5,89,....)
Seul problème:la liste (1,5,89,...) est très restreinte en taille (une centaine de caractères)
Pouvez-vous m'aider à solutionner ce problème?
Merci d'avance
Bonjour,
Il suffit de créer une table temporaire et d'insérer les enregistrements
choisis ensuite on peut utiliser IN
SELECT * FROM table WHERE table.colonne_de_référence IN (SELECT MesChoix
FROM MaTableTemp)
Phil.
________________________________________________________
Philippe TROTIN http://blogs.msdn.com/ptrotin
Microsoft Services France http://www.microsoft.com/france
"youssef.berkane" <youssefberkane@discussions.microsoft.com> wrote in
message news:48BC5D38-41DC-4B15-B358-870737AA4C83@microsoft.com...
Bonjour à tous,
voilà mon soucis:
je souhaite écrire une requête SQL sous VBA Excel en vue d'extraire, à
partir d'une base de données Access, un certain nombre d'enregistrements
d'une table et cela de manière aléatoire. J'ai eu un bon début en
utilisant
l'opérateur IN comme ceci :
"SELECT * FROM table WHERE table.colonne_de_référence IN (1,5,89,....)
Seul problème:la liste (1,5,89,...) est très restreinte en taille (une
centaine de caractères)
Il suffit de créer une table temporaire et d'insérer les enregistrements choisis ensuite on peut utiliser IN
SELECT * FROM table WHERE table.colonne_de_référence IN (SELECT MesChoix FROM MaTableTemp)
Phil. ________________________________________________________ Philippe TROTIN http://blogs.msdn.com/ptrotin Microsoft Services France http://www.microsoft.com/france
"youssef.berkane" wrote in message news:
Bonjour à tous,
voilà mon soucis: je souhaite écrire une requête SQL sous VBA Excel en vue d'extraire, à partir d'une base de données Access, un certain nombre d'enregistrements d'une table et cela de manière aléatoire. J'ai eu un bon début en utilisant
l'opérateur IN comme ceci : "SELECT * FROM table WHERE table.colonne_de_référence IN (1,5,89,....)
Seul problème:la liste (1,5,89,...) est très restreinte en taille (une centaine de caractères)
Pouvez-vous m'aider à solutionner ce problème?
Merci d'avance
youssef.berkane
Merci Philippe pour ta réponse. J'ai pris note du message dans le groupe office. J'éviterai à l'avenir les redondances entre groupes. Peux tu m'indiquer comment créer une table temporaire? ( à titre d'info, je travaille sur vba access) Merci d'avance
Merci Philippe pour ta réponse.
J'ai pris note du message dans le groupe office. J'éviterai à l'avenir les
redondances entre groupes.
Peux tu m'indiquer comment créer une table temporaire? ( à titre d'info, je
travaille sur vba access)
Merci d'avance
Merci Philippe pour ta réponse. J'ai pris note du message dans le groupe office. J'éviterai à l'avenir les redondances entre groupes. Peux tu m'indiquer comment créer une table temporaire? ( à titre d'info, je travaille sur vba access) Merci d'avance
Philippe T [MS]
Bonjour,
Pour cette question, pose la plutôt sur microsoft.public.fr.access car elle est lié à Access.
Moi je travail essentiellement sur SQL Server et il est possible de faire en procédures stockées quelque chose du genre :
De ton coté, je te conseil d'avoir une table dédié que tu utilises pour ça. Tu fais des INSERT dedans et ensuite tu utilise la requête avec le IN.
Phil. ________________________________________________________ Philippe TROTIN http://blogs.msdn.com/ptrotin Microsoft Services France http://www.microsoft.com/france
"youssef.berkane" wrote in message news:
Merci Philippe pour ta réponse. J'ai pris note du message dans le groupe office. J'éviterai à l'avenir les redondances entre groupes. Peux tu m'indiquer comment créer une table temporaire? ( à titre d'info, je
travaille sur vba access) Merci d'avance
Bonjour,
Pour cette question, pose la plutôt sur microsoft.public.fr.access car elle
est lié à Access.
Moi je travail essentiellement sur SQL Server et il est possible de faire en
procédures stockées quelque chose du genre :
De ton coté, je te conseil d'avoir une table dédié que tu utilises pour ça.
Tu fais des INSERT dedans et ensuite tu utilise la requête avec le IN.
Phil.
________________________________________________________
Philippe TROTIN http://blogs.msdn.com/ptrotin
Microsoft Services France http://www.microsoft.com/france
"youssef.berkane" <youssefberkane@discussions.microsoft.com> wrote in
message news:791D17FC-735F-4911-8BBA-3892A98E7E4A@microsoft.com...
Merci Philippe pour ta réponse.
J'ai pris note du message dans le groupe office. J'éviterai à l'avenir les
redondances entre groupes.
Peux tu m'indiquer comment créer une table temporaire? ( à titre d'info,
je
De ton coté, je te conseil d'avoir une table dédié que tu utilises pour ça. Tu fais des INSERT dedans et ensuite tu utilise la requête avec le IN.
Phil. ________________________________________________________ Philippe TROTIN http://blogs.msdn.com/ptrotin Microsoft Services France http://www.microsoft.com/france
"youssef.berkane" wrote in message news:
Merci Philippe pour ta réponse. J'ai pris note du message dans le groupe office. J'éviterai à l'avenir les redondances entre groupes. Peux tu m'indiquer comment créer une table temporaire? ( à titre d'info, je
travaille sur vba access) Merci d'avance
youssef.berkane
Merci.
J'ai essayé de passer par une table dédiée à ma fonction IN. Mais j'ai noté que l'insertion de valeurs (INSERT INTO) était limitée à 64 valeurs. Au-delà, une boîte de dialogue s'ouvre et me demande la source de données.
Merci.
J'ai essayé de passer par une table dédiée à ma fonction IN.
Mais j'ai noté que l'insertion de valeurs (INSERT INTO) était limitée à 64
valeurs.
Au-delà, une boîte de dialogue s'ouvre et me demande la source de données.
J'ai essayé de passer par une table dédiée à ma fonction IN. Mais j'ai noté que l'insertion de valeurs (INSERT INTO) était limitée à 64 valeurs. Au-delà, une boîte de dialogue s'ouvre et me demande la source de données.