Syntaxfehler im Code

  • VB6

Es gibt 43 Antworten in diesem Thema. Der letzte Beitrag () ist von VisualFreak1985.


    IsNull

    häh? Sieht nach einem VB Befehl aus.

    Der ziemlich richtige SQL Befehl steht weiter oben (where namedesfeldes IS NULL). Lass den blödsinnigen Kram mit 1/1/1900 weg, weil das humbug ist! Ich dachte du hast das im Abfrageeditor auch so gemacht???
    Funktioniert immer noch nicht.

    Wenn ich mit Vb den Recordcount abfrage steht es immer noch bei 51 obwohl es nur 29 Einträge mit beiden Kriterien geben dürfte. Was ist daran falsch?

    Verknüpfe ich mit and falsch?

    Danke und Gruß
    Also ich habe folgendes gemacht:

    If RSTemp.RecordCount > 0 Then
    RSTemp.MoveLast
    RSTemp.MoveFirst
    End If

    Und der zeigt ja nach den Kriterien die im Befehl oben bei Select einbaue die Anzahl der gefundenen Datensätze an und das zeigt er dann 51 an obwohl es nur 29 gibt.

    Also da gibt er mir 22 aus

    Und den SQL String aus dem Abfrageeditor hast du mit Strg-C Strg-V nach VB kopiert?
    Dann funzt es auch. Is' so. Geht nicht anders. Alles andere wäre ein definitiver Beweis für die Existenz Gottes und Douglas Adams hat uns ja gezeigt, wohin sowas führt.

    EDIT:
    nightingale I hör' you trapsen ...
    support.microsoft.com/kb/207652/en-us

    Hast du dir die ausgewählten Datensätze jemals anzeigen lassen (und sei es nur im Debug.Modus per Debug.print), oder nur mit RecordCount gezählt?

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „picoflop“ ()

    Das ist der Code der in VB kommt:

    Set RSTemp = DBBaustelle.OpenRecordset("SELECT * From BMaterial WHERE (((BMaterial.KommissionsNr)='" & A & "') AND ((BMaterial.DatumRücklieferung) Is Null));", dbOpenDynaset)

    Das der Code aus dem Abfrageeditor:

    SELECT BMaterial.KommissionsNr, BMaterial.DatumRücklieferung FROM BMaterial WHERE (((BMaterial.KommissionsNr)="1$68500084$45") AND ((BMaterial.DatumRücklieferung) Is Null));

    Ich habe lediglich die Texte vorne auf die Datenbank Tabelle gesetzt und die Kommisionsnummer durch eine Variable ersetzt und es funzt net.

    Ich drucke das ganze hinterher mit Crystal Reports aus aber unter dem RecordCount müsste ja die Anzahl der Datensätzen stehen.

    Danke und Gruß

    _________

    Ich habe es nur mit RecordCount gezählt.

    Wie kann ich mir denn die Datensätzen Anzeigen?

    Edit by Agent: Keine Doppelposts! Es gibt eine Bearbeitenfunktion!

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Agent“ ()

    Mit ner Schleife und MoveNext
    Vorher am besten ein rsCount erzeugen mit
    SELECT COUNT(*) FROM usw usw
    Der liefert IMMER genau einen Datensatz mit genau einem Feld zurück. Nämlich die Anzahl der Datensätze auf die die Bedingung zutrifft.
    wie wäre es wenn ihr mal richtig auf die abfrage achtet ;)

    das steht in VB:

    Set RSTemp = DBBaustelle.OpenRecordset("SELECT * From BMaterial WHERE (((BMaterial.KommissionsNr)='" & A & "') AND ((BMaterial.DatumRücklieferung) Is Null));", dbOpenDynaset)

    und das im abfrageeditor:

    SELECT BMaterial.KommissionsNr, BMaterial.DatumRücklieferung FROM BMaterial WHERE (((BMaterial.KommissionsNr)="1$68500084$45") AND ((BMaterial.DatumRücklieferung) Is Null));

    klingelts ? ;)
    Grüße Manu

    Was Gott dem Menschen erspart hat, kann der Computer.
    Billy ©, (*1932), Schweizer Aphoristiker
    Quelle: www.Aphorismen.de

    klingelts ?

    Nein. Die Abfrage liefert in beiden Fällen Datensätze zurück, in denen das Feld "Datumrücklieferung" den Wert DBNull hat. Auf die Anzahl der Datensätze hat das aber keinen Einfluss.

    @Freak:
    Kommissionsnummer ist keine Zahl, sondern ein String. Also muss das in einfache Hochkommas.
    Also das ganze funzt hinten und vorne nicht er findet immer noch die 50Datensätze und das sind die unter des ersten Kriteriums fallen nämlich mit der Kommisionsnummer vorhandenen Datensätzen aber danach wird nichts mehr berücksichtig also ich habe keine Ahnung wo der Fehler liegt?
    hihi stimmt da hab ich mir ja selbst mal ein ei gelegt das waren ja nur die spalten :thumbsup:

    ich überlege aber noch ob wirklich semikolon ans ende einer sql anweisung kommt ??
    Grüße Manu

    Was Gott dem Menschen erspart hat, kann der Computer.
    Billy ©, (*1932), Schweizer Aphoristiker
    Quelle: www.Aphorismen.de

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Manü“ ()