InfoGeo
Messages postés87Date d'inscriptionjeudi 2 février 2012StatutMembreDernière intervention17 avril 2013
-
30 mai 2011 à 15:32
cs_jopop
Messages postés1540Date d'inscriptionlundi 26 mai 2003StatutMembreDernière intervention 1 août 2013
-
31 mai 2011 à 10:10
Salut, je comprend pas il y a une erreur: "erreur de syntaxe(opérateur absent) dans l expression ".
Public Function GetFieldMes(TypeMesureName$, LocationName$, FieldName$) As Long
' Aller chercher le nom de la variable active correspondant au capteur pour la base de données serveur
' Renvoie la clé de la table FIELDMES
Dim SqlStr$, MyRst As ADODB.Recordset
If Not DbOpen Then
GetFieldMes = ErrDbUnreachable
Exit Function
End If
SqlStr = "SELECT FM_CLE,FM_FIELD " & _
"FROM FIELDMES " & _
"INNER JOIN TYPESMESURES ON FIELDMES.FM_TM_CLE = TYPESMESURES.TM_CLE " & _
"AND INNER JOIN LOCATIONS ON FIELDMES.FM_LO_CLE = LOCATIONS.LO_CLE " & _
"WHERE TM_NAME ='" & TypeMesureName & "' AND LO_NAME = '" & LocationName & "' AND FM_ACTIVE;"
Set MyRst = New ADODB.Recordset
Call MyRst.Open(SqlStr, MyBD, adOpenForwardOnly, adLockReadOnly)
If MyRst.EOF Then
MyRst.Close
GetFieldMes = ErrSensorNotActive
Exit Function
Else
FieldName = MyRst.Fields("FM_FIELD")
GetFieldMes = MyRst.Fields("FM_CLE")
MyRst.Close
End If
End Function
Pouvez vous m aider svp ? L'erreur apparait au moment du call myrst.open mais c surement lier a mon expres sqlstr
cs_dauphins14
Messages postés60Date d'inscriptionsamedi 8 mai 2010StatutMembreDernière intervention24 février 2012 30 mai 2011 à 15:57
bonjour,
essayer d'enlever les _&
er je te met la structures que j'ai apprise
Select <nomdescolonne>
From<nom de table>
Where <les clés etrangères><Les restrictions>
AND
Essaye et vous me dirait si cela marche autrement va voir le site
www.siteduzero.com
Ce site a pelin d'exemples et c'est très utile.
Cordialement
cs_jopop
Messages postés1540Date d'inscriptionlundi 26 mai 2003StatutMembreDernière intervention 1 août 201312 30 mai 2011 à 16:59
Salut,
a priori je dirais que le problème vient du "AND" au début de la 4ème ligne de ta requête. Il ne faut pas mettre de "AND" entre les différents "INNER JOIN".
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 30 mai 2011 à 17:09
Salut
Par sécurité, ajoute le nom de la table devant chaque champ afin que le moteur s'y retrouve sans équivoque. Exemple :
"WHERE FIELDMES.TM_NAME ='" & ...
(corrige ce nom en fonction de tes tables qu'on ne connait pas)
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
InfoGeo
Messages postés87Date d'inscriptionjeudi 2 février 2012StatutMembreDernière intervention17 avril 2013 31 mai 2011 à 09:40
j'ai enlevé le AND et j'ai toujours des erreur, et jack justement FIELDMES est le nom d'une de mes tables, en fait j'utilise plusieurs table:
FIELDMES
LOCATIONS
TYPESMESURES
En fait si vous voulez dans ma table FIELDMES j'ai la clé de la localisation et du type de mesure, et je veux aller chercher le nom de la localisation qui est dans la table location (idem pour le type de mesure)
CAr en obtenant le nom et le type de mesure du capteur, je peux obtenir le champs FM_FIELD.
exemple: mon capteur de TEMPERATURE à l emplacement salle_blanche, a le FM_FIELD=EnvCrTemp1
J'espere que ca pourra plus vous permettre de m'aider =)
cs_jopop
Messages postés1540Date d'inscriptionlundi 26 mai 2003StatutMembreDernière intervention 1 août 201312 31 mai 2011 à 09:52
Re,
et si t'essayais une écriture plus "old school" ?
Je sais que sebmafate n'aime pas cette syntaxe, mais ça se tente.
Pour les INNER JOIN multiples il faut apparemment les imbriquer dans certains SGBD, et comme c'est suant à écrire je te file plutôt cette version ^^ :
SELECT F.FM_CLE, F.FM_FIELD
FROM FIELDMES F,
TYPESMESURES T,
LOCATIONS L
WHERE F.FM_TM_CLE = T.TM_CLE
AND F.FM_LO_CLE = L.LO_CLE
AND T.TM_NAME = xxx
AND L.LO_NAME = yyy
InfoGeo
Messages postés87Date d'inscriptionjeudi 2 février 2012StatutMembreDernière intervention17 avril 2013 31 mai 2011 à 09:56
Merci a tous d'avoir essayer de m'aider mais je suis en stage, et mon maitre de stage est arrivé ( il était pas la hier ^^). Et en fait il m a tout simplement fait aller sur Access et la dans requete il a mis mes 3 tables avec les jointures existante et le langage SQL s'est mis tout seul trop bien XDDD