Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

AC00 SQL als Rowsource, umbrechen mißlingt

Begonnen von bejay, August 06, 2012, 15:14:37

⏪ vorheriges - nächstes ⏩

bejay

Hallo,

ich benutze folgendes SQL als Rowsource für ein Listenfeld.

SELECT Warenbezeichnung.Warenbezeichnung, Design.Design, Dimension.Size, Bestand.Menge
FROM Dimension INNER JOIN (Design INNER JOIN (Warenbezeichnung INNER JOIN Bestand ON Warenbezeichnung.ArtID = Bestand.ArtID) ON (Design.ArtID = Warenbezeichnung.ArtID) AND (Design.DID = Bestand.DID)) ON Dimension.SizeKey = Bestand.SizeKey
WHERE (((Dimension.SizeKey)=[Forms]![Bestand1]![cmbSize]) AND ((Warenbezeichnung.ArtID)=[Forms]![Bestand1]![cmbBez]) AND ((Design.DID)=[Forms]![Bestand1]![cmbDesign]));


das funktioniert auch soloange ich den Code in eine Zeile schreibe.
Das funktioniert nicht:

strSQL = "SELECT Warenbezeichnung.Warenbezeichnung, Design.Design, Dimension.Size, Bestand.Menge"
strSQL = strSQL + "FROM Dimension INNER JOIN (Design INNER JOIN (Warenbezeichnung INNER JOIN Bestand ON"
strSQL = strSQL + "Warenbezeichnung.ArtID = Bestand.ArtID) ON (Design.ArtID = Warenbezeichnung.ArtID) AND (Design.DID = "
strSQL = strSQL + "Bestand.DID)) ON Dimension.SizeKey = Bestand.SizeKey"
strSQL = strSQL + "WHERE (((Dimension.SizeKey)=[Forms]![Bestand1]![cmbSize]) AND ((Warenbezeichnung.ArtID)="
strSQL = strSQL + "[Forms]!Bestand1]!cmbBez]) "
strSQL = strSQL + "AND ((Design.DID)=[Forms]![Bestand1]![cmbDesign]));"
Me!lstBestand.RowSource = strSQL


Das geht auch nicht:

strSQL = "SELECT Warenbezeichnung.Warenbezeichnung, Design.Design, Dimension.Size, Bestand.Menge" & _
"FROM Dimension INNER JOIN (Design INNER JOIN (Warenbezeichnung INNER JOIN Bestand ON Warenbezeichnung.ArtID = " & _
"Bestand.ArtID) ON (Design.ArtID = Warenbezeichnung.ArtID) AND (Design.DID = Bestand.DID)) ON Dimension.SizeKey = " & _
"Bestand.SizeKey" & _
"WHERE (((Dimension.SizeKey)=[Forms]![Bestand1]![cmbSize]) AND ((Warenbezeichnung.ArtID)=[Forms]![Bestand1]![cmbBez]) AND" & _
"((Design.DID)=[Forms]![Bestand1]![cmbDesign]));"
Me!lstBestand.RowSource = strSQL


Gibt es da Konventionen die zu beachten sind ?

Gruss
bejay

bahasu

Hi,
spendiere ein paar Leerzeichen an der Stelle vom roten Unterstrich:
z.B. und auch bei den weiteren Zeilen
strSQL = strSQL + "_Warenbezeichnung.ArtID = Bestand.ArtID) ON (Design.ArtID = Warenbezeichnung.ArtID) AND (Design

Harald
Servus

DF6GL

#2
Hallo,


hier fehlen Blanks als Trennzeichen zwischen einzelnen Wörtern, sodann sollte der Zeichenverkettungs-Operator anstelle des mathematischen Addition-Operators benutzt werden


strSQL = "SELECT Warenbezeichnung.Warenbezeichnung, Design.Design, Dimension.Size, Bestand.Menge"
strSQL = strSQL & "   FROM Dimension INNER JOIN (Design INNER JOIN (Warenbezeichnung INNER JOIN Bestand ON"
strSQL = strSQL & "   Warenbezeichnung.ArtID = Bestand.ArtID) ON (Design.ArtID = Warenbezeichnung.ArtID) AND (Design.DID = "
strSQL = strSQL & "   Bestand.DID)) ON Dimension.SizeKey = Bestand.SizeKey"
strSQL = strSQL & "   WHERE (((Dimension.SizeKey)=[Forms]![Bestand1]![cmbSize]) AND ((Warenbezeichnung.ArtID)="
strSQL = strSQL & "   [Forms]!Bestand1]!cmbBez]) "
strSQL = strSQL & "   AND ((Design.DID)=[Forms]![Bestand1]![cmbDesign]));"
Me!lstBestand.RowSource = strSQL



Dasselbe in Grün:


strSQL = "SELECT Warenbezeichnung.Warenbezeichnung, Design.Design, Dimension.Size, Bestand.Menge" & _
"   FROM Dimension INNER JOIN (Design INNER JOIN (Warenbezeichnung INNER JOIN Bestand ON Warenbezeichnung.ArtID = " & _
"Bestand.ArtID) ON (Design.ArtID = Warenbezeichnung.ArtID) AND (Design.DID = Bestand.DID)) ON Dimension.SizeKey = " & _
"Bestand.SizeKey" & _
"   WHERE (((Dimension.SizeKey)=[Forms]![Bestand1]![cmbSize]) AND ((Warenbezeichnung.ArtID)=[Forms]![Bestand1]![cmbBez]) AND" & _
"  ((Design.DID)=[Forms]![Bestand1]![cmbDesign]));"
Me!lstBestand.RowSource = strSQL


bejay

Wahnsinn, tatsächlich nur das Leerzeichen, im nachhinein wird mir das klar, weil es ja sonst zusammgeschrieben ist. Den Wald vor lauter Bäume nicht gesehen.

Gruss
bejay