Office: Fehler in Abfrage

Helfe beim Thema Fehler in Abfrage in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Liebe Forumteilnehmende Ich habe mit einer Datenbank ein Problem, das mich nun schon seit einigen Monaten begleitet... Einem Formular habe ich mit... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von beatle99, 22. Mai 2020.

  1. Fehler in Abfrage


    Liebe Forumteilnehmende

    Ich habe mit einer Datenbank ein Problem, das mich nun schon seit einigen Monaten begleitet...

    Einem Formular habe ich mit untenstehendem Code die Datensatzherkunft zugewiesen, was tiptop funktioniert. Nun meint Access alle paar Monate, diese Abfrage in das Feld "Datensatzquelle" im Eigenschaftenblatt des Formulars kopieren zu müssen und dann bringt er die Fehlermeldung, dass die Abfrage fehlerhaft sei, weil eine "(" oder ein "[" oder derartiges fehle... (leider kann ich den Fehler nicht simulieren). Ist meine Abfrage fehlerhaft? Ich kann das Problem nicht finden.... HILFE! (so sad...)

    HERZLICHEN DANK !!!


    Dim dbz As DAO.Database
    Dim rsz As DAO.Recordset
    Dim sqlz As String


    sqlz = "SELECT tblAusgUeberzuegeBerechnung.* From tblAusgUeberzuegeBerechnung " _
    & "WHERE tblAusgUeberzuegeBerechnung.Index = " & dblIndex & "" _
    & "And (tblAusgUeberzuegeBerechnung.DoppelteAusg = False Or tblAusgUeberzuegeBerechnung.DreifacheAusg = True) " _
    & "And ((tblAusgUeberzuegeBerechnung.Anzahl >= 1 Or tblAusgUeberzuegeBerechnung.Anzahl Is Null) " _
    & "Or (tblAusgUeberzuegeBerechnung.AnzahlAusgBezogenArtID >= 1 Or tblAusgUeberzuegeBerechnung.Anzahl Is Null) " _
    & "Or (tblAusgUeberzuegeBerechnung.AnzahlUeberzuegeVorMt >= 1 Or tblAusgUeberzuegeBerechnung.AnzahlUeberzuege >= 1)) " _
    & "ORDER BY tblAusgUeberzuegeBerechnung.Sort ASC, tblAusgUeberzuegeBerechnung.JedeAusg DESC"

    Set dbz = CurrentDb
    Set rsz = db.OpenRecordset(sqlz)

    If rsz.EOF Or rsz.BOF Then
    Exit Sub
    End If


    Set Forms("frmAusgUeberzuegeBerechnung").Recordset = rsz

    :)
     
    beatle99, 22. Mai 2020
    #1
  2. Code:
    Da dürfte ein Leerzeichen vor dem AND fehlen.

    Weiterhin, wenn die Variable eine Zahl mit Dezimalstellen enthält, müsste die sql-gerecht formatiert werden => Str.
     
    ebs17, 24. Mai 2020
    #2
  3. Hallo Eberhard

    Vielen Dank!

    Das mit dem [Space] vor dem "AND" habe ich auch schon gedacht, habe es damals aber verworfen, weil es ja irgendwie funktioniert hat. Habe es nun auf Deinen Rat angepasst.

    Die Variable wird eigentlich vorher schon auf Ganzzahl "gemacht", habe ich jetzt aber sicherheitshalber noch in String umgewandelt.

    Ich hoffe nun, dass ich keinen Ärger mehr damit habe.
    Ev. findet ja noch jemand einen weiteren Fehler...

    Beste Grüsse, Beat
     
    beatle99, 24. Mai 2020
    #3
  4. Fehler in Abfrage

    ...und, Eberhard, weiss Du wie ich simuliere, dass er die Abfrage ins Eigenschaftsfenser vom Formular schreibt (um dann später nicht doch noch in den Hammer zu laufen).

    Besten Gruss, Beat
     
    beatle99, 24. Mai 2020
    #4
  5. Hallo,
    Du sollst ja keinen String aus der Zahl machen, das hat Ebs auch nicht geschrieben.
    Die Zahl müsste nur mit der Str Funktion behandelt werden, wenn es eine Zahl mit Komma wäre.

    Der SQL String geht auch kürzer.
    Außerdem würde ich wegen der Übersichtlichkeit die Leerzeichen immer vor die SQL Befehle setzen.
    Code:
    Bei eindeutigen Feldnamen (was bei eine Tabelle immer der Fall ist), kann auch auf den Tabellennamen vor den Feldnamen verzichtet werden.
     
    gpswanderer, 24. Mai 2020
    #5
  6. Hallo Klaus

    Danke!
    Meinst Du mit der Str Funktion:
    dblIndex = str(dblIndex)
    ?

    Gruss, Beat
     
    beatle99, 24. Mai 2020
    #6
  7. Hier gibts einige Grundlagen, was Variablen in SQL anbelangt:

    https://codekabinett.com/rdumps.php?...tring-tutorial
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
    markusxy, 24. Mai 2020
    #7
  8. Fehler in Abfrage

    Access ist ein weit weniger eigenständig lebender Organismus als man denken mag. Erscheinungen sind viel öfter auf User-/Entwickler-Interaktion zurückzuführen. Wenn man sich also mehr bewusst macht, was man tut, ist man einige Schritte weiter.

    Ein Formular ist eine Klasse, also quasi eine Vorlage für eine Instanz (Kopie dieser Vorlage), die man verwenden wird.
    Änderungen, die an dieser Vorlage dauerhaft verbleiben sollen, müssen in der Entwurfsansicht gespeichert werden. Also müsste man im Überblick haben, wann und womit man sein Formular selber speichert.

    Wenn man wie beschrieben eine Eigenschaft wie die Datenherkunft zur Laufzeit ändert, kann man zur Sicherstellung dafür sorgen, dass diese Eigenschaft beim Formularöffnen definiert eingestellt ist oder dies zusätzlich im Openevent sichergestellt wird (z.B. Öffnen mit leerem Recordset => WHERE 1 = 0 ) und dann danach bei Bedarf die gefragte Datenherkunft nacheinstellt.

    Was bedeutet das genau?
    Eine Ganzzahl würde man doch einfach so hernehmen können, ohne erst eine Weltreise einzuschieben. Das hätte auch mit so Sachen wie direkt, einfach, performant zu tun. Ein Präfix der Variablen, der auf Double hinweist, dient dann nicht einer guten Lesbarkeit. So kann man aber seine eigene Verwirrung auf weitere ausweiten.
     
    ebs17, 24. Mai 2020
    #8
  9. Super, vielen Dank. Damit scheinen alle Probleme gelöst.
    PS: dblIndex erhält zuerst eine Gleitkommazahl, welche weiterverarbeitet wird und erst in einem späteren Schritt wird der Nachkommabereich gelöscht.
    Gruss, Beat
     
    beatle99, 25. Mai 2020
    #9
  10. Hallo,
    daher sind diese Präfixe vor Feldnamen völlig überflüssig.
    Bei einer ggf. notwendigen Datentypänderung (und damit verbundener Änderung des Präfix) machen die nur einen Haufen Arbeit.

    Auch die Kürzel (tbl..., frm..., rpt...) halte ich für verzichtbar, auch wenn ich diese gelegentlich verwende.
    Nur bei Abfragen setze ich ein qry davor, um diese direkt ohne nachzudenken von Tabellen unterscheiden zu können.
     
    gpswanderer, 25. Mai 2020
    #10
Thema:

Fehler in Abfrage

Die Seite wird geladen...
  1. Fehler in Abfrage - Similar Threads - Fehler Abfrage

  2. Fehler in Abfrage "abfangen"

    in Microsoft Access Hilfe
    Fehler in Abfrage "abfangen": Hallo zusammen, ich habe eine Abfrage, die bei Datensätzen zu denen kein Link zu einer bestimmten Abfrage existiert, einen Fehler ausgibt. (Ich hoffe das Bild m Anhang hilft das Problem zu...
  3. #Fehler in Abfrage

    in Microsoft Access Hilfe
    #Fehler in Abfrage: Hallo zusammen, ich komme nicht mehr weiter. Bei folgendem Ausschnitt aus meiner Abfage bekomme ich immer "#Fehler" angezeigt wenn der Wert des Feldes Jan in der Tabelle Energiebudget2013 = NULL...
  4. In Abfrage #Fehler abfangen

    in Microsoft Access Hilfe
    In Abfrage #Fehler abfangen: Hi, also ich habe ein Problem in einer Abfrage in Access 2002. Ich habe in der Tabelle ein Feld das als Text werte aufnimmt, und die ich aber an dieser stelle doch als date brauche. In meiner...
  5. Access-Fehler: „Abfrage ist fehlerhaft“

    in Microsoft Access Tutorials
    Access-Fehler: „Abfrage ist fehlerhaft“: Access-Fehler: „Abfrage ist fehlerhaft“ Access für Microsoft 365 Access 2019 Access 2016 Access 2013 Access 2010 Mehr... Weniger...
  6. SQL: Fehler in der Abfrage

    in Microsoft Access Hilfe
    SQL: Fehler in der Abfrage: Hallo Leute, ich bin gerade am basteln einer SQL Abfrage, bin aber noch ein ziemlicher Neuling. Der Aufbau ist grob SELECT A.b, B.c, D.e, F.g FROM F RIGHT JOIN D RIGHT JOIN B RIGHT JOIN A ON...
  7. Access 2010 - Fehler bei Spaltenvergleich in Abfrage

    in Microsoft Access Hilfe
    Access 2010 - Fehler bei Spaltenvergleich in Abfrage: Hallo erst mal, ich habe ein Problem mit Access 2010. Und zwar wenn ich in einer Abfrage zwei Spalten miteinander vergleiche, dann erhalte ich ein flasches Ergebnis, wenn eine der Zellen leer...
  8. Access Abfragen führen zu Crash oder Fehler

    in Microsoft Access Hilfe
    Access Abfragen führen zu Crash oder Fehler: Hallo, ich bin relativ neu in diesem Gebiet und probiere mich zzt. an einer kleinen Datenbank. Ich habe ein Endlosformular mit 2 Ja/Nein-Feldern, von welchen ich jeweils die Summe der "Ja"...
  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