2009-06-05 7 views
0

Quelqu'un peut-il m'aider s'il vous plaît avec une requête? Dans Microsoft SQL Server, je la requête suivante, qui exécute bien:Requête Microsoft Access SQL

SELECT * FROM ControlPoint 
INNER JOIN Project ON ControlPoint.ProjectID = Project.ProjectID 
INNER JOIN Site ON Site.SiteID = Project.SiteID 
WHERE Project.ProjectName LIKE '%Flood%' 

Mon problème est, lorsque je tente d'exécuter ce sur Microsoft Access, il me donne une sorte d'erreur de syntaxe. Cela fait longtemps que j'ai utilisé Access, mais si je me souviens bien, je pense que les jointures doivent être entre parenthèses ou quelque chose comme ça. Toute aide serait utile!

Répondre

7

Vous aurez besoin de quelques parenthèses en plus de changer les cartes sauvages:

SELECT * FROM (ControlPoint 
INNER JOIN Project ON ControlPoint.ProjectID = Project.ProjectID) 
INNER JOIN Site ON Site.SiteID = Project.SiteID 
WHERE Project.ProjectName LIKE '*Flood*' 

Notez que l'astérisque est utilisé dans la fenêtre de requête d'accès et avec DAO, pour cent est utilisé avec ADO.

+0

Dans Access, vous pouvez utiliser% et _ comme jokers si vous avez activé le mode SQL ANSI 92. –

+0

Merci pour la réponse Remou C'était la parenthèse que j'ai oubliée SQL Server ne les requiert pas, mais Access le fait Merci pour l'aide – Icemanind

-1

Utilisez ce SINTAX dans l'accès ne jamais

(ceci est un exemple)

select * du client, adresse où customer.id = adress.customerId

0

Access utilise des modèles génériques différents.
Dans votre cas, ce sera - comme 'Flood?' (remplacez le point d'interrogation par un astérisque).

Je ne connais pas les codes de formatage à appliquer ici pour qu'il s'affiche correctement.
Voir le lien pour plus de détails - http://www.techonthenet.com/access/queries/like.php

0

L'erreur de syntaxe est dû au fait que l'accès utilise "au lieu de" comme séparateur de chaîne. Comme mentionné précédemment, vous devrez également modifier les caractères génériques% à *

+0

J'ai peur que ce ne soit pas vrai. – Fionnuala

Questions connexes