Autor Thema: db.search Formel mit @Ismember geht das?  (Gelesen 291 mal)

Offline Schnubbel

  • Junior Mitglied
  • **
  • Beiträge: 98
db.search Formel mit @Ismember geht das?
« am: 12.02.25 - 08:52:45 »
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)

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



Client -> Notesclient 8.5.3
Betriebssystem ->Windows 7
User-> Thorsten :)

Offline Christian Kröll

  • Aktives Mitglied
  • ***
  • Beiträge: 200
  • Geschlecht: Männlich
Antw:db.search Formel mit @Ismember geht das?
« Antwort #1 am: 12.02.25 - 10:32:31 »
das Feld AktuellerLinkF steht in Anführungszeichen. Nimm die mal weg
« Letzte Änderung: 12.02.25 - 11:18:59 von Christian Kröll »
Christian Kröll

Offline Werner Götz

  • Senior Mitglied
  • ****
  • Beiträge: 252
  • Geschlecht: Männlich
Antw:db.search Formel mit @Ismember geht das?
« Antwort #2 am: 13.02.25 - 08:43:43 »
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)

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

Offline Christian Kröll

  • Aktives Mitglied
  • ***
  • Beiträge: 200
  • Geschlecht: Männlich
Antw:db.search Formel mit @Ismember geht das?
« Antwort #3 am: 13.02.25 - 10:27:45 »
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)

Nachdem der Code funktioniert, könnten die Links vielleicht doch unterschiedlich sein? Mal Trim und Lowercase nutzen? Das ist aber reine Raterei  :-:
« Letzte Änderung: 13.02.25 - 10:29:19 von Christian Kröll »
Christian Kröll

Offline jBubbleBoy

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.291
  • Geschlecht: Männlich
Antw:db.search Formel mit @Ismember geht das?
« Antwort #4 am: 13.02.25 - 12:56:57 »
Wenn der Link einen Backslash enthält, muss dieser noch für den Formelaufruf mit Replace(AktuellerLinkF,"\","\\") angepasst werden.
Gruss Erik :: Freelancer :: KI-Dev, Notes, Java, Web, VBA und DomNav 2.5 / NSE 0.16 / OLI 2.0

--
Nur ein toter Bug, ist ein guter Bug!

Offline Werner Götz

  • Senior Mitglied
  • ****
  • Beiträge: 252
  • Geschlecht: Männlich
Antw:db.search Formel mit @Ismember geht das?
« Antwort #5 am: 13.02.25 - 13:30:26 »
Ok, ich hatte links und AktuellerLinkF so interpretiert, dass das DocLinks sind also was in der Art "AB012345678901234567890123456789", darum auch das @Text() drum rum.
In diesem Fall muss man sich nicht ums Maskieren kümmern.

@Christian
Wo genau Dein Widerspruch liegt kann ich nicht erkennen?!?

Viele Grüße
-Werner

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz