PDA

Vollständige Version anzeigen : Where-Klausel für OpenReport ist angeblich zu lang


C. Kunkel
04.05.2001, 15:13
Im Formular Kundenstamm kann der Benutzer die Kunden über ein QBF-Formular nach allen Kriterien filtern. Über einen Button kann ein Bericht geöffnet werden, der allerdings nur die wichtigsten Kundendaten (Nr, Name, Anschrift usw.) enthält, nicht alle Daten nach denen im Formular gefiltert werden kann.

Deshalb stelle einen Ausdruck mit den Kundennummern der momentan gefilterten Datensätze zusammen und setze beim öffnen des Berichts diesen Ausdruck als "Where-Klausel":

strSQL = ""
Set rs = Me.RecordsetClone
rs.Filter = Me.Filter
Set rs = rs.OpenRecordset

While Not rs.EOF
If strSQL = "" Then
strSQL = "KundenNr IN (" & CStr(rs!KundenNr)
Else
strSQL = strSQL & ", " & CStr(rs!KundenNr)
End If
rs.MoveNext
Wend

strSQL = strSQL & ")"

Debug.Print Len(strSQL)

DoCmd.OpenReport "berKundenliste", acViewPreview, , strSQL

Wenn nur ca. 300 Datensätze gefiltert sind funkts.
(Der String hatte 1846 Zeichen)

Bei 319 Datensätzen (2244 Zeichen) bekomme Ich den Fehler 7769
"Der filterbezogene Vorgang wurde abgebrochen. Der Filter wäre zu lang geworden"


In der VB-Hilfe ist angegeben:

Das Argument Bedingung darf bis zu 32.768 Zeichen lang sein
(im Gegensatz zum Aktionsargument Bedingung im Makrofenster,
dessen maximale Länge 256 Zeichen beträgt).

Wer kann mir helfen?

Manuela Kulpa
04.05.2001, 16:51
<font face="Verdana" size="2">Hallo C. Kunkel!

Hmmm, laut Microsoft Acces Knowledge-Base darf die Wherecondition nicht mehr als 2000 Zeichen beinhalten. Siehe auch:

<a href="http://support.microsoft.com/support/kb/articles/q207/6/15.asp" target="_blank">ACC2000: Error Using More Than 2000 Characters in Wherecondition of OpenReport (Q207615)</a>

Gruss</font>