Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: my head am 15.05.03 - 13:15:13

Titel: db öffnen
Beitrag 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...

Titel: Re:db öffnen
Beitrag von: Performance am 15.05.03 - 13:24:49
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
Titel: Re:db öffnen
Beitrag von: my head am 15.05.03 - 14:58:30
wenn ich mit einer collection dann durch alle dokumente gehe, brauch ich ne schleife...

do while doc <>""
 ....
loop

funktioniert nicht... was brauch ich da??
Titel: Re:db öffnen
Beitrag von: MisterDa am 15.05.03 - 15:07:46
Set doc = documentCollection.GetFirstDocument
...
While Not (doc Is Nothing)
               .....
   Set doc = documentCollection.GetNextDocument(doc)
Wend

Sollte funktionieren

Gruß
MisterDa
Titel: Re:db öffnen
Beitrag von: my head am 15.05.03 - 15:15:22
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
Titel: Re:db öffnen
Beitrag von: MisterDa am 15.05.03 - 15:22:35
an welcher Stelle kriegst die Meldung genau? Hast mal den debugger drübelaufen lassen?

MisterDa
Titel: Re:db öffnen
Beitrag von: my head am 15.05.03 - 15:30:46
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??
Titel: Re:db öffnen
Beitrag von: MisterDa am 15.05.03 - 15:34:32
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
Titel: Re:db öffnen
Beitrag von: my head am 15.05.03 - 15:39:20
if doc.nmbTel = "" then

da ist der type mismatch...
nmbTel ist ein textfeld
Titel: Re:db öffnen
Beitrag von: Axel am 15.05.03 - 15:41:08
Hi,

die Abfrage muß so aussehen:

if doc.nmbTel(0) = "" then ...


Axel
Titel: Re:db öffnen
Beitrag von: my head am 16.05.03 - 08:41:20
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
Titel: Re:db öffnen
Beitrag von: Don Pasquale am 16.05.03 - 08:49:08


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
Titel: Re:db öffnen
Beitrag von: Axel am 16.05.03 - 09:04:47
Hi,

Zitat
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.


Zitat
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


Titel: Re:db öffnen
Beitrag von: Axel_Janssen am 16.05.03 - 09:13:13
... vielleicht ist srcdoc nothing.
ich würde das mal im debugger nachprüfen.