HCL Notes / Domino / Diverses > Entwicklung
db.search Formel mit @Ismember geht das?
Schnubbel:
Guten Morgen,
ich habe Dokumente in denen es ein Feld "Links" gibt. Dort stehen Hyperlinks drin.
Ich suche per Formel nach diesen Links:
--- Code: ---Formel = {Form='Verzeichnis' & @Ismember('} & AktuellerLinkF & {';links)}
Set SuchWortdc = localdb.Search(Formel,Nothing,0)
--- Ende Code ---
Die Variable AktuellerLinkF enthält wirklich den Link.
AktuellerLinkF steht auch als Mehrfachwert in mindestens einem Dokument im Feld "links".
Gefunden wird er aber nicht. Die Collection ist bei 0.
Suche in den Link über die Suche in einer Ansicht wirds gefunden.
Ich brauch also mal wieder einen Zaunpfahl mit der richtigen Richtung.
Danke und LG
Thorsten
Christian Kröll:
das Feld AktuellerLinkF steht in Anführungszeichen. Nimm die mal weg
Werner Götz:
Das hat nicht mit den Anführungszeichen und auch nicht mit @IsMember zu tun.
Die Formel wird ja gegen alle Dokumente ausgeführt und die kennen ja AktuellerLinkF nicht.
Man müsste wohl eher das Feld links ebenfalls zu Text machen.
Ich würde es mal mit
--- Code: ---Formel = |Form = "Verzeichnis" & @Text(links) = "| & doc.GetItemValue("AktuellerLinkF")(0) & |"|
Set SuchWortdc = localdb.Search(Formel, Nothing, 0)
--- Ende Code ---
doc wäre hierbei das Dokument, dessen Feld AktuellerLinkF in anderen Dokumenten gesucht werden soll.
@IsMember ist nicht nötig, da der Gleichheitsoperator bei der Konstellation "Liste gegen einzelnen Wert" das selbe macht.
Viel Erfolg!
-Werner
Christian Kröll:
Werner, ich stimme zu und wiederspreche: Ich habe in einer Testdatenbank zufälligerweise auch ein paar Dokumente mit Mehrfachwerten. Mit dieser Aktion finde ich genau das eine Dokument, dass im Feld "Werte" unter anderem "Drei" enthält. AktuellerLinkF hat Thorsten als Variable benannt, nicht als Feld.
Die Anführungszeichen (doppelt oder einfach egal) sind es tatsächlich nicht.
--- Code: ---Dim s As New NotesSession
Dim db As NotesDatabase
Set db = s.CurrentDatabase
Dim coll As NotesDocumentCollection
Dim AktuellerLinkF As String
AktuellerLinkF = "Drei"
makro$ = {Form="Mehrfachwerte" & @Ismember('} & AktuellerLinkF & {';Werte)}
Set coll = db.Search(makro$,Nothing,0)
Msgbox Cstr(coll.Count)
--- Ende Code ---
Nachdem der Code funktioniert, könnten die Links vielleicht doch unterschiedlich sein? Mal Trim und Lowercase nutzen? Das ist aber reine Raterei :-:
jBubbleBoy:
Wenn der Link einen Backslash enthält, muss dieser noch für den Formelaufruf mit Replace(AktuellerLinkF,"\","\\") angepasst werden.
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln