Betrifft: Microsoft Access XP, 2000, 2003 (noch nicht getestet mit 2007, 2010)
Problem: Sie wollen die Recordsource einer Form als String auslesen, diese wird jedoch nach 256 Zeichen abgeschnitten.
strSQL = Me.Recordsource
debug.print Len(strSQL)
256
Der Grund für das Problem könnte folgender sein: Sie haben die Datenquelle der Form mit Me.Recordset oder Me.RecodesetClone gesetzt – dabei wird anscheinend der Recordset-String nicht sauber gesetzt.
Set rs = CurrentDb.OpenRecordset(strSQLStart & strSQL & strGroup & strOrder, dbOpenDynaset)
Set Me.Recordset = rs
Obwohl diese Abfrage an sich auch bei langen Strings perfekt funktioniert wird eben nur die Eigenschaft Me.Recordsource nicht richtig gesetzt.
Soll später etwa in einem anderen Formular oder Bericht aber genau dieser String ausgelesen werden kommt es zu einem Problem.
Als Lösung können können Sie folgende Änderung vornehmen:
Me.Recordsource = strSQLStart & strSQL & strGroup & strOrder
Danach kann der Recordset auch wieder in größerer Länge als 256 Zeichen ausgelesen werden.
Sofern es den restlichen Programmverlauf nicht stört, kann man dann auf „set rs“ komplett verzichten!