Autor Thema: Felder auslesen und in eine neue Datenbank einlesen  (Gelesen 2055 mal)

Offline master

  • Junior Mitglied
  • **
  • Beiträge: 85
  • Geschlecht: Männlich
Hallo,
ich bin ein Neuling in der Notesprogrammierung. Ich habe eine Datenbank erstellt, die unter anderem auch Adressdaten enthält. Es gibt 2 verschiedene Masken für Firmen und Personen. Ich möchte nun aus einer anderen Adressdatenbank in einer Ansicht Datensätze auswählen und diese dann in die entspechenden Felder der neuen Datenbank importieren. Geht so was mit Formeln? Damit habe ich im Zuge der Datenbankerstellung schon ein wenig gearbeitet. Für Vorschläge auch in Script wäre ich sehr dankbar.

Client 6.5.2
Server 6.0.1
Alte Datenbank noch 4er Format

Offline rar

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 856
  • Geschlecht: Männlich
  • Des passt scho
    • click
Re: Felder auslesen und in eine neue Datenbank einlesen
« Antwort #1 am: 28.09.04 - 08:41:29 »
Wenn die Masken und die Felder in der Zieldatenbank gleich heißen wie in der QuellDB, dann kannst du es einfach mit Crtl+C, Crtl+V machen.
Ohne Formeln und Script.
†090620141300

Offline master

  • Junior Mitglied
  • **
  • Beiträge: 85
  • Geschlecht: Männlich
Re: Felder auslesen und in eine neue Datenbank einlesen
« Antwort #2 am: 28.09.04 - 09:09:17 »
Es geht nicht um ein paar Felder. Ich habe eine alte Adressdatenbank, deren Daten in eine neue Datenbank übertragen werden sollen. Ca. 1000 Datensätze. Die Felder heißen leider nicht gleich. Ich möchte in der alten Ansicht alle Datensätze auswählen die übertragen werden sollen (alten Müll ausschließen) ünd diese dann in die neue Datenbank eintragen lassen. z.b Feld Name in Feld Neuname, Ort in Neuort usw.

Offline rar

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 856
  • Geschlecht: Männlich
  • Des passt scho
    • click
Re: Felder auslesen und in eine neue Datenbank einlesen
« Antwort #3 am: 28.09.04 - 09:50:07 »
In Formelsprache geht sowas nicht.
Du mußt in der alten DB einen Agenten erstellen, und dann alle Dokumente einzeln rüberkopieren.

z.B. so:
   Dim session As New NotesSession
   Dim QuellDB As NotesDatabase
   Dim ZielDB As NotesDatabase
   Dim coll As NotesDocumentCollection
   Dim doc As NotesDocument
   Dim docNeu As NotesDocument
   
   Set QuellDB = session.CurrentDatabase
   Set ZielDB = session.GetDatabase(QuellDB.Server,"ZielDBPfad")
   Set coll = QuellDB.UnprocessedDocuments
   Set doc = coll.GetFirstDocument()   
   Do While Not doc Is Nothing
      Set docNew = New NotesDocument(ZielDB)
      docNeu.Form = "Neuer Maskenname"
      docNeu.NeuesFeld = doc.AltesFeld
      ...
      Call docNeu.Save(True,True)
      Set doc = coll.GetNextDocument(doc)   
   Loop

In dem Beispiel mußt du den Agenten aus einer Ansicht heraus starten, nachdem du deine zu kopierenden Dokumente markiert hast.

HTH
-daniel
†090620141300

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Felder auslesen und in eine neue Datenbank einlesen
« Antwort #4 am: 28.09.04 - 13:43:31 »
Naja, wenn es eine einmalige Aktion ist, kann man ggf. auch mit @functions arbeiten.

- View für die neuen Dokumente erstellen (SELECT Form = AlterMaskenname)
- Dokumente in alter DB kopieren und in die neue fallen lassen
- Agent schreiben für selektierte Dokumente
- üble Tipparbeit leisten:
FIELD NeuerFeldname1 := AlterFeldname1;
FIELD AlterFeldname1 := @DeleteField;
usw.
Dabei auch das Form-Item auf den neuen Wert bringen !

HTH,

Bernhard

Offline master

  • Junior Mitglied
  • **
  • Beiträge: 85
  • Geschlecht: Männlich
Re: Felder auslesen und in eine neue Datenbank einlesen
« Antwort #5 am: 05.10.04 - 12:01:30 »
In Formelsprache geht sowas nicht.
Du mußt in der alten DB einen Agenten erstellen, und dann alle Dokumente einzeln rüberkopieren.

z.B. so:
   Dim session As New NotesSession
   Dim QuellDB As NotesDatabase
   Dim ZielDB As NotesDatabase
   Dim coll As NotesDocumentCollection
   Dim doc As NotesDocument
   Dim docNeu As NotesDocument
   
   Set QuellDB = session.CurrentDatabase
   Set ZielDB = session.GetDatabase(QuellDB.Server,"ZielDBPfad")
   Set coll = QuellDB.UnprocessedDocuments
   Set doc = coll.GetFirstDocument()   
   Do While Not doc Is Nothing
      Set docNew = New NotesDocument(ZielDB)
      docNeu.Form = "Neuer Maskenname"
      docNeu.NeuesFeld = doc.AltesFeld
      ...
      Call docNeu.Save(True,True)
      Set doc = coll.GetNextDocument(doc)   
   Loop

In dem Beispiel mußt du den Agenten aus einer Ansicht heraus starten, nachdem du deine zu kopierenden Dokumente markiert hast.

HTH
-daniel



Nach einer kleinen Änderung klappt es super! Ich habe in der Zeile
docNeu.NeuesFeld = doc.AltesFeld

geändert in docNeu.Neues Feld = doc.AltesFeld(0)


Danke

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Felder auslesen und in eine neue Datenbank einlesen
« Antwort #6 am: 05.10.04 - 17:14:33 »
Zitat
Nach einer kleinen Änderung klappt es super! Ich habe in der Zeile
docNeu.NeuesFeld = doc.AltesFeld

geändert in docNeu.Neues Feld = doc.AltesFeld(0)

Warum das eigentlich ? Im Backend kannst Du doch die Item-Inhalte problemlos überbügeln ... In welcher Konstellation hattest Du denn da Probleme ?
Wenn doc.AltesFeld eine Liste enthält, fehlt Dir dann ja in doc Wesentliches ...

Sag' mal an, bitte.

Bernhard

Offline master

  • Junior Mitglied
  • **
  • Beiträge: 85
  • Geschlecht: Männlich
Re: Felder auslesen und in eine neue Datenbank einlesen
« Antwort #7 am: 15.10.04 - 13:09:17 »
Hallo, wie gesagt bin ich Anfänger. Den Tipp mit der (0) habe ich von einem Kollegen. Hab keine Ahnung warum, aber damit gehts. Werde mir das mal bei Gelegenheit erkären lassen.
Gruß Klaus

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz