![]() |
|
![]() |
#1 |
![]() MOF User |
![]() Hi,
ich würde gerne über VBA einen SQL Code schreiben, aber komme jetzt nicht weiter, wie ich SQLListen darin integrieren kann. Wenn ich den Code aus der Abfrage kopiere und dann ganz normal ans Ende jeder Zeile " & _ schreibe komme ich nicht weiter... So sieht der Code momentan aus: Code: sql = "SELECT tblCustomer.CustomerId, tblCustomer.CustomerName, tblCustomer.CustomerZipCode, " & _ " tblCustomer.DateOfBirth, tblCustomer.TotalOrderValue, SQLListe("SELECT tblDokumentation.DokBezeichnung FROM tblDokumentation WHERE tblDokumentation.DokID = "3") AS DokListe, tblCustomer.LastOrderTime, " & _ " tblOrder.OrderId, tblOrder.OrderDate, tblOrder.OrderStatus " & _ " FROM tblCustomer " & _ " INNER JOIN tblOrder " & _ " ON tblCustomer.CustomerId = tblOrder.CustomerId " & _ |
![]() |
![]() ![]() |
![]() |
#2 |
![]() MOF Meister |
![]() Du hast auf jeden Fall ein Syntaxfehler.
Du verwendest ein Hochkomma beim Beginn der SQLListe welches aber nicht geschlossen wird. Ist die DokID wirklich ein Text oder eine Zahl? Ansonsten Fehlermeldungen? |
![]() |
![]() ![]() |
![]() |
#3 |
Threadstarter
![]() ![]() MOF User |
![]() Hey!
Ich hatte hier ein Beispiel aus dem Internet genommen, bei meinem richtigen Code wird der ganze Text rot angezeigt. Vielleicht hätte ich den direkt posten sollen: Code: sSQL = "SELECT tblRisikoart.Risikoname, tblReports.ReportBezeichnung, tblReports.ZielundZweck, tblReports.Turnus, tblProzesse.Bezeichnung, tblOrganigramm.Bezeichnung, tblReports.Adressaten, " & _ " SQLListe("SELECT tblDokumentation.DokBezeichnung FROM tblDokumentation INNER JOIN (tblReports INNER JOIN tblReports_Dokumentation ON tblReports.RepID = tblReports_Dokumentation.RepFK) ON tblDokumentation.DokID = tblReports_Dokumentation.DokFK WHERE tblReports.ReportBezeichnung = '" & tblReports.[ReportBezeichnung] & "'") AS DokListe, " & _ " SQLListe("SELECT tblProzesse.Bezeichnung FROM tblReports INNER JOIN (tblProzesse INNER JOIN tblReport_VorgelagerteProzesse ON tblProzesse.ProID = tblReport_VorgelagerteProzesse.VProFK) ON tblReports.RepID = tblReport_VorgelagerteProzesse.RepFK WHERE tblReports.ReportBezeichnung = '" & tblReports.[ReportBezeichnung] & "'") AS VorgelagerteProzessListe, " & _ " SQLListe("SELECT tblProzesse.Bezeichnung FROM tblReports INNER JOIN (tblProzesse INNER JOIN tblReports_NachgelagerteProzesse ON tblProzesse.ProID = tblReports_NachgelagerteProzesse.NProFk) ON tblReports.RepID = tblReports_NachgelagerteProzesse.RepFK WHERE tblReports.ReportBezeichnung = '" & tblReports.[ReportBezeichnung] & "'") AS NachgelagerteProzessListe " & _ " FROM tblRisikoart INNER JOIN ((tblProzesse INNER JOIN (tblOrganigramm INNER JOIN tblReports ON tblOrganigramm.OrgID = tblReports.PZV) ON tblProzesse.ProID = tblReports.Prozess) INNER JOIN tblRisikoart_Reports ON tblReports.RepID = tblRisikoart_Reports.RepFK) ON tblRisikoart.Risikonummer = tblRisikoart_Reports.RiskFK " |
![]() |
![]() ![]() |
![]() |
#4 |
![]() MOF Meister |
![]() Na ja, wenn du den String einer Variable zuweist, darfst du innerhalb des Strings kein doppeltes Hochkomma verwenden. Das bedeutet, dass der String endet. Das geht nur innerhalb des Query Tools.
Bei der Zuweisung zu einer Variable einfache Hochkommas verwenden, oder doppelte Hochkommas verdoppeln. Viel besser allerdings, du machst eines gepeicherte Abfrage. Abgesehen davon: Code: WHERE tblReports.ReportBezeichnung = '" & tblReports.[ReportBezeichnung] & "'" Verwende einen Alias in der äußeren Abfrage, damit klar ist welcher Wert gemeint ist. Hier mit Alias r in der "Hauptabfrage" Code: WHERE tblReports.ReportBezeichnung = '" & r.ReportBezeichnung & "'" Geändert von markusxy (11.07.2018 um 17:14 Uhr). Grund: Korrektur |
![]() |
![]() ![]() |
![]() |
#5 |
Threadstarter
![]() ![]() MOF User |
![]() Moin!
Das mit den doppelten Hochkommas hat prima geklappt, danke für den Tipp! Hierzu: Zitat: Das kann doch nicht funktionieren. Code: Verwende einen Alias in der äußeren Abfrage und dann ganz normal zuweisen. Hier mit Alias r in der "Hauptabfrage" ![]() Grüße |
![]() |
![]() ![]() |
![]() |
#6 |
![]() MOF Koryphäe |
![]() Code: SELECT T.Feld FROM Tabelle As T __________________ --S.M.I.²L.E. |
![]() |
![]() ![]() |