hallo,
ich würde gerne aus einem datensatz auf einen anderen zugreifen und dort ein feld setzten.
und diesen zweiten datensatz müsste ich anhand eines feldes finden geht sowas
hallo,
ich würde gerne aus einem datensatz auf einen anderen zugreifen und dort ein feld setzten.
und diesen zweiten datensatz müsste ich anhand eines feldes finden geht sowas
entweder über einen beliebigen feldinhalt
-> set doc = view.GetDocumentByKey(key, True)
oder z. b. über die uniqueid des 'zieldokumentes'
-> set doc = db.GetDocumentbyUNID
bei formelsprache würde ich es vielleicht über die kombination
-> @DbLookup, @Command([FileOpenDatabase]; parameter ...), @Command([EditDocument])
probieren ...
was hat das den mit diesem ky bzw unid auf sich
key ist der wert nach dem du suchen willst, also der z. b. der inhalt eines feldes.
-> set doc = view.GetDocumentByKey("wert der gesucht werden soll", True)
diesen kannst du fest eintragen (was wahrscheinlich wenig sinn macht) oder z. b. aus dem aktuellen dokument auslesen.
die unid ist die documentuniqueid die jedes dokument hat.
Dabei ist aber eines noch hinzu zufügen, die Ansicht, in der gesucht werden soll, muss in der ersten Spalte kategorisiert oder sortiert sein. Sonst funktioniert GetDocoumentByKey nicht.
Unabhängig davon gibt es noch eine Möglichkeit Dokumente zu finden. In der NotesDatabase-Klasse gibt es die Methode Search
Die liefert alle gefundenen Dokumente in einer collection. DAzu braucht man keine entsprechend sortierte Ansicht.
Beisp.:
Set collection = db.Search({Status = "Aktiv"}, Nothing, 0)
Liefert alle Dokumente in der Datenbank, die den Status Aktiv haben.
Axel
Danke erstmal für eure supper hilfe hier bei allen fragen!!
Aber ich würde gerne nach einer Seriennumer suchen. Und ich denke mal das währe nur ein Document (sollte es zumindest sein)
desswegen denke mal diese getdocumentbykey währe schon das richtige ich bekomm das mit dieser funktion nur leider nicht gebackern kann mir mal wer helfen. Bekomm permanent irgentwelche Fehler vonwegen kein object etc wieder.
danke schonmal
getdocumentbykey findet aber nur ein Dokument in der Ansicht wenn der key sich in der ersten sortierten Spalte in der Ansicht befindet. Wenn das der Fall ist, kannste das nehmen.
Fuer die Fehlersuche - von wegen "kein object etc." - hilft im allgemeinen der Debugger hervorragend. Da kannste Dir anzeigen lassen, warum ein Objekt nicht gesetzt wurde bzw. was es sein koennte.
Ansonsten musste den Code mal posten.
Dim ws As New notesuiworkspace
Dim uidoc As notesuidocument
Dim this_doc As notesdocument
Dim view As NotesView
Dim db As notesdatabase
Dim s As New notessession
Dim searchdoc As NotesDocument
Dim viewName As String
Dim searchSN As String
viewName = "Keyword_Scanner"
Set uidoc = ws.currentdocument
Set db = s.currentdatabase
Set view = db.getview(viewName)
Set searchdoc=view.GetDocumentbykey("9995002",True)
Das mit der ersten spalte habe ich gerade mal geändert und soweit bin ich auch schon gekommen jetzt meine frage wie ich an das Feld in dem gefundenen Document rannkomme.
BZW wie ich erst mal überhaupt prüfen kan ob er ein document gefunden hat.
Naja mit
dim feldwert as variant
if not searchdoc is nothing then
Feldwert = searchdoc.getitemvalue("MeinFeld")
end if
Feldwert enthält nun einen Array. Mit Feldwert(0) kommst du an den 1. Wert, Feldwert(1) den 2. Wert etc...
Er scheint bei mir das searchdoc nicht zu finden zumindest wird im debugger kein eintrag gemacht und in dieIf rennt er auch nicht
Daraufhin habe ich nocheinmal geprüft in der View ist die erste spalte der eintrag mit den Seriennummern und die gesuchte ist auch vorhanden
kann geloescht werden
Hi,
welchen Feldtyp hat denn dein Feld nach dem du suchst?
Axel
Dim ws As New notesuiworkspace
Dim uidoc As notesuidocument
Dim this_doc As notesdocument
Dim view As NotesView
Dim db As notesdatabase
Dim s As New notessession
Dim searchdoc As NotesDocument
Dim viewName As String
Dim searchSN As String
Dim ausgabe As String
Dim feldwert As Variant
viewName = "Keyword_Scanner"
Set uidoc = ws.currentdocument
Set db = s.currentdatabase
Set view = db.getview(viewName)
Set searchdoc=view.GetDocumentbykey("2")
If Not searchdoc Is Nothing Then
Feldwert = searchdoc.getitemvalue("MeinFeld")
End If
das feld wonach ich suche ist ein textfeld
allerdings was mit bauchweh macht das er scheinbar kein document findet. ich seh im debugger zum mindest keinen wert bei der variabele
Gibt es denn in der Ansicht in der "Scuhspalte" den Wert "2"??
Und ist genau diese Spalte dann die erste sortierte??
ja in der viw sind 4 werte in der ersten spalte und einer ist 2
ich denke hab den fehler gefunden
aber sag doch mal hab jetzt das notesdocument und würde da gerne in ein feld einen wert schreiben nur wie?
dim variable1 as variant
Variable1 = searchdoc.getitemvalue("Feldname")
..damit haste alle Werte ausgelesen oder nur einen...
Variable1 = searchdoc.getitemvalue("Feldname")(0)
Woran lag es denn nun??
es lag daran das die view zwar sortiert aber nicht categorize wahr.
aber jetzt würd ich gerne nix aus dem gefunden auslesen sondern in ein feld dort etwas eibtragen nur wie?
mit searchdoc.Feldname = "Wert" z.B.
Hallo,
ich hab das gerade mal getestet mit der Methode
searchdoc.Keyword_Status = "Built-in"
Der wert wird allerdings nicht in das Document reingeschrieben.