2011-04-05 4 views
2

Lorsque j'ai des sous-requêtes dans Access, il essaie de les «corriger» sans demander et casse la requête dans le processus. Par exemple,Comment arrêter l'accès de "corriger" mes requêtes?

Select * from tblA LEFT JOIN (Select * from [TblB] union Select * from [tblc]) comme SubQry Sur TblA.Whatever = SubQry.Whatever

Cela fonctionne très bien quand Je cours la première fois. Cependant, après que je l'enregistrer et d'essayer de le rouvrir, Access essaie d'être 'utile' et change les parens entre parenthèses:

Select * from tblA LEFT JOIN [Select * from [TblB] union Select * from [ TblC]]. as SubQry On TblA.Whatever = SubQry.Whatever

Bien sûr, cela génère une erreur. Y at-il une option quelque part dans le menu des options que je peux activer pour que Access arrête d'essayer de m'aider?

(Note de bas de page: Les noms de tables réels sont plus complexes que «TblB» et doivent être entre parenthèses pour être reconnus).

+1

+100 si je le pouvais. Je déteste cette "caractéristique" d'Access. – mwolfe02

+0

Pour ma part, je ne peux pas attendre pour voir cette fonctionnalité dans MS Word. Imaginez que vous écrivez un document Word et que vous l'enregistrez. Plus tard, vous le rouvrez et découvrez que Word a apporté quelques corrections «utiles» à votre texte sans vous le demander et sans vous le dire. Naturellement, il n'y a aucun moyen pour l'utilisateur de désactiver cette fonctionnalité. Maintenant, comment cela pourrait-il aller mal? – PowerUser

+1

duplicata possible de [Access réécrit - et rupture - ma requête!] (Http://stackoverflow.com/questions/3048189/access-is-re-writing-and-breaking-my-query) – JeffO

Répondre

0

AFAIK, vous ne pouvez pas. Les parenthèses correspondant à vos sous-requêtes sont toujours remplacées par des crochets, et vous devez les annuler si vous voulez les réenregistrer.
Tout ce que vous pouvez faire est de sauvegarder la sous-requête en tant que requête séparée et d'utiliser celle-ci jusqu'à ce que votre application soit réellement stable, puis d'intégrer la sous-requête dans la requête principale.

+0

Vous pouvez contourner cela en activant le mode SQL ANSI 92 dans Access, ce qui vous permet d'utiliser des parenthèses traditionnelles, mais qui a des effets sur des parties d'Access qui sont vraiment inacceptables (par exemple, il change la liste de mots réservés (qui peut provoquer le brisement de SQL de travail) et empêche les zones de liste déroulante multi-colonne d'étendre avec Autocomplete). –

Questions connexes