Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: my head am 15.05.03 - 13:15:13
-
wie öffne ich eine datenbank mit script damit ich darin etwas suchen kann?
ich hab den namen und will in der anderen db anhand des namens eine tel-nr finden...
-
dim db as NotesDatabase
Set db = New NotesDatabase(dbServer, dbPath )
suchen mit der Funktion db.search
ist alles in der Hilfe sehr gut beschrieben ;)
cu
-
wenn ich mit einer collection dann durch alle dokumente gehe, brauch ich ne schleife...
do while doc <>""
....
loop
funktioniert nicht... was brauch ich da??
-
Set doc = documentCollection.GetFirstDocument
...
While Not (doc Is Nothing)
.....
Set doc = documentCollection.GetNextDocument(doc)
Wend
Sollte funktionieren
Gruß
MisterDa
-
ich habe das ganze so gelöst... krieg aber immer die meldung "type mismatch" beim ausführen
Sub Initialize
'Variablendeklarationen für AKD-TelefonDB
Dim session As New NotesSession
Dim db As NotesDatabase
Dim view As NotesView
Dim collection As NotesViewEntryCollection
Dim doc As NotesDocument
Dim entry As NotesViewEntry
'Variablendeklarationen für DB "alle Nummern"
Dim srcDb As NotesDatabase
Dim srcView As NotesView
Dim srcCollection As NotesViewEntryCollection
Dim srcDoc As NotesDocument
Dim srcEntry As NotesViewEntry
'Variablenbelegung für AKD-TelefonDB
Set db = session.CurrentDatabase
Set view = db.GetView("uebersicht")
Set collection = view.AllEntries
'Variablenbelegung für DB "alle Nummern"
Set srcDb = New NotesDatabase("","names.nsf")
Set srcView = srcDb.GetView("People")
Set srcCollection = srcview.AllEntries
'Variablenbelegung zum "Suchen"
Set entry = collection.GetFirstEntry()
Set doc = entry.Document
Set srcEntry = srcCollection.GetFirstEntry()
Set srcDoc =srcEntry.Document
While Not (doc Is Nothing)
If doc.nmbTel = "" Then
If doc.txtNachname = srcDoc.LastName Then
If doc.txtVorname = src.FirstName Then
doc.nmbTel = srcDoc.OfficePhoneNumber
Else
Set srcEntry = srcCollection.GetNextEntry(SrcEntry)
Set srcDoc =srcEntry.Document
End If
Else
Set srcEntry = srcCollection.GetNextEntry(srcEntry)
Set srcDoc =srcEntry.Document
End If
End If
Set entry = collection.GetNextEntry(entry)
Set doc = entry.Document
Wend
End Sub
-
an welcher Stelle kriegst die Meldung genau? Hast mal den debugger drübelaufen lassen?
MisterDa
-
weiß nicht wo!
krieg die meldung beim ausführen!
wie komm ich in den debug-modus?
bzw. wie stell ich fest wo der fehler ist??
-
in den Debug-Modus kommst über Datei->Extras->Debug Lotus Script
Der Debugger startet dann automatisch, sobald du beim Ausführen Code ausführst..
Dann kannst du deine Code-Zeilen Schritt für Schritt durchgehen und feststellen wo der Fehler liegt.
MisterDa
-
if doc.nmbTel = "" then
da ist der type mismatch...
nmbTel ist ein textfeld
-
Hi,
die Abfrage muß so aussehen:
if doc.nmbTel(0) = "" then ...
Axel
-
in diesem script sind zwei fehler (fett markiert!):
1. hier sollte der wert in die andere variable übertragen werden...
2. hier kommt die meldung "object variable not set"
kann mir irgendwer helfen??
ich hab nämlich keine ahnung was das sein könnte!
danke schon mal
Sub Initialize
Dim schalter As Integer
'Variablendeklarationen für AKD-TelefonDB
Dim session As New NotesSession
Dim db As NotesDatabase
Dim view As NotesView
Dim collection As NotesViewEntryCollection
Dim doc As NotesDocument
Dim entry As NotesViewEntry
'Variablendeklarationen für DB "alle Nummern"
Dim srcDb As NotesDatabase
Dim srcView As NotesView
Dim srcCollection As NotesViewEntryCollection
Dim srcDoc As NotesDocument
Dim srcEntry As NotesViewEntry
'Variablenbelegung für AKD-TelefonDB
Set db = session.CurrentDatabase
Set view = db.GetView("uebersicht")
Set collection = view.AllEntries
'Variablenbelegung für DB "alle Nummern"
Set srcDb = New NotesDatabase("","names.nsf")
Set srcView = srcDb.GetView("People")
Set srcCollection = srcview.AllEntries
'Variablenbelegung zum "Suchen"
Set entry = collection.GetFirstEntry()
Set doc = entry.Document
Set srcEntry = srcCollection.GetFirstEntry()
Set srcDoc =srcEntry.Document
While Not (doc Is Nothing)
schalter = 0
If doc.nmbTel(0)= "" Then
While Not schalter = 1
If doc.txtNachname(0)= srcDoc.LastName(0) Then
If doc.txtVorname(0) = srcDoc.FirstName(0) Then
doc.nmbTel = srcDoc.OfficePhoneNumber
schalter = 1
Else
Set srcEntry = srcCollection.GetNextEntry(SrcEntry)
Set srcDoc =srcEntry.Document
End If
Else
Set srcEntry = srcCollection.GetNextEntry(srcEntry)
Set srcDoc =srcEntry.Document
End If
Wend
End If
Set entry = collection.GetNextEntry(entry)
Set doc = entry.Document
Wend
End Sub
-
1) Hier muß mindestens das item angesprochen werden :
doc.nmbTel = srcDoc.OfficePhoneNumber(0)
sicher wäre da auch noch eine Zuweisung a la
set item =
Hier funktioniert es :
Set srcEntry = srcCollection.GetFirstEntry()
und hier nicht :
Set srcEntry = srcCollection.GetNextEntry(srcEntry)
Suche den Unterschied :-)
ciao
Don Pasquale
-
Hi,
1) Hier muß mindestens das item angesprochen werden :
doc.nmbTel = srcDoc.OfficePhoneNumber(0)
Da muss ich aber widersprechen. Das sollte auch so gehen:
doc.nmbTel = srcDoc.OfficePhoneNumber
Ich mach das nur so und habe bisher nie Probleme gehabt.
Hier funktioniert es :
Set srcEntry = srcCollection.GetFirstEntry()
und hier nicht :
Set srcEntry = srcCollection.GetNextEntry(srcEntry)
Suche den Unterschied :-)
Wo soll den bitte schön der Unterschied sein? Oder bin ich blind so früh am Morgen.
Axel
-
... vielleicht ist srcdoc nothing.
ich würde das mal im debugger nachprüfen.