Autor Thema: Automatischer Feldeintrag aus anderer DB  (Gelesen 5586 mal)

Offline Joanie

  • Frischling
  • *
  • Beiträge: 43
  • Geschlecht: Weiblich
Automatischer Feldeintrag aus anderer DB
« am: 03.01.03 - 10:46:47 »
Hi,

folgendes problem: ich würd gern in eine eingabemaske automatisch Daten eintragen, die ich in einer anderen DB hinterlegt habe.
Bsp.: wenn ich den Namen einer person eingebe, dann sollen automatisch die felder Phone,Fax und Email ausgefüllt werden?
Gibt´s da ne Möglichkeit, das so einfach wie möglich zu machen?
Bin nicht so wirklich der notes-spezialist....

gruß,
Joanie

Offline Rob Green

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.651
  • Geschlecht: Männlich
    • Meipor
Re:Automatischer Feldeintrag aus anderer DB
« Antwort #1 am: 03.01.03 - 10:54:37 »
schau mal auf die @dblookup Formel Syntax:

@DbLookup( Klasse : "NoCache" ; Server  : Datenbank  ; Ansicht  ; Schlüssel  ; Feldname ) oder
@DbLookup( Klasse : "NoCache" ; Server  : Datenbank  ; Ansicht  ; Schlüssel  ; SpaltenNr )

Unter Server kannst Du jeden beliebigen Notesserver eintragen, auf den die User Zugriff haben, bzw. auf die eingetragene DB die User Zugriff haben.

Der "Schlüssel" ist Dein Suchbegriff in der "Ansicht" der eingetragenen DB. Der Suchbegriff wird immer in der ersten UND sortierten Spalte der Ansicht gesucht. Der Suchbegriff ist in Deinem Falle der Name.

Der Rückgabewert ist entweder der Inhalt des Feldes oder der Eintrag in der angegebenen Spaltennummer der Ansicht.
« Letzte Änderung: 03.01.03 - 10:57:23 von Rob Green »
Vielleicht verdirbt Geld wirklich den Charakter.
Auf keinen Fall aber macht Mangel an Geld ihn besser.
(John Steinbeck)

Meiporblog: http://www.meipor.de/blog
allg. Unternehmerblog: http://www.m-e-x.de/blog

Offline Joanie

  • Frischling
  • *
  • Beiträge: 43
  • Geschlecht: Weiblich
Re:Automatischer Feldeintrag aus anderer DB
« Antwort #2 am: 03.01.03 - 11:15:27 »
Hört sich soweit logisch an, aber er gibt mir ne Fehlermeldung.

"Feld:"Telefon": eintrag im index nicht gefunden oder der index ist für die ansicht nicht aufgebaut.

@DbLookup( Klasse : "NoCache" ; Server  : Test_contacts  ; Output ; Name ; Phone)

Das ist meine Formel. "Test_contacts" ist der Name der DB, in der die Daten hinterlegt sind, "Output" heißt die View, "Name" ist die Schlüsselspalte und "Phone" ist der Feldname, aus der der Wert übernommen werden soll.

blöde frage: muss ich da irgendwo anführungszeichen machen??

gruß,
Joanie

Offline Rob Green

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.651
  • Geschlecht: Männlich
    • Meipor
Re:Automatischer Feldeintrag aus anderer DB
« Antwort #3 am: 03.01.03 - 11:38:05 »
ja, die lieben Anführungszeichen...dblookup ist das echt schrecklich.

Da ich das nie genau weiß, helfe ich mir so:
Code
_server:="ABC";
_db:="Test_contacts.nsf";
_view="Output";
_searchkey:=Name;
_returnvalue:="Phone";

_treffer:=@DbLookup( "" : "NoCache" ; _server  : _db  ; _view ; _searchkey ; _returnvalue);

@If( @IsError(_treffer ); ""; _treffer )
Durch die Verwendung von Variablen benötige ich keine Anführungsstriche mehr. Damit kann ich auch keinen Fehler mehr machen. Und die Verwendung von iserror führt zu einer passiven Sicherheit, sollte kein Treffer gefunden werden und damit der user nicht durch eine doofe Fehlermeldung bei dblookup irritiert wird.

(normalerweise kommen nahezu bei allen Eingaben Anfürhunsstriche in der dblookup, außer bei Verwendung der Spaltennummer)
« Letzte Änderung: 03.01.03 - 11:43:11 von Rob Green »
Vielleicht verdirbt Geld wirklich den Charakter.
Auf keinen Fall aber macht Mangel an Geld ihn besser.
(John Steinbeck)

Meiporblog: http://www.meipor.de/blog
allg. Unternehmerblog: http://www.m-e-x.de/blog

Offline Joanie

  • Frischling
  • *
  • Beiträge: 43
  • Geschlecht: Weiblich
Re:Automatischer Feldeintrag aus anderer DB
« Antwort #4 am: 03.01.03 - 11:38:28 »
Ok, hab die Formel jetzt soweit abgeändert, das sie eigentlich funktionieren müßte:
@DbLookup( " " : "NoCache" ; "Lokal"  : "Test_contacts.nsf"  ; "Output" ; "Name" ; "Phone")

Jetzt bekomm ich die Fehlermeldung: Der benötigte externe Datenbanktreiber kann nicht gefunden werden.

Was nun?

Offline Rob Green

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.651
  • Geschlecht: Männlich
    • Meipor
Re:Automatischer Feldeintrag aus anderer DB
« Antwort #5 am: 03.01.03 - 11:41:27 »
siehe Antwort vor Deinem letzten Posting.

Server "lokal"... ;D...mach mal folgendes:

_server:="";
_db:="Test_contacts.nsf";
_view="Output";
_searchkey:=Name;
_returnvalue:="Phone";

_treffer:=@DbLookup( "" : "NoCache" ; _server  : _db  ; _view ; _searchkey ; _returnvalue);

Server bleibt bei einer lokalen DB leer! Einfach nur doppelte Anführungsstriche "".

Achtung: wenn die DB in einem Unterpfad von Notes\Data liegt, mußt Du den Pfad von Notes\Data aus angeben bzw. wenn es völlig außerhalb von Notes\data liegt, den kompletten Pfad.

zb "c:\\pfad1\\pfad2\\pfad3\\db.nsf"
« Letzte Änderung: 03.01.03 - 11:42:59 von Rob Green »
Vielleicht verdirbt Geld wirklich den Charakter.
Auf keinen Fall aber macht Mangel an Geld ihn besser.
(John Steinbeck)

Meiporblog: http://www.meipor.de/blog
allg. Unternehmerblog: http://www.m-e-x.de/blog

Offline Joanie

  • Frischling
  • *
  • Beiträge: 43
  • Geschlecht: Weiblich
Re:Automatischer Feldeintrag aus anderer DB
« Antwort #6 am: 03.01.03 - 11:49:38 »
@DbLookup( "" : "NoCache" ; ""  : "Test_contacts.nsf"  ; "Output" ; Name ; "Phone");

die Index-fehlermeldung von vorher.....

Offline Rob Green

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.651
  • Geschlecht: Männlich
    • Meipor
Re:Automatischer Feldeintrag aus anderer DB
« Antwort #7 am: 03.01.03 - 11:53:21 »
wie gesagt, den Tip habe ich Dir bereits gegeben, woran es liegt und wie man es vermeiden kann ::). Anführungsstriche....

Auszug aus Help und LESE die Formel bitte langsaaaam:

Diese Formel gibt den Wert zurück, der im Statusfeld des Dokuments "Virus-Check" gespeichert ist. Auf dieses Dokument wird über die Ansicht "In Arbeit" der Datenbank PROJEKTE.NSF im Unterverzeichnis SCHMITT auf dem Server RESEARCH zugegriffen. Die Informationen wird nicht im Cache zwischengespeichert, so daß, wenn die Formel in derselben Arbeitssitzung erneut aufgerufen wird, eine neue Suche ausgeführt werden muß. Auf diese Weise wird sichergestellt, daß die zurückgelieferten Stati immer aktuell sind.
@DbLookup("":"NoCache";"RESEARCH":"SCHMITT\\PROJEKTE.NSF"; "In Arbeit";"Virus-Check";"Status")
Vielleicht verdirbt Geld wirklich den Charakter.
Auf keinen Fall aber macht Mangel an Geld ihn besser.
(John Steinbeck)

Meiporblog: http://www.meipor.de/blog
allg. Unternehmerblog: http://www.m-e-x.de/blog

Offline Joanie

  • Frischling
  • *
  • Beiträge: 43
  • Geschlecht: Weiblich
Re:Automatischer Feldeintrag aus anderer DB
« Antwort #8 am: 03.01.03 - 12:01:04 »
die hilfe hab ich auch schon gelesen, aber 1. hab ich mich an dein beispiel gehalten, da waren für Name keine Anführungsstriche und 2. bekomm ich( mit oder ohne A.) die selbe Fehlermeldung....
naja, muss ich noch ein bissel probieren....

Offline Rob Green

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.651
  • Geschlecht: Männlich
    • Meipor
Re:Automatischer Feldeintrag aus anderer DB
« Antwort #9 am: 03.01.03 - 12:09:20 »
der Name war bei mir ohne Anführungsstriche, da er direkt aus dem Doc und dessen Feld Name den Wert ausliest. Hätte ich bei mir searchkey:="Name" geschrieben, würde er immer nach dem String "Name" suchen.

Direkt in DBLookup müßte ichatürlich "Name" mit Anführungsstrichen schreiben. Ich sags ja, dblookup ist garstig.

Verwenden mal bitte genau meine Formel mit den Variablenangaben davor. Irgendwas ist faul..stimmt der DB Name und ist die DB auch im Notes\Data Pfad? Ist der Viewname wirklich Output?


edit:
schreib das mal so ab:
_server:="";
_db:="Test_contacts.nsf";
_serverdb:=_server+":"+_db;
_view="Output";
_searchkey:=Name;
_returnvalue:="Phone";

_treffer:=@DbLookup( "" : "NoCache" ; _serverdb  ; _view ; _searchkey ; _returnvalue);

@If( @IsError(_treffer ); ""; _treffer )

Klappt das dann? :P
« Letzte Änderung: 03.01.03 - 12:15:05 von Rob Green »
Vielleicht verdirbt Geld wirklich den Charakter.
Auf keinen Fall aber macht Mangel an Geld ihn besser.
(John Steinbeck)

Meiporblog: http://www.meipor.de/blog
allg. Unternehmerblog: http://www.m-e-x.de/blog

Offline Joanie

  • Frischling
  • *
  • Beiträge: 43
  • Geschlecht: Weiblich
Re:Automatischer Feldeintrag aus anderer DB
« Antwort #10 am: 03.01.03 - 12:28:44 »
klappt insofern, das ich keine fehlermeldung mehr bekomme!
Thanks a lot!!!!
Aber der kleine Schönheitsfehler ist: er trägt keine Daten ein.....
hab die felder als "Berechnet" angelegt und die Formel in "Wert" reingeschrieben. Richtig oder falsch??

Offline Rob Green

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.651
  • Geschlecht: Männlich
    • Meipor
Re:Automatischer Feldeintrag aus anderer DB
« Antwort #11 am: 03.01.03 - 12:34:26 »
feld Name sollte natürlich editierbar sein,
das berechnete Feld, das zB die dazugehörige Tel.nummer ausspuckt sollte die dblookup Formel enthalten.

Gehe bitte in die Contact DB und schau mal im View Output nach, was in der ersten sortierten Spalte für Begriffe stehen. Steht da zB "HANS", trage dann testhalber ins Namensfeld ebenso "Hans" ein. Dann solltest Du etwas zurückbekommen (insofern Hans eine eingetragene Tel.nummer im Feld Phone hat).
Vielleicht verdirbt Geld wirklich den Charakter.
Auf keinen Fall aber macht Mangel an Geld ihn besser.
(John Steinbeck)

Meiporblog: http://www.meipor.de/blog
allg. Unternehmerblog: http://www.m-e-x.de/blog

Offline Joanie

  • Frischling
  • *
  • Beiträge: 43
  • Geschlecht: Weiblich
Re:Automatischer Feldeintrag aus anderer DB
« Antwort #12 am: 03.01.03 - 13:24:56 »
funktioniert nicht!

keine fehlermeldung, aber er tut´s einfach nicht... ???

Offline Rob Green

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.651
  • Geschlecht: Männlich
    • Meipor
Re:Automatischer Feldeintrag aus anderer DB
« Antwort #13 am: 03.01.03 - 14:05:21 »
kannst Du bei DBs hier gezipped reinstellen?
Brauche nur die Maske der DB mit dem Namensfeld und die Contact DB mit der einen Maske und dem View Output plus einem Testeintrag.
Vielleicht verdirbt Geld wirklich den Charakter.
Auf keinen Fall aber macht Mangel an Geld ihn besser.
(John Steinbeck)

Meiporblog: http://www.meipor.de/blog
allg. Unternehmerblog: http://www.m-e-x.de/blog

Offline Joanie

  • Frischling
  • *
  • Beiträge: 43
  • Geschlecht: Weiblich
Re:Automatischer Feldeintrag aus anderer DB
« Antwort #14 am: 03.01.03 - 14:21:56 »
hoffe das hilft!

Offline Wipe

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 873
  • Geschlecht: Männlich
Re:Automatischer Feldeintrag aus anderer DB
« Antwort #15 am: 03.01.03 - 15:01:24 »
Wenn ich mich recht erinnere muß ich doch die Infos aus der anderen DB über eine angesprochene Spalte abziehen

Bsp:
FIELD ViewName:="Personen";
@SetField("Urlauber";@PickList([Custom]:[Single];"":"";ViewName;"Person sortiert nach Nachnamen";"Bitte wählen Sie Ihren Namen aus";1));
@SetField("Abteilung";@DbLookup( "Notes" : "NoCache" ; ""  : ""  ; ViewName; Urlauber  ; 4 ));

und je nach weiterer Information hole ich mir eine andere Spalte.

Offline Joanie

  • Frischling
  • *
  • Beiträge: 43
  • Geschlecht: Weiblich
Re:Automatischer Feldeintrag aus anderer DB
« Antwort #16 am: 03.01.03 - 15:14:06 »
Und was entspricht dann "Abteilung" ??
den rest hab ich hoffentlich richtig angepasst:

FIELD ViewName:="Output";

@SetField("????";@DbLookup("":"NoCache";"":"Test_contacts.nsf";ViewName;Name;3))

Offline joringel

  • Aktives Mitglied
  • ***
  • Beiträge: 105
  • Geschlecht: Männlich
Re:Automatischer Feldeintrag aus anderer DB
« Antwort #17 am: 03.01.03 - 15:28:08 »
_serverdb:=_server+":"+_db;    <- das gibt nur einen String, @dblookup erwartet eine Liste...

muss heissen: _serverdb := _server : _db;

_view="Output";    <- da fehlt ein Doppelpunkt...

_searchkey:=Name;    <- was ist 'Name'? Da muss der Feldname des Feldes hinein, das den Wert enthält, den du in der Ansicht finden willst...
.
.

Manchmal ist es ganz brauchbar, _erstmal_ alle Parameter im @dblookup hart zu kodieren -> schliesst solche Fehler aus...

@dblookup("":"nocache"; "":"Test_contacts.nsf"; "Output"; "Max Müller"; "Phone")


Gruss
Joringel
Nenne nie einen Server 'Lokal'...

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re:Automatischer Feldeintrag aus anderer DB
« Antwort #18 am: 03.01.03 - 15:30:19 »
@Bubble

Bei DBLookup kannst du entweder die Nummer einer Spalte in der Ansicht angeben oder den Namen eines Feldes des entsprechenden Dokumentes.

@Joanie

Wird der Wert auch nach der Aktualisierung des Dokumentes nicht eingetragen ?


Axel
 
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline Rob Green

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.651
  • Geschlecht: Männlich
    • Meipor
Re:Automatischer Feldeintrag aus anderer DB
« Antwort #19 am: 03.01.03 - 15:39:21 »
@joringel, danke für die Fehlerbereiniung. Könnte man nicht auf dem Forum einen eingebauten Formel-Debugger verwenden?  ;D ;D ;D
Vielleicht verdirbt Geld wirklich den Charakter.
Auf keinen Fall aber macht Mangel an Geld ihn besser.
(John Steinbeck)

Meiporblog: http://www.meipor.de/blog
allg. Unternehmerblog: http://www.m-e-x.de/blog

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz