gibt es einen Befehl der "=" lautet?

  • VB6

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von LaMa5.

    gibt es einen Befehl der "=" lautet?

    Hi leute.

    Ich wollte mal fragen ob es einen Befehl gibt, der "=" oder "IS" lautet.

    Ich benötige nämlich eine SQL Abfrage, die mir alle Datensätze ausfiltert, die zb. die Kunden-ID 1 enthalten.

    ICh hab mir das ganze c.a. so vorgestellt:

    <font size="1">
    ...
    Private Sub txtKundenID_Change()
    SQL = "SELECT Rechnung.[Rechnung-ID], Rechnung.[Kunden-ID], Rechnung.Datum, RechnungProdukte.Menge, Produkte.Produktname FROM Rechnung INNER JOIN (Produkte INNER JOIN RechnungProdukte ON Produkte.[Produkt-ID] = RechnungProdukte.[Produkt-ID]) ON Rechnung.[Rechnung-ID] = RechnungProdukte.[Rechnung-ID] WHERE Kunden-ID = " & Format$("StatistikAnzeigeAusge.txtKundenID.Text") & " ORDERED BY Rechnung-ID;"

    End Sub

    ...
    </font>
    würde das überhaupt funktionieren?
    Hi,

    wenn ich deinen SQL-String richtig verstanden habe, willst du aus EINER Tabelle (Rechnung) alle
    Datensätze mit einer bestimmten Kunden ID ?!?

    Probiers mal so

    <pre>
    SQL="SELECT * FROM rechnung WHERE kunden-id=" & val(deineVariable) & " ORDER BY rechnungID"
    </pre>
    (ich habe jetzt nicht auf die korrekte Bezeichnung Deiner Variablen geachtet !!!)

    bye ...

    LaMa5.

    P.S. Wer hat diesen SQL-String ausgespuckt ?? MS-Query ??
    Die Wissenschaft wird nie ein besseres Kommunikationssystem in den Büros erfinden können als die Kaffeepause.
    (Autor: Earl Wilson, amerik. Schriftsteller)

    https://www.serviceteam-md.de
    Na, leider geht das so leicht nicht. Ich hab da mehrere Tabellen, die ich ansprechen muss. Als ersters mal die

    Rechnungen Tabelle:

    Da hab ich Rechnung-ID, Kunden-ID (nicht Primär) und dann noch das Datum.

    Rechnung-ID von der Rechnungtbl ist verbunden mit der Rechnung-ID von der RechnungProduktetbl da ich ja in einer Rechnung mehrere Produkte haben kann.

    RechnungProduktetbl:

    Da habe ich Rechnung-ID, Menge und Produkt-ID

    Diese Tbl ist nur eine Zwischentabelle. Sodas ich in ihr keinen ienzigen Primärschlüssel habe.

    Die dritte ist die Produkte tbl, da ich ja auch herausfinden möchte welchen Produktnamen in der Rechnung stehen sollte.

    Dann ist von der RechnungProdukte tbl die Produkt-ID (nicht Primär) mit der Produkttbl verbunden.

    Jetzt muss ich in meinem VB Programm folgendes tun:

    In einer Listbox alle Kunden auslesen (die hab ich mit einem ADODC schon mal alle von der Kundentbl ausgelesen) (JET 4.0 Anbindung...)

    Dann wird ein Kunde von der Listbox ausgewählt (einfaches hineinklicken reicht, schon wird die Kunden-ID in einem seperaten txt feld ausgegeben). Diese Kunden-ID soll er jetzt als Basis für die Abfrage verwenden:

    Mit dieser ID soll er von den drei Tabelllen (wie oben angegeben) alle herausfiltern die NUR diese Kunden-ID besitzen. Und da häng ich leider.

    Vielleicht kennt sich einer von euch da besser aus?
    Hallo ProSoft,

    es ist recht schwierig, so ein Problem zu lösen, wenn man die genaue Architektur der Db nicht vor sich liegen hat, vor allen, was die Abhängigkeiten angeht. Ich bastel mir so eine Abfrage meist in Access zurecht, greife den SQL-String dort ab und vereinfache ihn nach meinen Wünschen. So kann ich in diesem Moment sofort das Ergebnis prüfen. SQL-Profis machen das bestimmt anders. Der Vorteil der Methode ist, dass du keine Schreibfehler bei Tabellen- und Feldnamen machen kannst.

    Gruß Markus
    Also ich hab jetzt folgendes gemacht:



    So sieht meine TBL mit den ganzen Zusammenhängen aus.

    Meine Abfrage hab ich dann so gestaltet:

    clan-atk.com/sql/abfscreen_sql.JPG

    So jetzt müsste ich alles haben.

    Jetzt wollte ich mithilfe von dem SQL-Code im VB ganz einfach eine ID aus der Kundentbl auswählen (was ich ja bereits geschaft habe). Dann wird die Kunden-ID in ein Txtbox geschrieben mit der er jetzt arbeiten kann (könnte). Jetzt müsste er, aus dem SQL-Code, alle Kunden mit der ID (zb. 1) aussuchen und zb. alle Rechnung-ID's in eine neue Listbox schreiben.



    Ich hoffe das das verständlich geschrieben ist *g*.

    Danke im Voraus.

    greez ProSoft

    <font color="red"> Edit by Admin: Bilder bitte maximal 800 Pixel breit (siehe Boardregeln), sonst zerstören die hier das Design. </font>

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()

    Hi,

    @alchimist
    da stimme ich die voll und ganz zu, es ist verdammt schwierig eine SQL Abfrage zu erstellen, wenn man
    die DB-Struktur nicht kennt. Allerdings finde ich die SQL-Strings, die MS-Access (od. Query) ausgibt
    absolut unübersichtlich. Ich habe die Doku zu MySql teilweise durchgearbeitet und damit gelernt SQL-
    Abfragen manuell zu erstellen. Okay, man kann sich vertippen, aber es ist zu jeder Zeit klar welcher Befehl
    was macht.

    @ProSoft
    wenn das nicht "so leicht" geht , dann modifizieren wir den SQL String mal ein wenig.

    SQL="SELECT * FROM Rechnung, RechnungProdukte, Produkte WHERE
    Rechnung.Rechnung-ID = RechnungProdukte.Rechnung-ID AND
    RechnungProdukte.Produkt-ID = Produkte.Produkt-ID AND Kunden-ID=" & deineVariable & " ORDER BY
    Rechnung.Rechnung-ID"

    So müsste es eigentlich hinhauen. Falls nicht könntest du mir ja mal deine DB (Access od. MySQL) per Mail
    schicken und ich schaue mal nach dem Fehler. Aus dem Kopf und ohne zu testen ist das verdammt
    schwer.

    bye ...

    LaMa5.
    Die Wissenschaft wird nie ein besseres Kommunikationssystem in den Büros erfinden können als die Kaffeepause.
    (Autor: Earl Wilson, amerik. Schriftsteller)

    https://www.serviceteam-md.de