FTSearch - View unverändert

  • Über VBA unter Excel habe ich versucht LN-Dokumente in einer Kachel zu suchen und zu filtern. Dabei habe ich folgende Routine verwendet:


    Sub myFullTextSearch()
    Dim session as object
    Dim view As object
    Dim j
    Dim views As Variant

    Set session = CreateObject("Notes.NotesSession")
    Set db = session.GetDatabase(myServer, myAppl)
    Set view = db.GetView(myView)
    j = view.FTSearch(myCriteria, 0)
    End sub


    Ich bekomme einen Wert j <> 0, d.h. es gibt Treffer, aber der View in der Kachel ist unverändert. Dies entspricht nicht dem Verhalten, dass z.B. in der Dokumentation zum COM-Interface von Lotus Notes beschrieben ist:


    "Conducts a full-text search on all documents in a view and filters the view so it represents only those documents that match the full-text query."


    Was mache ich falsch?

  • Was hat denn dann "filters the view" im angegebenen Zitat zu bedeuten?
    Soweit ich das verstanden habe, ist FTSearch im UIView (entsprechendes Obejkt im Frontend) nur eingeschränkt möglich. Im Internet habe ich dafür Tips gefunden, die Sucheergebnisse in einen eigenen Folder zu verschieben. Das scheint mir aber kompliziert zu sein.


    Letztlich suche ich eine Möglichkeit, die Funktionen von Lotus Notes "fernzusteuern" über VBA. Wenn ich in meinem Client einen Datensatz gesucht habe, wird der View auf die relevanten Treffer reduziert. Kann ich das irgendwie per VBA von aussen steuern?

  • Na es filtert den Backend View.


    Du solltest dir vielleicht zuerst mal den Unterschied zwischen Backend und Frontend klarmachen.


    Und nur das was die Frontendklassen bieten kannst du auch direkt fernsteuern.


    Die Frage ist nur: Wozu willst du das fernsteuern ?

  • Ich habe eine Suchfunktion in einer Access-Datenbank (für Nummern), die ich über eine Schaltfläche entweder in die Access-Datenbank oder die Notes-Datenbank verzweigen will. Das wäre sehr komfortabel.


    Natürlich könnte ich auch alles noch einmal in Notes eintippen, aber ich bin da etwas faul :-).

  • Na ja. Zwischen Access und Notes ist es nur eine Übergangsphase, aber über weitere Routinen unter VBA kann ich dieselben Nummern auch in definierte Internetseiten eingeben und dort weitersuchen. Das spart eine Menge Tipperei. Unter Notes werden ich die Browsersteuerung sicher nicht implementieren. Weiss auch gar nicht, ob das überhaupt geht. Ausserdem läuft ja alles bis auf den Zugriff auf die Views unter Notes.

  • Na wenn du das über eine Suchmaske im Notes löst, dann geht das da genau wie bei den Webseiten.


    Und VBA Code nach LotusScript zu überführen ist ein eher minimaler Aufwadn wegen der Verwandtschaft der beiden Sprachen

  • Ich habe das Problem jetzt mit der VBA-Funktion SendKeys gelöst. Das ist zwar nicht super schnell, aber es bringt das gewünschte Ergebnis:


    Sub BridgeToNotes(myService, mySearch)
    Set Session = CreateObject("Notes.NotesSession")
    Set ws = CreateObject("Notes.NotesUIWorkspace")
    Select Case myService
    Call ws.OpenDatabase(myServer, myApp, myView)
    AppActivate "Lotus Notes"
    myDelay (1)
    SendKeys "%{a}{i}", True 'show search bar
    myDelay (1)
    SendKeys convertToSendkeys(mySearch) & " {enter}", True 'enter search term and go
    End Sub


    Function convertToSendkeys(mystr) As String
    convertToSendkeys = ""
    For i = 1 To Len(mystr)
    convertToSendkeys = convertToSendkeys & "{" & Mid(mystr, i, 1) & "}"
    Next i
    End Function