INXS 10 Geschrieben 25. Februar 2010 Melden Teilen Geschrieben 25. Februar 2010 Hallo, ich habe etwas vba in Excel eingebettet und führe Selects auf eine SQL Server 2005 Datenbank aus. Dies funktioniert sehr gut. Nun habe ich eine rekursive Abfrage benötigt und bin im Internet auf die Lösung gestoßen. Der Select sieht so aus: WITH StructReports ( STRUKTURELEMENT_ID, VATER_STRUKTURELEMENT_ID, NAME , Level, path) AS ( -- Anchor member definition SELECT STRUKTURELEMENT_ID, VATER_STRUKTURELEMENT_ID, NAME , 0 AS Level, se.NAME as path FROM dbo.Strukturelement as se WHERE VATER_STRUKTURELEMENT_ID is null UNION ALL -- Recursive member definition SELECT se.STRUKTURELEMENT_ID, se.VATER_STRUKTURELEMENT_ID, se.NAME , Level +1, sv.path + @trenner + se.Name as path FROM dbo.Strukturelement as se inner join StructReports as sv on se.VATER_STRUKTURELEMENT_ID = sv.STRUKTURELEMENT_ID ) Select * from StructReports r order by path Im Sql Management Studio liefert die Abfrage auch ein Ergebnis. Nur in VBA erhalte ich die Fehlermeldung "Falsche Syntax in der Nähe des 'WITH'-Schlüsselwortes." Ich lege das Statement in die Variable sSelect und führe diesen Befehl aus: rs.Open sSelect, hSql, adOpenForwardOnly, adLockReadOnly Muss ich bei der Verwendung von WITH etwas anders machen?:confused: Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.