Unterabfrage funktioniert nicht

05/02/2010 - 10:16 von Max Leibundgut | Report spam
Hallo NG,
Ich machte folgende Abfrage die funktioniert:
SELECT tDokPos.AufNr, tDokPos.Pos
FROM tDokPos
WHERE (((tDokPos.AufNr)="013973") AND ((tDokPos.Pos) In (Select Pos FROM
tPosWahl)));
Dazu habe ich ein Formular fPosWahl um tPosWahl zu füllen.
Das machte ich um aus Auftragsbestàtigungen nur bestimmte Positionen zu
drucken.
Dies will mir einfach nicht gelingen. Ich mache folgenden Befehl:
DoCmd.OpenReport "rAufbestD“, , , "AufNr ='" & Forms!fDok!AufNr & "' AND Pos
In (SELECT Pos FROM tPosWahl)"
Das Programm verlangt dann immer einen Parameter Pos (oder tDokPos!Pos).
Was mache ich falsch?
Bei Lieferscheinen mache ich komplette und eliminiere dann die vorigen mit:
Db.Execute "DELETE * FROM tLiefPos " & _
"WHERE AufNr ='" & Me!AufNr & "'" & _
"AND Lief =" & Me!Lief & _
"AND Pos NOT IN (SELECT Pos FROM tPosWahl);"
Dies funktioniert auch ist aber nicht erwünscht wegen delete.
Mfg Max Leibundgut
 

Lesen sie die antworten

#1 Peter Doering
05/02/2010 - 10:44 | Warnen spam
Hallo,

Max Leibundgut wrote:

Ich machte folgende Abfrage die funktioniert:
SELECT tDokPos.AufNr, tDokPos.Pos
FROM tDokPos
WHERE (((tDokPos.AufNr)="013973") AND ((tDokPos.Pos) In (Select Pos FROM
tPosWahl)));
Dazu habe ich ein Formular fPosWahl um tPosWahl zu füllen.
Das machte ich um aus Auftragsbestàtigungen nur bestimmte Positionen zu
drucken.
Dies will mir einfach nicht gelingen. Ich mache folgenden Befehl:
DoCmd.OpenReport "rAufbestD“, , , "AufNr ='" & Forms!fDok!AufNr & "' AND Pos
In (SELECT Pos FROM tPosWahl)"
Das Programm verlangt dann immer einen Parameter Pos (oder tDokPos!Pos).
Was mache ich falsch?



Entweder fehlt Pos in der Datenherkunft von rAufbestD oder es kommt
mehrfach vor, was zur Folge haette, dass du Tabellennamen oder Alias
angeben muesstest: ... & "' AND tDokPos.Pos In (...

Du solltest uebrigens der Performance wegen die Unterabfrage auf die
gewuenschten Pos abgrenzen:

WHERE tDokPos.AufNr="013973" AND tDokPos.Pos In
(Select Pos FROM tPosWahl AS PW WHERE PW.Pos=tDokPos.Pos)

Gruss - Peter

Mitglied im http://www.dbdev.org
FAQ: http://www.donkarl.com

Ähnliche fragen