Domino 9 und frühere Versionen > Entwicklung

Automatischer Feldeintrag aus anderer DB

(1/6) > >>

Joanie:
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

Rob Green:
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.

Joanie:
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

Rob Green:
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 )

--- Ende Code ---
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)

Joanie:
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?

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln