Hallo Comm,
Ich habe eine mir eine Kleine Datenbank in Access aufgebaut mit mehreren Tabellen. nachdem soweit alles wie gewollt funktioniert hat habe ich die Tabellen 1zu1 in SQL abgebildet.
Jedoch bekomme ich nun bei einigen meiner abfragen leider den Fehler
ein Beispiel welche abfrage nicht mehr seit der Umstellung auf SQL funktioniert:
nun habe ich im inet gefunden das man lieber keine DLookup Abfrage in der DLookup Abfrage bauen sollte da SQL damit Probleme haben kann wenn die benötigten Daten für eine Auswertung erst berechnet werden müssen. Aus diesem Grund habe ich meine Abfrage aufgelöst in:
Dies hat jedoch leider kein unterschied gemacht ._. mein letzter versuch war das ganze noch weiter runter zu Brechen und dabei kahm folgendes raus:
Jedoch blieb dies auch ohne Erfolg
Hat jemand eine Ahnung was ich falsch mache? Wie gesagt als alle Tabellen von Access selbst kahmen hat es funktioniert seitdem ich auf SQL verknüpfte verwende leider nicht mehr.
fOSUserName
auswertung_mitarbeiter
LG Ruerte
Ich habe eine mir eine Kleine Datenbank in Access aufgebaut mit mehreren Tabellen. nachdem soweit alles wie gewollt funktioniert hat habe ich die Tabellen 1zu1 in SQL abgebildet.
Jedoch bekomme ich nun bei einigen meiner abfragen leider den Fehler
Abfrage ist zu Komplex 3360
ein Beispiel welche abfrage nicht mehr seit der Umstellung auf SQL funktioniert:
nun habe ich im inet gefunden das man lieber keine DLookup Abfrage in der DLookup Abfrage bauen sollte da SQL damit Probleme haben kann wenn die benötigten Daten für eine Auswertung erst berechnet werden müssen. Aus diesem Grund habe ich meine Abfrage aufgelöst in:
Dies hat jedoch leider kein unterschied gemacht ._. mein letzter versuch war das ganze noch weiter runter zu Brechen und dabei kahm folgendes raus:
Quellcode
- dim t1 as string
- dim t2 as string
- t1= DLookup("ID", "main_mitarbeiter", "winid='" & fOSUserName & "'")
- t2= DLookup("Mitarbeiter_ID", "alle_abteilungsleiter_mitarbeiter", "Abteilungsleiter='" & t1 & "'")
- Befehl25.Caption = DLookup("Count(Vorname)", "auswertung_mitarbeiter", "Typ = 'Soll' and ID in ("& t2 & ")")
Jedoch blieb dies auch ohne Erfolg
Hat jemand eine Ahnung was ich falsch mache? Wie gesagt als alle Tabellen von Access selbst kahmen hat es funktioniert seitdem ich auf SQL verknüpfte verwende leider nicht mehr.
Quellcode
- Private Declare Function apiGetUserName Lib "advapi32.dll" Alias _
- "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long
- Function fOSUserName() As String
- Dim lngLen As Long, lngX As Long
- Dim strUserName As String
- strUserName = String$(254, 0)
- lngLen = 255
- lngX = apiGetUserName(strUserName, lngLen)
- If lngX <> 0 Then
- fOSUserName = Left$(strUserName, lngLen - 1)
- Else
- fOSUserName = ""
- End If
- End Function
Ich kann diese Ohne Probleme ausrführen auch unter SQL daran sollte es also eigentlich nicht ligen
SQL-Abfrage
- SELECT main_mitarbeiter.ID, main_mitarbeiter.Vorname, main_mitarbeiter.Nachname, main_kompetenzen.Bezeichnung AS Kompetenz, main_sollstand.Bezeichnung AS Sollstand, "Ist" AS typ, main_überprüfung.Guligkeit, main_kompetenzen.Kategorie
- FROM ((main_überprüfung INNER JOIN main_sollstand ON main_überprüfung.Istzustand = main_sollstand.ID) INNER JOIN main_kompetenzen ON main_überprüfung.Kompetenz_ID = main_kompetenzen.ID) INNER JOIN main_mitarbeiter ON main_überprüfung.Mitarbeiter_ID = main_mitarbeiter.ID
- WHERE (((main_mitarbeiter.Aktiv)=True))
- GROUP BY main_mitarbeiter.ID, main_mitarbeiter.Vorname, main_mitarbeiter.Nachname, main_kompetenzen.Bezeichnung, main_sollstand.Bezeichnung, main_überprüfung.Guligkeit, main_kompetenzen.Kategorie, main_mitarbeiter.Aktiv UNION ALL SELECT main_mitarbeiter.ID, main_mitarbeiter.Vorname, main_mitarbeiter.Nachname, push_anforderungen.Kompetenz, push_anforderungen.Solstand AS Sollstand, "Soll" AS typ, push_anforderungen.Bis AS Datum, main_kompetenzen.Kategorie
- FROM (push_anforderungen INNER JOIN main_mitarbeiter ON push_anforderungen.ID = main_mitarbeiter.ID) INNER JOIN main_kompetenzen ON push_anforderungen.Kompetenz_ID = main_kompetenzen.ID
- WHERE (((main_mitarbeiter.Aktiv)=True));
LG Ruerte
Unfortunately, this Signature is not available in Germany because it may contain music for which GEMA
has not granted the respective music rights. Sorry about that.