Ich arbeite an zwei Datenbanken, die miteinander verknüpft sind: Aktionselementliste und Benutzerinformationen. Ich habe die Aktionselementliste von meiner Sharepoint-Site importiert.
Ich versuche, nur die „Aktionen“ anzuzeigen, die dem Kriterium [Geben Sie Ihren Namen ein] entsprechen. Dazu habe ich mir die Beziehung der beiden Datenbanken angesehen und wir können sehen, dass „Owner.Value“ (Textattribut der Datenbank „Aktionselementliste“) mit „ID“ (dem Fremdschlüssel der UserInfo-Datenbank) verknüpft ist. Um die erwarteten Ergebnisse zu erhalten, führe ich die Abfrage aus und gebe meinen Namen ein, erhalte jedoch die folgende Fehlermeldung:
Vielleicht kann mir ja jemand weiterhelfen. Ich bin auf eure Expertise angewiesen. Vielen Dank schon mal für eure Unterstützung!
Antwort1
Korrigieren Sie zunächst Ihren DLookup
Ausdruck: Da das Kriterium den Wert eines Textfelds ( Name
) filtert, muss der für den Filter verwendete Wert in einfache oder doppelte Anführungszeichen eingeschlossen werden, sonst lautet das Ergebnis:
Name = Thomas Orvain
Dabei werden Thomas
und Orvain
im resultierenden SQL als separate Felder behandelt.
Um dies zu beheben, können Sie den DLookup
Ausdruck wie folgt ändern:
DLookup("Name", "UserInfo", "Name = '" & [Enter your name] & "'")
INNER JOIN
Da Sie jedoch bereits eine zwischen der Action Items List
Tabelle und der Tabelle erstellt haben UserInfo
, lautet der DLookup
Ausdrucküberhaupt nicht erforderlich.
Stattdessen können Sie Auswahlkriterien Name
direkt auf das Feld anwenden, indem Sie beispielsweise Folgendes in die SQL-Ansicht Ihrer Abfrage kopieren:
select
[Action Items List].Action,
[Action Items List].Status,
[Action Items List].Owner.Value
from
[Action Items List] inner join UserInfo on
[Action Items List].Owner.Value = UserInfo.ID
where
UserInfo.Name = [Enter your name]