ich hab gerade ein Problem mit einer geschachtelten SQL Anweisung beim ausführen sagt mir VB6, dass mind. ein Parameter Fehlt, nur leider seh ich es nicht kann mir jemand einen Anstoß geben?
„Select Mitarbeiter.MaZNam from Mitarbeiter where Mitarbeiter.Werk_ID=(select Werk.Werk_ID from Werk where Werk.WerkNa =‚Hamburg‘)“
ich hab gerade ein Problem mit einer geschachtelten SQL
Anweisung beim ausführen sagt mir VB6, dass mind. ein
Parameter Fehlt, nur leider seh ich es nicht kann mir jemand
einen Anstoß geben?
*schubs*
„Select Mitarbeiter.MaZNam from Mitarbeiter where
Mitarbeiter.Werk_ID=(select Werk.Werk_ID from Werk where
Werk.WerkNa =‚Hamburg‘)“
Leider nicht. Sieht eigentlich ganz gut aus. Hier bräuchten wir die Tabellendefinitionen von Werk und Mitarbeiter. Halt, cut! Blödsinn, was ich schrub!
Es müsste m. E. heißen: … Mitarbeiter.Werk_ID IN (select… statt „=“
Ansonsten ein kleiner Tip: SQL-String über Direktfenster ausgeben lassen, nach Access in eine neue Abfrage kopieren und hier ausprobieren. Access sagt einem dann zumindest, welcher Parameter erwartet wird. Dazu muss natürlich die DB auch in Access vorhanden sein; ggf. halt alle Tabellen aus der richtigen DB einbinden.
erstmal der Tip solche selects immer formatiert anzulegen - glaubst gar nicht wieviele Fehler man dann schneller sieht! Ansonsten ist natürlich der Tip mit Access gut. Viele verspotten es, doch um sql-Fehler zu suchen bzw. sql zu lernen ist es unschlagbar (und in vielen anderen Bereichen auch ;o))
Zusätzlich würde ich hier auch keine subselect machen sondern einfahc in dieser Form schreiben…
Select
Mitarbeiter.MaZNam
from
Mitarbeiter, werk
where
Mitarbeiter.Werk_ID = Werk.Werk_ID
and
Werk.WerkNa =‚Hamburg‘
Ist doch irgendwie einfacher, gelle ;o)) Union ging natürlich auch - dürfte aber hier überflüssig sein…