Office: (Office 2007) Syntaxfehler in From-Klausel

Helfe beim Thema Syntaxfehler in From-Klausel in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hallo EBS17. 1. So funktioniert es ohne Makro einwandfrei. SELECT B.[Bestell-Nr], B.[Kunden-Code], B.Bestelldatum, B.Lieferdatum, B.Versanddatum,... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von hjs, 16. November 2011.

  1. Syntaxfehler in From-Klausel


    Hallo EBS17.

    1. So funktioniert es ohne Makro einwandfrei.

    SELECT B.[Bestell-Nr], B.[Kunden-Code], B.Bestelldatum, B.Lieferdatum, B.Versanddatum, B.Empfänger, B.Straße, B.PLZ, B.Ort, B.Region, B.Bestimmungsland, B.Bemerkung, B.Verband, B.Rabatt, B.Liefrech, K.Firma, K.Straße, K.Ort, K.Region, K.PLZ, K.Land, K.Verband, K.Rabatt FROM [c:\users\hjs\documents\vertrieb\xtest\neuer ordner\Kunden-rsha.accdb].kunden AS K INNER JOIN Bestellungen AS B ON K.[Kunden-Code] = B.[Kunden-Code] ORDER BY B.[Bestell-Nr] DESC;

    2. Die Problematik, nach neuem Einlesen in den SQL-Modus, bleibt bestehen. Die eckigen Klammern werden auch hierbei in runde Klammern umgewandelt und beim neuen Speichern ohne Änderung dieser Klammern und dem fehlendem Punkt wird ein Fehler angezeigt.

    SELECT B.[Bestell-Nr], B.[Kunden-Code], B.Bestelldatum, B.Lieferdatum, B.Versanddatum, B.Empfänger, B.Straße, B.PLZ, B.Ort, B.Region, B.Bestimmungsland, B.Bemerkung, B.Verband, B.Rabatt, B.Liefrech, K.Firma, K.Straße, K.Ort, K.Region, K.PLZ, K.Land, K.Verband, K.Rabatt FROM (c:\users\hjs\documents\vertrieb\xtest\neuer ordner\Kunden-rsha.accdb) kunden AS K INNER JOIN Bestellungen AS B ON K.[Kunden-Code] = B.[Kunden-Code] ORDER BY B.[Bestell-Nr] DESC;

    3. Nach dem Löschen der Beziehung Kunden sowie der Tabelle Kunden in der aktuellen DB, ist das Formulars immer noch grau nach Aufruf mittels Makro.
    Grundsätzlich ist die Alias-Definition sehr elegant und funktiionell.

    Gruß
    hjs
     
  2. Das halte ich für einen Bug des Abfrageeditors. Ich kenne das umgedreht: Wenn man eine Unterabfrage mit einer weiteren Tabelle joint, werden deren umgebebende runde Klammern in eckige gewandelt mit einem Punkt nach der schließenden Klammer.

    Sicherer Ausweg: Den Abfrageeditor an das funktionierende SQL-Statement gar nicht mehr ranlassen. Das erreicht man z.B. dadurch, dass man das SQL-Statement in VBA übernimmt und von da ausführt bzw. verwendet.
    Was macht Dein Makro genau? Warum verwendest Du überhaupt Makros? VBA ist die bessere Alternative (und damit kennen sich Entwickler besser aus, und die Forumsteilnehmer entwickeln in der Mehrheit).
     
  3. Hallo EBS17.

    Das Abbild des Makros findest Du in #11 als Anhang. Das Makro dient nur dazu, das Formular BestellungKC ohne Daten zu öffnen, damit ich eine Bestellung aufgeben kann.

    Zu Deiner Frage warum ich nicht VBA benutze:
    Ich kenne mich in VBA-Programmierung nicht aus!

    Zur Lösung meines Problemes habe ich folgende Idee:
    1. die Kundendatei bleibt mit allen notwendigen Daten erhalten inclusive Einbindung aller Beziehungen.
    2. Es wird eine Verknüpfung auf die externe Kundentabelle erstellt.
    3. Beim Start der aktuellen DB muß ein Update der internen Kundendatei automatisch erfolen.

    Da ich alleine mit dieser Anwendung arbeite könnte ein solches Verfahren funktionieren.

    Was hälst Du von dieser Idee?

    Grüße aus dem Saarland
    hjs
     
  4. Syntaxfehler in From-Klausel

    Was heißt Update genau? Bisher hattest Du Auswahlabfragen.

    Erwischt. Ich verwende (wie die meisten hier) keine Access-Makros und kann daher keine schlüssigen Aussagen dazu machen.
     
  5. Hallo
    was Bedeutet in Deinem Makro die Bedingung 1 = 0 ? *confused.gif*
    so weit ich sehe kannst Du alles was Du in diesem Makro machst mit VBA direkt "unter beim klicken" erledigen

    Lies einmal in der OH (Onlie Hilfe)
    alles zu
    DoCmd.OpenForm
    OpenForm
    hier ein Muster:
    Code:
    dazu kann man auch den Asistenten verwenden *wink.gif*
     
    Lanz Rudolf, 23. November 2011
    #20
  6. Hallo Lanz Rudolf.

    Ich war ein paar Tage unterwegs.

    Zu meinem Makro:
    Bedingung 1=0 bedeutet, das keine Felder beim Öffnen des Formulars mit Daten gefüllt werden,
    sodaß ich direkt eine Kundenauswahl treffen kann. Die dazugehörigen Felder werden danach automatisch gefüllt.

    Hallo EBS17

    Zum Updaten:
    Unter Update verstehe ich in diesem Fall, das beim Öffnen der Datenbank automatisch ein Abgleich der in dieser DB vorhandenen Kundendaten erfolgt (alle Änderungen der Stammdaten werden eingelesen), anschließend werden alle Neukunden, so vorhanden, eingelesen.

    Grüße aus dem Saarland
    hjs
     
  7. Code:
     
  8. Syntaxfehler in From-Klausel

    Hallo Eberhard.

    Ich weiß noch nicht genau was Du mit diesem Code bewirken willst.
    Soweit ich es verstehe, sieht es so aus als ob Du die Kundendaten mit dem 1. Teil Deines Codes überarbeiten willst und mit dem 2. Teil neue Kunden einfügen willst.

    Wenn das so ist, kann ich die Programmzeilen entsprechend abändern, denn die Daten sollen innerhalb der existierenden Kundentabelle eingefügt werden.

    Bitte gebe mir Bescheid ob ich das richtig verstanden habe.
    Vielen Dank auch für die Mühe die Du Dir bis hier hin gemacht hast.

    Grüße aus dem Saarland
    Hans-Jörg
     
  9. Ja genau, so hattest Du das Aktualisieren beschrieben, und ich sehe das genau so.

    An Bezeichnungen für Tabellen und Felder hatte ich das oben verwendete benutzt. Falls das bei Dir aber anders ist, kannst und musst Du das natürlich abändern.
     
  10. Hallo Eberhard.

    Das wäre dann genau die Funktion, die ich mir vorstelle.
    Allerdings habe ich Probleme mit dem Einbinden dieser Funktion.
    Ich möchte sie beim Hochfahren des Hauptformulars (Beim Laden) einfügen.
    Ich kenne mich mit Funktionen und Sub's nicht aus.
    Ich habe den Code in einen aktuellen Modul unter neuem Namen geschrieben. Ob das richtig ist weiß ich nicht. Wenn ja dann schreibe mir bitte wie ich diese Funktion dann in das Hauptformular einfüge.

    Vielen Dank im Voraus.

    Hans-Jörg
     
  11. Lege eine Ereignisprozedur an, und zwar "Beim Öffnen" für Dein gewünschtes Formular und lege dort den Funktionsaufruf hinein:
    Code:
    Allerdings solltest Du dann ein mehrfaches Hochfahren des Formulars oder zumindest ein mehrfaches Ausführen der Funktion vermeiden, da durch das Aktualisieren zumindest Zeit verbraucht wird und so das Formularöffnen verzögert.

    //Edit:
    Oben in der Aktualisierungsabfrage fehlt ein Leerzeichen nach dem INNER JOIN.
     
  12. Hallo Eberhard.

    Die Funktion klappt hervorragend.

    Ich habe sie nur etwas beim Insert abgeändert, da Dein Code nicht ganz funktioniert hat.

    ' neue Datensätze aus Kunden-rsha einfügen
    Dim sWhere As String
    sWhere = " WHERE K.Lieferant='I' AND K.[Kunden-Code] not in (SELECT B.[Kunden-Code]
    FROM Kunden3 as B)"

    sSQL = "insert into kunden3 ([Kunden-Code], Firma)" & " SELECT K.[Kunden-Code], K.Firma" &
    " From " & sTable & " AS K" & sWhere
    db.Execute sSQL, dbFailOnError
    Set db = Nothing
    End Function

    Ich habe nun noch ein kleines Problem, vieleicht kannst Du mir da auch einen Rat geben.

    Die aktuellen Datenbanken befinden sich auf zwei Rechner, einmal unter XP (zur Entwicklung) die anderen unter WIN7.

    Ich habe nun das Problem, das ich immer die Pfadnamen anpassen muß wenn ich eine DB kopiere. Gibt es unter beiden Windowsversionen die Möglichkeit für den Pfadnamen eine Umgebungsvariable oder etwas ähnliches, zu setzen, die den Pfad beinhaltet?

    Ansonsten nochmals vielen Dank für Deine Mühe!!

    Grüße aus dem Saarland
    Hans-Jörg
     
  13. Syntaxfehler in From-Klausel

    Natürlich kann man Umgebungsvariablen einsetzen.

    Im einfachen Fall verwendet man aber relative Pfade (z.B. beide DB´s im gleichen Verzeichnis), weil ja die aktive Anwendung den Ort kennt, an dem sie liegt:
    Code:
     
  14. Hallo eberhard.

    Ich hoffe es ist das letzte mal, das ich Dich belästige.
    'Currentproject.path' funktioniert einwandfrei. Leider stehen die DB's nicht im selben Verzeichnis.
    'c:\users\hjs\documents\Vertrieb' möchte ich als Teilstring mittels CurrentProject.Path auslesen, wobei 'Vertrieb' immer am Ende steht. Der rest des Pfades würde ich dann Manuell einfügen. Leider bin ich nicht in der Lage den String sTable so zu zerlegen und zu ergänzen wie es notwendig ist.

    Vieleicht kannst Du mir ein letztes mal helfen?

    Grüße aus dem Saarland
    Hans-Jörg
     
  15. Diese Formulierung verstehe ich nicht. CurrentProject.Path gibt den Pfad aus, wo die aufrufende DB liegt, nicht, was man will.

    Wie lautet bei Dir der ermittelte String, und wie soll das Ergebnis lauten?

    Hinweis:
    Code:
    Dies ist doch nur eine Stringvariable, die die Tabellenbezeichnung inklusive der Herkunftsdatenbank zzgl. der eckigen Klammern aufnimmt, um in den Abfragen Schreibaufwand zu sparen.
    Den String kann man jetzt aus beliebig ermittelten Teilen zusammen setzen, z.B. mit der angesprochenen Environvariable:
    Code:
     
Thema:

Syntaxfehler in From-Klausel

Die Seite wird geladen...
  1. Syntaxfehler in From-Klausel - Similar Threads - Syntaxfehler From Klausel

  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 JOIN-Operation

    in Microsoft Access Hilfe
    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...
  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