SQL SQL Befehl von Access nach MySQL

TheobaldTiger

Newbie
Registriert
Feb. 2009
Beiträge
3
Hallo zusammen,

ich bin neu in diesaem Forum und habe eine Frage:

Ich habe eine MySQL Datenbank (5.0) mit einem Access 2003 Frontend. Ich möchte aus einem Formular eine Abfrage starten, die sich auf ein Feld dieses Formulars bezieht. Ich bekomme immer Fehlermeldungen, daß die Syntax des "WHERE" nicht stimmt. Hier ist der Befehl (Ohne die WHERE-Bedingung funktioniert er!):

SQL = "SELECT * " & _
"FROM (((t01_pcr_data LEFT JOIN t12_notes_creation ON t01_pcr_data.t01_Notes_Creation_ID = t12_notes_creation.t12_Notes_Creation_ID) LEFT JOIN t13_notes_closed ON t01_pcr_data.t01_Notes_Closed_ID = t13_notes_closed.t13_Notes_Closed_ID) LEFT JOIN t10_part_information ON t01_pcr_data.t01_Part_Information_ID = t10_part_information.t10_Part_Info_ID) LEFT JOIN t11_project_information ON t01_pcr_data.t01_Project_Info_ID = t11_project_information.t11_Project_Information_ID " & _
"WHERE t01_pcr_data.t01_PCR_ID = Me.t01_PCR_ID;"


Kann mir vielleicht jemand einen Tipp geben?

Danke und Gruß,
Thomas
 
Warum machst du das ganze überhaupt unter Hochkommas? Denn ich vermute, dass die bei der WHERE clausel stören.

Code:
SQL = SELECT *  FROM (((t01_pcr_data LEFT JOIN t12_notes_creation 
ON t01_pcr_data.t01_Notes_Creation_ID = t12_notes_creation.t12_Notes_Creation_ID)
LEFT JOIN t13_notes_closed ON t01_pcr_data.t01_Notes_Closed_ID = t13_notes_closed.t13_Notes_Closed_ID)
LEFT JOIN t10_part_information ON t01_pcr_data.t01_Part_Information_ID = t10_part_information.t10_Part_Info_ID)
LEFT JOIN t11_project_information ON t01_pcr_data.t01_Project_Info_ID = t11_project_information.t11_Project_Information_ID
WHERE t01_pcr_data.t01_PCR_ID = Me.t01_PCR_ID;

funktioniert das ganze so? Aber was macht dieses "Me."?
 
und noch ne kurze Frage... darf er nach dem Join überhaupt "t01_pcr_data." schreiben in der WHERE-Anweisung?
 
Hi, danke für Deine Antwort. Das Me bezieht sich auf das aktuell geladene Formular. Dort ist eine Feld, nach dessen Wert das Recordset selektiert werden soll.

Ich hab's mal ohne probiert. Hat aber nicht geholfen.

Hallo, danke für Deine Antwort. Aber so funktioniert es auch nicht. Da gibt es direkt eine Fehlermeldung von VBA: Compile error
Und das Me bezieht sich auf das Access-Formular, aus dem ich den Code starte und in dem das Feld ist, auf das sich der Select bezieht.
 
Zuletzt bearbeitet von einem Moderator: (3-fachpost)
probier mal einfach "WHERE 1 = 1 " (falls das so direkt in mysql/access geht) ... somit findest du heraus, ob direkt das WHERE stört oder die bedingung selbst. vllt um den letzen LEFT JOIN auch noch eine klammer drum

ich gehe mal davon aus, du hast bereits alle namen doppelt überprüft!
wenn du einen zeilenumbruch machst, hast du schon richtig erkannt, kommt hinten & _ dran, dein sourcecode deutet aber darauf hin, dass du entweder einen riesen monitor hast oder zeilen automatisch umbrechen lässt (am besten mal ändern, dann bekommt man besseren überblick)

PS: es gibt hier übrigens den tag [.CODE][./CODE] (ohne punkte) -> besser lesbar usw etc ...
 
Zuletzt bearbeitet:
Für mich sieht das erstmal ganz klar aus. Woher soll SQL wissen, was Me.t01_PCR_ID ist?
Das müsstest du aus den Hochkommas rausnehmen.
Code:
SQL = "SELECT * " & _
 "FROM (((t01_pcr_data LEFT JOIN t12_notes_creation ON t01_pcr_data.t01_Notes_Creation_ID =  " & _
"t12_notes_creation.t12_Notes_Creation_ID) LEFT JOIN t13_notes_closed ON t01_pcr_data.t01_Notes_Closed_ID =  " & _
"t13_notes_closed.t13_Notes_Closed_ID) LEFT JOIN t10_part_information ON t01_pcr_data.t01_Part_Information_ID =  " & _
"t10_part_information.t10_Part_Info_ID) LEFT JOIN t11_project_information ON t01_pcr_data.t01_Project_Info_ID =  " & _
"t11_project_information.t11_Project_Information_ID WHERE t01_pcr_data.t01_PCR_ID = " + Me.t01_PCR_ID + ";"
 
Danke für Deine Antwort! Genau das ist die Lösung.

Danke für Deine Tipps. Lösung des Problems siehe unten. Me.xxx muß aus den Hochkommas rausgenommen werden.
 
Zuletzt bearbeitet von einem Moderator: (Doppelpost zusammengefügt - bitte Editbutton benutzen!)
Zurück
Oben