Dynamische Abfrage probleme

Hallo
Wer kann mir weiter Helfen?
Es handelt sich um ein Problem einer Dynamischen Abfrage.
Damit es einfacher ist zu erklären, habe ich die ganze Datenbank ins Web gestelt. www.nothilfe.org/archiv/nu.zip (140 KB)

Im Formular „Produkt_ProduktundZubehörErfassung“
gibt es ein Eingabefeld namens „Produktauswahl“ bzw. Produkt. Das soll das Steuerfeld der Where bedingung in der Abfrage sein. Beim ändern dieses Feldes soll eine Ereignisprozedur bei Änderung eintreten. Genau um diese Prozedur geht es.
Sie soll die Ausgabe in dem Listboxfeld „lboxAuflistung“
so Regeln, das alle Parameter der Abfrage lesbar sind, und dass das oberste Listboxfeld „lboxAuflistung“ mit den Namen versehen immer sichtbar ist. Das wäre die Idee.
Leider wird aber nichts angezeigt. wo mache ich den Denkfehler

Das ganze soll auf eine m:n Matrix rauslaufen.

Besten Dank für jeglichen Hinweis
Grüsse Sebastian

Hallo

Hi,
änder deinen Code in der Sub Produktauswahl_Change folgendermaßen :

strSQL = " SELECT Produkt\_Spezifikation.Produkt, Produkt\_Spezifikation.Spezifikation, Produkt\_Zubehör.Artikel, Produkt\_Zubehör.Dimension, Produkt\_Zubehör.Sonstiges "
strSQL = strSQL & " FROM (Produkt\_Spezifikation INNER JOIN [Menü\_Matrix\_Produkangebot/Zubehör] ON Produkt\_Spezifikation.Produkt\_Nummer = [Menü\_Matrix\_Produkangebot/Zubehör].Produkt\_Nummer) INNER JOIN Produkt\_Zubehör ON [Menü\_Matrix\_Produkangebot/Zubehör].Zubehör\_Nummer = Produkt\_Zubehör.Zubehör\_Nummer "
strSQL = strSQL & " Where Produkt\_Spezifikation.Produkt = '" & grp1 & "'"

Du hast am Ende der Zeilen ein _& eingefügt, in der nächsten Zeile aber wieder mit strSQL = strSQL & „blabla“ angefangen.
Somit hast du einen Vergleich fabriziert, der FALSE lieferte.
Außerdem war eine „)“ zu viel/falsch.
Tipp: Es hilft ungemein, bei mehrzeiligem, dynamisch generierten SQL-Queries, diese per msgbox anzeigen zu lassen.

Gruß.Timo

Wer kann mir weiter Helfen?
Es handelt sich um ein Problem einer Dynamischen Abfrage.
Damit es einfacher ist zu erklären, habe ich die ganze
Datenbank ins Web gestelt. www.nothilfe.org/archiv/nu.zip (140
KB)

Im Formular „Produkt_ProduktundZubehörErfassung“
gibt es ein Eingabefeld namens „Produktauswahl“ bzw. Produkt.
Das soll das Steuerfeld der Where bedingung in der Abfrage
sein. Beim ändern dieses Feldes soll eine Ereignisprozedur bei
Änderung eintreten. Genau um diese Prozedur geht es.
Sie soll die Ausgabe in dem Listboxfeld „lboxAuflistung“
so Regeln, das alle Parameter der Abfrage lesbar sind, und
dass das oberste Listboxfeld „lboxAuflistung“ mit den Namen
versehen immer sichtbar ist. Das wäre die Idee.
Leider wird aber nichts angezeigt. wo mache ich den Denkfehler

Das ganze soll auf eine m:n Matrix rauslaufen.

Besten Dank für jeglichen Hinweis
Grüsse Sebastian

Tipp für den Tipp:

Tipp: Es hilft ungemein, bei mehrzeiligem, dynamisch
generierten SQL-Queries, diese per msgbox anzeigen zu lassen.

viel besser ist es, sich die Query per Debug.print im code oder noch besser einen Haltepunkt zu setzen und per Eingabe von Debug.print ins Direktfenster schreiben zu lassen. Dann kann man diese nämlich notfalls kopieren und mal direkt auf die Tabellen loslassen um schon hier Ergebniskontrolle zu haben.

Gruß
Daniel

viel besser ist es, sich die Query per Debug.print im code
oder noch besser einen Haltepunkt zu setzen und per Eingabe
von Debug.print ins Direktfenster schreiben zu lassen. Dann
kann man diese nämlich notfalls kopieren und mal direkt auf
die Tabellen loslassen um schon hier Ergebniskontrolle zu
haben.

Genau. Dann „Abfragen“-„Neu“-(keine Tabellen hinzufügen)„Schließen“-„SQL“-einfügen-„Tabellenansicht“, und man bekommt ggf. auch gleich ziemlich genau einen möglichen Syntaxfehler angezeigt, und das innerhalb von nur 5 Sekunden…

Gruß, Manfred

Siehe vielleicht auch mal hier:
http://spotlight.de/zforen/amsa/m/amsa-973762218-174…

Gruß aus dem Norden
Reinhard Kraasch

(http://www.dbwiki.de - das Datenbank-Wiki)

Besten Dank für eure Angaben, Sie haben reichlich weiter geholfen.
Grüsse Sebastian