|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre régulier
![]() Inscription : octobre 2008 Messages : 224 ![]() |
Bonjour le forum,
Dans mon application, j'utilise ce code depuis plusieurs mois pour lancer une requête de suppression dont j'ai besoin pour mettre à jour ma table "tbl_PrixNets". Code :
Je précise que ma table se trouve sur une dorsale sur un serveur, mais que je n'ai rien changé à la structure de la table tbl_PrixNets. Des idées, des recommandations pour moi? |
||
|
|
00
|
|
|
#2 |
![]() ![]() René MAROTInscription : octobre 2005 Messages : 5 475 ![]() |
Si tu exécutes seulement la partie SELECT de ta requête, cela donne quoi ?
A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs. |
|
|
00
|
|
|
#3 | ||
|
Membre régulier
![]() Inscription : octobre 2008 Messages : 224 ![]() |
Bonsoir,
J'ai tenté ceci: Code :
|
||
|
|
00
|
|
|
#4 |
|
Membre éclairé
![]() |
Bonjour,
Il me semble que la méthode RunSQL de l'objet DoCmd ne peut exécuter que des requêtes ACTION Pour tester, crées une requête avec l'assistant plutôt |
|
|
00
|
|
|
#5 |
|
Membre régulier
![]() Inscription : octobre 2008 Messages : 224 ![]() |
Bonjour,
Si je tente ma première requête avec l'assistant, Access ne répond plus au bout de quelques minutes, mais il n'y a pas d'erreur visible. Code sql :
DELETE * FROM tbl_PrixNets WHERE EXISTS(SELECT * FROM tbl_PrixNets T WHERE T.CodeClientEtat = tbl_PrixNets.CodeClientEtat AND T.BrancheClientEtat= tbl_PrixNets.BrancheClientEtat AND T.SKU= tbl_PrixNets.SKU AND T.QteMini= tbl_PrixNets.QteMini AND T.Debut > tbl_PrixNets.Debut); Par contre, si je tente Code sql :
SELECT * FROM tbl_PrixNets T WHERE T.CodeClientEtat = tbl_PrixNets.CodeClientEtat AND T.BrancheClientEtat= tbl_PrixNets.BrancheClientEtat AND T.SKU= tbl_PrixNets.SKU AND T.QteMini= tbl_PrixNets.QteMini AND T.Debut > tbl_PrixNets.Debut; l'assistante me demande des paramètres pour tous les champs concernés de ma table tbl_PrixNets... |
|
|
00
|
|
|
#6 |
|
Membre éclairé
![]() |
Ce serait pas plutôt : ? EDIT : Pourquoi tu n'utilises pas INNER JOIN au lieu de WHERE T1.MonChamp=T2.MonChamp ?
__________________
L'informatique fait gagner beaucoup de temps. A condition d'en avoir beaucoup devant soi !!! |
|
|
00
|
|
|
#7 | |
![]() ![]() René MAROTInscription : octobre 2005 Messages : 5 475 ![]() |
Citation:
La remarque de paidge sur les Inner Join est aussi à considérer. Je suppose que tu as écrit le SQL à la main et Access tend à avoir une syntaxe un peu particulière. La solution la plus efficace pour écrire du SQL Access c'est de faire ta requête avec l'éditeur puis à basculer l'affichage en mode 'SQL' pour voir comment Access l'a traduit. Dans ton cas je mettrai la partie SELECT au point en comencant par ne pas mettre de clause WHERE. Une fois que tu obtiens un resultat satifaisant tu introduit une clause WHERE avec des sélections sur des constantes puis enfin tu intègre cela à ta requête de suppression. Accessoirement combien d'enr ont tes tables ? A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs. |
|
|
|
00
|
|
|
#8 | ||
|
Membre Expert
![]() Nicolas GuimbalConsultant/développeur ERP Inscription : mai 2008 Messages : 1 256 ![]() |
Bonsoir,
3 remarques : - si un enregistrement à supprimer est en cours d'édition (sur une autre cession) sa suppression attend patiemment qu'il se libère - tu peux enlever "set warnings false" pour voir quel est le problème - mieux encore la syntaxe "set warnings ..." serait avantageusement remplacée par celle-ci qui a l'avantage de ne pas bloquer l'exécution et de permettre un traitement d'erreur différencié développeur/utilisateur : Code :
- la numérotation des lignes fait basic des années 20, elle n'est pas indispensable mais permet de renseigner la ligne où s'est produit le problème dans le message d'erreur (variable Erl) ce qui à l'usage est très précieux. |
||
|
|
00
|
|
|
#9 |
|
Membre régulier
![]() Inscription : octobre 2008 Messages : 224 ![]() |
Bonjour le forum,
Ah, je n'ai pas encore eu le temps d'essayer vos suggestions, mais je m'y mets dès que je peux. J'ai une question sur la numérotation des lignes qui me vient tout de suite. Est-ce que vous connaissez un autre moyen simple que MZ-Tools? Je ne peux rien installer sur mon PC de travail. :/ |
|
|
00
|
|
|
#10 |
|
Membre régulier
![]() Inscription : octobre 2008 Messages : 224 ![]() |
Bonjour,
Finalement, en repensant mes routines, j'ai réussi à utiliser une solution avec des index que je n'avais pas comprise quand on me l'avait suggérée... J'ai donc pu éliminer cette requête de suppression qui tournait indéfiniment. Mais je n'ai toujours pas compris pourquoi. :/ Je vais cependant réfléchir à vos réflexions. Merci. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com