Office: (Office 2010) Syntaxfehler in JOIN-Operation

Helfe beim Thema Syntaxfehler in JOIN-Operation in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Guten Tag, Ich habe mal wieder ein kleines Problem, bei dem Google mir leider nicht weiterhelfen konnte. Vorweg: ich habe nach der Vorlage CreaKombi... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von Cute_Hamster, 6. Juli 2014.

  1. Syntaxfehler in JOIN-Operation


    Guten Tag,

    Ich habe mal wieder ein kleines Problem, bei dem Google mir leider nicht weiterhelfen konnte.

    Vorweg: ich habe nach der Vorlage CreaKombi gearbeitet, die ich im Anhang mit hochgeladen habe. Dort habe ich das Beispiel "Auswahl nach 2 abhängige Kombifelder im Endlosformular" als Grundlage genommen.

    Das Formular für das ich dies Anwenden will heißt "User" (nur für testzwecke ohne "frm_" davor) ein Bild von diesem Formular findet sich auch im Anhang.

    der von mir geänderte Code:

    Code:
    Wenn ich nun mein Formular öffne und aus dem "Cmb_Abteilungen" einen Eintrag auswähle bekomme ich die Meldung:

    3135 Syntaxfehler in JOIN-Operation.

    Ich vermute also, dass das Problem in den JOIN Befehlen liegt, kann dort allerdings nichts entdecken (was aber gut an meiner Unwissenheit liegen kann)

    Kann mir hier jemand helfen?

    Vielen Dank schon mal im Vorraus
    mfg
    Hamster

    P.S. hab ganz vergessen, was das ganze tun soll. das "cmb_Arbeitsgruppe" soll nur die Einträge anzeigen die zu der in "cmb_Abteilung" gewählten Abteilung passen. darunter sollen im Endlos Formular dann alle User aus dem gewählten Bereich aufgelistet werden. mit diesen Einträgen will ich dann später weiter arbeiten (man soll darauf Klicken können um eine Art Visitenkarte aufzurufen) aber das ist ein späteres Thema.

    :)
     
    Cute_Hamster, 6. Juli 2014
    #1
  2. Moin,
    zunächst mal sehe ich da einen Tippfehler:
    Code:
    Für alles weitere: am besten SQL in String schreiben, per debug.print ausgeben und im Abfrageentwurf testen.
    maike
     
    maikek, 7. Juli 2014
    #2
  3. *frown.gif* Schande über mich... Tausend mal drauf geguckt und nichts gesehen.

    nach der Korrektur des Schreibfehlers kommt auch kein Syntaxfehler mehr.

    Allerdings kommt nun eine Andere Meldung:

    Laufzeitfehler '2113':
    Sie haben einen Wert eingegeben, der für dieses Feld nicht gültig ist.

    beim debuggen wird folgendes markiert:
    Code:
    Dies passiert, sobald ich einen Eintrag im ersten Kombifeld auswähle.

    Ich kann mir vorstellen, dass dies dadurch zustande kommt, dass nicht alle Datensätze in der User Tabelle auch einen Eintrag für das Feld "Abteilung" in diesem Formular haben.

    Allerdings wundert mich daran, dass er dennoch die Einträge zu Filtern scheint, jedoch kann ich nicht erkennen nach was er dort Filtert, denn die Einträge die mir während dieser Meldung angezeigt werden sind nicht die User die in der gewählten Abteilung sind.

    Vielen Dank schon mal für die erste Hilfe, hoffe du hast auch für dieses Problem eine Lösung (oder jemand anderes natürlich auch ^^)

    mfg
    Hamster
     
    Cute_Hamster, 7. Juli 2014
    #3
  4. Syntaxfehler in JOIN-Operation

    Code:
    Hier weist du der ersten, gebundenen Spalte des Kombis (vermutlich eine ID) den Wert des Feldes Abteilung zu (vermutlich ein Text).

    Den Fall, dass Abteilung keinen Wert hat, kannst du ja prüfen:
    If not isnull(Me.Abteilung) bzw. If len(Me.Abteilung)>0 oder ... je nachdem, was dort für Werte vorkommen.

    maike
     
    maikek, 7. Juli 2014
    #4
  5. Moin,

    habe jetzt die beiden ID Felder unsichtbar mit in den Detailbereich gelegt und den absatz geändert:

    Code:
    Nun sieht das erstmal schon recht gut aus. wenn ich das Formular öffne, werden nur die User angezeigt, die auch einen Eintrag in Abteilungen haben (die haben dann auch automatisch einen Eintrag in Arbeitsgruppen).
    Die beiden kombifelder zeigen wie gewünscht die einträge des ersten Datensatzes an.

    Wähle ich nun im "cmb_Abteilungen" einen Eintrag aus (einen bei dem ich weiß, dass er auch Nutzer enthält) sieht mein Formular aus, wie im angehängten Screenshot.

    Der eine Angezeigte User ist richtig. es wird aber leider nur der richtige Name angezeigt und nicht die korrekte Abteilung / Arbeitsgruppe.
    Die anderen Einträge dort sind mir völlig unklar (es gibt in der Datenbank momentan nur diesen einen User der in "KL" ist)

    es kommt natürlich zu einem Fehler, weil das "cmb_arbeitsgruppe" nicht auf einen richtigen Wert gesetzt werden kann (weil in dem entsprechenden Feld ja "#Name?" steht)

    ich denke mal, dass sich dieses Problem aber von alleine löst, sobald nur noch die richtigen User angezeigt werden.

    hast du eine Idee, woher diese anderen Einträge kommen? und warum auch beim richtigen Eintrag keine Abteilung und keine Arbeitsgruppe steht?

    mfg
    Hamster
     
    Cute_Hamster, 8. Juli 2014
    #5
  6. Ich weiß ja nicht, was du da treibst.
    Lass dir per Debug.print die SQL-Strings ausgeben und teste sie im Abfrageentwurf.
    maike
     
    maikek, 8. Juli 2014
    #6
  7. ich glaub dafür bin ich grade einfach zu dumm...

    soweit mir google dazu jetzt was sagen konnte mache ich das wie folgt:
    - ich erstelle ein Modul
    - ich kopiere meinen Code (oder Teile davon) in dieses Modul
    - ich ersetze "me" durch genaue angaben (z.B. "Forms!User")
    - ich schreibe "Debug.print" ans Ende, vor dem "End sub"
    - ich lasse mir ein Direktfenster anzeigen
    - ich klicke in die Prozedur und anschließend auf den "play" button.

    dann fragt er mich in meinem Fall nach "ArbGrp_ID_F" (was ja ok ist, weil er diese info ja sonst aus dem formular bekommt), ich geb ihm eine und er gibt keine weitere Meldung aus, aber der Direktbereich bleibt ebenfalls leer.

    Code:
    Das habe ich in dem Modul gehabt (da ich davon ausgehe, das hier der Fehler ist, da ja falsche Datensätze geladen werden und dies der Teil ist in dem die User Einträge gefiltert werden...

    Vermutlich ist das alles grundwissen, aber ich konnte bisher nicht finden wie ich das richtig mache.

    wäre super wenn du dir die Zeit nimmst, mir kurz zu sagen, wie ich meinen code so teste, dass debug.print mir was ausgibt oder mir sagst wie ich auf Google etwas finde, denn anscheinend suche ich dort nach falschen stichwörtern...

    vielen Dank
    mfg
    Hamster
     
    Cute_Hamster, 8. Juli 2014
    #7
  8. Syntaxfehler in JOIN-Operation

    Nimm doch einfach den bestehenden Code und setze das Debug.Print hinter die Generierung der SQL-Anweisung:
    Code:
    Setz einen Haltepunkt (Leiste ganz links im Formular-Codemodul mit der Maus vor die Zeile klicken, brauner Punkt erscheint) vor Me.Recordsource =
    und wähle was im Kombi cmb_Abteilung aus.
    Das Direktfenster machst du sichtbar mit Strg + G.
    maike
     
    maikek, 8. Juli 2014
    #8
  9. Vielen Dank für deine nahezu grenzenlose Geduld,

    habe das wie von dir beschrieben gemacht.
    Im Direktbereich wird mir dann aber nur der Text angezeigt, der im Code bereits steht:

    Code:
    da müsste doch aber eigentlich ein Wert oder soetwas stehen oder nicht?

    mfg
    Hamster
     
    Cute_Hamster, 8. Juli 2014
    #9
  10. Hallo,

    Öffne eine neue Abfrage, wähle keine Tabelle/Abfrage aus. Klicke links oben auf SQL und kopiere da den String rein. Schau was passiert, bzw im GUI wie die Kriterien usw. aussehen.
     
    el_gomero, 8. Juli 2014
    #10
  11. Ja, genau. Zeig doch mal, wie du das Debug.Print eingebaut hast.
    maike
     
    maikek, 8. Juli 2014
    #11
  12. lesbar formatiert sieht dein Statement so aus:

    Code:
    Stimmt der erste Left join mit Abt_ID zu Abt_ID_F der gleichen Tabelle?
     
    el_gomero, 8. Juli 2014
    #12
  13. Syntaxfehler in JOIN-Operation

    Code:
    habe mittlerweile rausgefunden, dass die Probleme daher kommen, dass das "cmb_Arbeitsgruppe" keine veränderte Datenherkunft bekommt. es enthält zu jedem Zeitpunkt alle Arbeitsgruppen.

    @el_gomero
    hab deine Schritte befolgt, nach dem kopieren auf 'Ausführen' geklickt. dann werde ich nach "Formulare!User!cmb_Abteilung" gefragt. dort habe ich "4" eingegeben (das ist die ID einer Abteilung in der sich ein User befindet)

    Das Ergebnis habe ich angehängt. was dort nicht drauf ist:
    weiter hinten kommen die Spalten: "Abteilung_neu_F" und "Abt_ID"
    in allen Datensätzen steht bei der "Abt_ID" die "4" drinn. bei dem einen richtigen Datensatz steht auch bei "Abteilung_neu_F" ein Wert.

    mir ist aber weiterhin unklar, was das für leere Datensätze sind die er dort anzeigt und bei denen er am ende die "Abt_ID" Einträgt die ich auswähle.


    P.S. (Deine zweite Antwort hab ich erst nach meinem Post gesehen)

    Wieso in der gleichen tabelle? dort wird doch Abt_ID aus der Tabelle tbl_Abteilungen_neu mit der Abt_ID_F aus der Tabelle tbl_Arbeitsgruppen_neu 'ge-joint'
     
    Cute_Hamster, 8. Juli 2014
    #13
  14. Nachtrag: User findet sich bei den reservierten Wörtern für Access, ist somit als Bezeichner ungeeignet. Zudem gibt es eine Referenz auf ein Form User - heissen etwa Tabelle und Form beide User? Sollte umgehend geändert werden.
     
    el_gomero, 8. Juli 2014
    #14
  15. Das Ereignis Form_Current tritt beim Datensatzwechsel ein. Auf welches Ereignis sollen denn die Daten im Kombifeld gefiltert werden?
     
    el_gomero, 8. Juli 2014
    #15
Thema:

Syntaxfehler in JOIN-Operation

Die Seite wird geladen...
  1. Syntaxfehler in JOIN-Operation - Similar Threads - Syntaxfehler JOIN Operation

  2. Ich sehe den Syntaxfehler nicht!

    in Microsoft Excel Hilfe
    Ich sehe den Syntaxfehler nicht!: Hallo zusammen! Ich sitz schon eine halbe Stunde davor und sehe einfach diesen Syntaxfehler nicht! Sieht ihn jemand von euch? Code: Range("B3").FormulaR1C1 = _...
  3. Syntaxfehler

    in Microsoft Excel Hilfe
    Syntaxfehler: Moin Moin zusammen, ich hab grad Tomaten auf den Augen. Der Akzeptiert die Syntax mit Verweis auf die "AdvancedFiltermethode des Range Objektes konnte nicht ausgeführt werden" Aber irgendwie tue...
  4. Syntaxfehler

    in Microsoft Access Hilfe
    Syntaxfehler: Hallo, auf meinen Befehl erhalte ich die Information "Syntaxfehler im Abfrageausdruck". Beide Felder sind Textfelder. Code: Dim strSQL As String strSQL = "SELECT * FROM abfr_Adressen_3 " strSQL =...
  5. Syntaxfehler in From-Klausel

    in Microsoft Access Hilfe
    Syntaxfehler in From-Klausel: Hallo Leute. Ich habe ein kleines Problem, das ich nicht selbst lösen kann. Ich habe eine Datenbank die unter anderem eine Kundentabelle enthält. Außerdem existiert eine übergeordnete Kunden-DB...
  6. Syntaxfehler in Datum in Abfrageausdruck

    in Microsoft Access Hilfe
    Syntaxfehler in Datum in Abfrageausdruck: Hallo, leider habe ich ein Problem mit einem Datumsfeld in einer Insert Into Anweisung unter Access. Das Feld in das eingefügt wird, ist ein Datumsfeld, und ich übernehme das aktuelle Datum per...
  7. Syntaxfehler in Insert

    in Microsoft Access Hilfe
    Syntaxfehler in Insert: Hallo zusammen, ich habe eben in einem Formular in Access ein weiteres Textfeld hinzugefügt. Leider bekomme ich nun beim Insert die Fehlermeldung Syntaxfehler (fehlender Operator) in...
  8. Syntaxfehler/Fehler beim Kompilieren

    in Microsoft Excel Hilfe
    Syntaxfehler/Fehler beim Kompilieren: Hallo ich habe ein VBA geschrieben, der folgende bewirken soll: Wenn in F14, F16 und G14 ein Wert steht (unabhängig welcher Wert) soll sich G15 entsperren, wenn in G15 das Ergebnis von G14/F14...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden