Datensätze mit Rechnenblättern ohen FileTime oder Erweiterungen?

Liebe ragtime-spezialisten

ich bin schüler und hobbyprogrammierer und wir haben in der schulung zum ERP kaufmann ragtime integriert. nun sind wir alle noch newbies mit dem programm und sollen damit formulare etc in einem modellunternehmen als filiale behandeln.
Ich bin perfektionist und habe mir in den kopf gesetzt die vielen doppeltätigkeiten unter einen hut in nur einer einzigen ragtime datei unterzubringen. dafür habe ich sämtliche formulare und formularblöcke in eine datei ins inventar integriert und dort geordnet. nun möchte ich mithilfe eines rechenblattes erreichen, dass sämtliche daten nur einmalig eingetragen werden müssen in einer hauptansicht (rechenblatt) und von dort in alle für den prozess notwendigen rechenblätter und formulare eingetragen werden. also wie bei einer datenbank, in die man lediglich datensätze einträgt und die formulare beziehen ihre daten aus dieser selbstständig.

dafür brauche ich aber eine funktion, um aus einem rechenblatt einen datensatz per ID abzufragen um damit aus zB einem rechenblatt "Datenbank Debitoren" mittels einer debitoren ID den zugehörigen namen in mein hauptformular einzulesen.

außerdem wäre es ideal, wenn man mittels einer formel eine funktion zum selbstständigen abspeichern einer komponente ermöglichen könnte, also mit setzedateiname und "speichere komponente in ordner.." sozusagen

ich habe schon die option serienbrief gefunden, weiß jedoch nciht, wie ich sie auf eine einzelne komponente, wie zB ein layout mit rechenblättern,grafiken und textfeldern einsetzen kann. ein brief soll die daten aus dem hauptfenster erhalten und dann abgespeichert und 2-fach gedruckt werden..

ich weiß nicht, ob sich erweiterungen auf unserem schulserver installieren lassen und wo ich sie herunterladen kann, daher würde ich darauf möglichst verzichten wollen, jedoch wenn es für meine probleme wirklich keine andere lösung geben solte (falls es sie gibt), wäre ich auch hier für tipps sehr dankbar!

vielen dank für antworten!

Re: Datensätze mit Rechnenblättern ohen FileTime oder Erweiter

#9180 On 17 Januar, 2010 09:41 derjenige said,

wow! so schnell eine antwort und gleich die richtige lösung!
ich danke euch vielmals!!

ähm das mit dem abreißen (also vorlagen im selben dokument zu haben, geht aber nicht oder? bzw. drucken und dann mit dem setzezelle befehl nach dem drucken wieder alle formulare leeren?

in meinen formularen kommen leider daten vor, die aus artikelekarten entnommen werden sollen und diese werden durch das hauptformular der rtd hauptdatei geliefert. (also ich hab überlegt die vorlagen formulare doch herauszunehmen und die daten dafür doch nochmal eintragen zu lassen, doch dann fehlt mir die praktische funktionatlität der automatisch eintragenden artikelkarten-werte..

ich hab sonst überlegt dass meine "kollegen" (ich bin im modellunternehemn der filialleiter) immer die rechnungen und lieferscheine ausdrucken müssen bevor sie den "formulare zurücksetzen"-knopf im hauptformular klicken sollen. ich habe diesen automatismus deshalb einführen wollen, weil meine "mitarbeiter" leider kein-plan- menschen sind und ständig fehler fabrizieren, die durch die einmalige eintragung und deren einmaliger kontrolle verhindert werden sollen... :)

also auf jeden fall habt ihr mir sehr sehr sehr geholfen mit dem datenbank-verhalten und auch mit dem problem was ich noch garnicht angesprochen hatte, dass die datensätze somit leben würden
das hätte ich als nächstes gefragt :p

Re: Datensätze mit Rechnenblättern ohen FileTime oder Erweiter

#9167 On 14 Januar, 2010 18:27 Thomas Kaegi said,

Hallo du namenloser Derjenige

Ich nehme an, du hast ein Rechenblatt, in welchem in jeder Zeile eine Identifikation und in den folgenden Spalten Namen und Adressen, die zu dieser Identifikation gehören, stehen. Wenn schon die Zeilennummer allein als Identifikation dient, so können alle weiteren Daten aus allen Rechenblättern mit der Funktion "Index" geholt werden. Konkret sieht das so aus:

Annahme 1: dein Rechenblatt heisst "Stammdaten"
Annahme 2: die Zeilennummer dient als Identifikation
Annahme 3: der Name stehe in Spalte A

So holt die Funktion
Index(Stammdaten!A:A;Zeilennummer)
den gewünschten Namen aus der Tabelle. Aber das ist wahrscheinlich zu einfach, also

Annahme 1: wie oben
Annahme 2: In Spalte A stehe eine eindeutige Identifikation
Annahme 3: Der Name stehe in Spalte B (und für das letzte Beispiel in Spalte C die Strasse)

So heisst die Funktion
Index(Stammdaten!B:B;Auswahl(Stammdaten!A:A;LfdZelle="gesuchter Ident";1))
Allerdings ist es sinnvoll, in der Zieltabelle ein Zelle zu definieren, in welcher die folgende Funktion steht:
Auswahl(Stammdaten!A:A;LfdZelle="gesuchter Ident";1)
So kann das Resultat dieser Funktion für alle gesuchten Elemente verwendet werden. Also in obigem Beispiel dann:
Index(Stammdaten!B:B;Referenz zur Hilfszelle)

Im Grunde genommen ist das aber etwas fehleranfällig. Die Tabellen leben ja. Nehmen wir mal an, ein Kunde ziehe an eine neue Adresse. Dann soll ja die vor dem Umzug ausgestellte Rechnung immer noch auf die alte Adresse lauten und nicht auf die neue.

Die Lösung dieses Problems ist etwas komplexer. Im Formular könnte in einer Rechenblattzelle der gesuchte Ident eingegeben werden. Daneben steht ein Knopf, der folgende Formel enthält:
VSuchlauf(Stammdaten!A:C;LfdZelle=Referenz zur Zelle mit dem gesuchten Ident;0;SetzeZelle(Spaltenwert(2);ZieladresseNamen)&SetzeZelle(Spaltenwert(3);ZieladresseStrasse))
Diese Formel sucht in Spalte A der Stammdaten nach dem Ident, entnimmt der gleichen Zeile, Spalte 2 den Namen und setzt diesen am gewünschten Ort ein, und entnimmt der dritten Spalte der Stammdaten auf der Zeile mit dem gesuchten Ident auch noch die Strasse und überträgt diese an den gewünschten Ort.

Experimentier ein wenig damit - nicht gleich in den richtigen Tabellen. Dann steckst du schon mitten drin!

Gruss, Thomas

Re: Datensätze mit Rechnenblättern ohen FileTime oder Erweiter

#9181 On 17 Januar, 2010 09:43 derjenige said,

wow! so schnell eine antwort und gleich die richtige lösung!
ich danke euch vielmals!!

ähm das mit dem abreißen (also vorlagen im selben dokument zu haben, geht aber nicht oder? bzw. drucken und dann mit dem setzezelle befehl nach dem drucken wieder alle formulare leeren?

in meinen formularen kommen leider daten vor, die aus artikelekarten entnommen werden sollen und diese werden durch das hauptformular der rtd hauptdatei geliefert. (also ich hab überlegt die vorlagen formulare doch herauszunehmen und die daten dafür doch nochmal eintragen zu lassen, doch dann fehlt mir die praktische funktionatlität der automatisch eintragenden artikelkarten-werte..

ich hab sonst überlegt dass meine "kollegen" (ich bin im modellunternehemn der filialleiter) immer die rechnungen und lieferscheine ausdrucken müssen bevor sie den "formulare zurücksetzen"-knopf im hauptformular klicken sollen. ich habe diesen automatismus deshalb einführen wollen, weil meine "mitarbeiter" leider kein-plan- menschen sind und ständig fehler fabrizieren, die durch die einmalige eintragung und deren einmaliger kontrolle verhindert werden sollen... :)

also auf jeden fall habt ihr mir sehr sehr sehr geholfen mit dem datenbank-verhalten und auch mit dem problem was ich noch garnicht angesprochen hatte, dass die datensätze somit leben würden
das hätte ich als nächstes gefragt :p

Re: Datensätze mit Rechnenblättern ohen FileTime oder Erweiter

#9182 On 17 Januar, 2010 12:14 Thomas Kaegi said,

Hallo Derjeniger

Deine Problemschilderung ist für mich recht nebulös. Von was für Vorlagen, die im selben Dokument sein sollen, sprichst du?

"Abreissen" deutet an, dass du mit Formularen arbeiten willst. Im von einem Formularblock abgerissenen Dokument steht alles so, wie es im Formularblock definiert ist. Alle Daten können aber im abgerissenen Dokument verändert werden, sofern sie nicht geschützt sind. Vor allem wird aber das vom Block abgerissene Formular ausgefüllt, d.h. es werden Daten eingetragen - nicht im Formularblock, sondern im abgerissenen Dokument (Einzelformular).

Aus meiner Sicht sollten die Stammdaten (Artikelstamm, Kundenstamm) je in einem eigenen Stammdokument (oder in zwei Rechenblättern im gleichen Stammdokument) stehen, auf welches von überall her zugegriffen werden kann. Für Lieferscheine und Rechnungen brauchst du je einen Formularblock (evtl. auch nur einen einzigen, bei dem dann im abgerissenen Dokument mit Knopf bestimmt werden kann, ob es sich um einen Lieferschein oder um eine Rechnung handelt). Von diesem Formularblock (oder den -blöcken) wird jeweils das benötigte Formular abgerissen. In diesem Formular kann ein Knopf stehen, mit welchem die Artikeldaten aus der Stammdatei in die erste freie Zeile einer Tabelle geholt werden, und ein zweiter Knopf, mit welcher die Kundendaten aus der zweiten Stammdatei geholt und im abgerissenen Dokument eingetragen werden. Ich sehe nicht, weshalb du die Daten in diesem Dokument nach dem Drucken wieder löschen willst. Lieferschein oder Rechnung müssen doch im ausgefüllten Zustand abgelegt werden.

Ich habe den Eindruck, dass du schon im Formularblock gewisse Daten eintragen möchstest. RagTime arbeitet aber im Grunde genommen genau so, wie wenn du mit gedruckten Formularen arbeiten würdest. Die gedruckten Formularblöcke enthalten keine Daten. Erst auf dem aberissenen einzelnen Formular (=abgerissenens Dokument) werden die Kunden- und Artikeldaten eingetragen. Im Unterschied zum "Papierbetrieb" bietet aber RagTime die Möglichkeit, im Formularblock die Mechanismen einzubauen, mit denen in den abgerissenen Einzelformularen Daten aus den Stammdaten geholt und im Formular eingetragen werden können. Mach dich also damit vertraut, wie mit RagTime Formularblöcke erzeugt werden: Das leere Einzelformular gestalten und dann im "Sichern unter"-Dialog die Option "Als Formularblock" wählen. Beachte die Unterscheidung: Formularblock / Formular (= vom Formularblock abgerissenen Dokument, d.h ein einzelnes, vom Formularblock abgerissenes Formular, in welches danach Daten eingetragen werden).

Gruss, Welcher

Re: Datensätze mit Rechnenblättern ohen FileTime oder Erweiter

#9183 On 17 Januar, 2010 15:15 Thomas Kaegi said,

Diese Anleitung könnte dich interessieren:
http://experts.ragtime.de/experts/node/2347

Re: Datensätze mit Rechnenblättern ohen FileTime oder Erweiter

#9185 On 19 Januar, 2010 07:03 derjenige said,

Hi Thomas,
Danke für deine fortlaufenden sehr hilfreichen Antworten!
Ich bin schon weiter gekommen mit der Datei, leider happerts nun immernoch an ein paar Stellen.. :/
Und schon wieder eine frage:
ich habe deine datensatz-liefer formel erfolgreich in meine Hauptansicht implementiert, es gibt folgende felder:
Kundenauftrag Relevante Daten Status Aktion
Prozess Datum Kunden ID Kunde Signatur
Posteingang
BlattNr ab Zeile Positionen
Auftragsbuch

Es sind jeweils die Überschriften für die Felder, also die erste Eintragung findet bei statt. die Kunden IDs stehen in einem Rechenblatt DB_Debitoren und bei Kunde findet die Daten-Liefer Formel in einer einzelnen geschützten Zelle Statt:

Wenn(IstNV(Index(DB_Debitoren!B:B;Auswahl(DB_Debitoren!A:A;LfdZelle=Text(C17);1)));'';Index(DB_Debitoren!B:B;Auswahl(DB_Debitoren!A:A;LfdZelle=Text(C17);1)))

Nun soll in der Zelle durch die Abfrage:

Wenn(Und(IstZahl(B17);IstZahl(C17); NICHT (IstLeer(D17)); NICHT (IstLeer(E17)));Knopf('Eintragen';SetzeZelle('Eingetragen';F17));'')

ein Knopf erscheinen, sobald alle benötigten Felder Daten besitzen. Wie du siehst, tut der Knopf aber bisher nichts, als schön auszusehen :/

ich hatte auf dieser Seite:

http://osdir.com/ml/os.apple.ragtime.german/2005-01/msg00312.html

die Anleitung gefunden, wie man die erste freie Zeile in meinem Rechenblatt "Posteingangsbuch" (und in allen weiteren Rechenblättern, wo davon abhängig Neueintragungen automatisch integriert werden sollen) erhält.

Ich hatte mir die Formel für die Aktion des Knopfes folgendermaßen vorgestellt:

UND (SetzeZelle(Text(Aufgabenstatus!B17)); VSuchlauf(Posteingangsbuch!A:A;IstLeer(LfdZelle);0;LfdIndex;LfdZähler=1));
SetzeZelle(Text(Aufgabenstatus!D17)); VSuchlauf(Posteingangsbuch!B:B;IstLeer(LfdZelle);0;LfdIndex;LfdZähler=1)))

Dabei sind Aufgabenstatus!B17 das Feld des Datums und Aufgabenstatus!D17 das Feld des Kundennamens

So sieht die Funktion aus die ich erstellt hab, die aber leider nicht funktioniert:

Wenn(Und(IstZahl(B17);IstZahl(C17); NICHT (IstLeer(D17)); NICHT (IstLeer(E17)));Knopf('Eintragen';SetzeZelle('Eingetragen';F17));Und(SetzeZelle(VSuchlauf(Posteingangsbuch!A:A;IstLeer(LfdZelle);0;LfdIndex;LfdZähler=1);B17);SetzeZelle(VSuchlauf(Posteingangsbuch!B:B;IstLeer(LfdZelle);0;LfdIndex;LfdZähler=1);D17)))

Wäre super, wenn du mir da nochmal hilfst.. ich fürchte sonst komm ich nicht weiter..
Ach und bei soll dann die erste freie Zeile im Rechenblatt Auftragsbuch! ermittelt werden und die Werte die dort dann eingetragen werden, sollen für Anzahl Zeilen eingetragen werden.. vllt da schon gleich nochmal Hilfe wie ich ne Masseneintragung vornehme? ich hatte mal mit Bsp. etwa "SetzeZelle A1:D12" probiert, was natürlich nicht funktionierte..

Freu mich über jede Antwort!! :)

Re: Datensätze mit Rechnenblättern ohen FileTime oder Erweiter

#9186 On 19 Januar, 2010 08:46 Thomas Kaegi said,

Hallo

Ich helfe gerne, aber jetzt überforderst du mich!

Um aus deiner Erläuterung herauszufinden, was, wo wie ist und was du bezweckst, würde ich Stunden brauchen. Und dann gibt es Sätze, die keinen Sinn machen, wie "Es sind jeweils die Überschriften für die Felder, also die erste Eintragung findet bei statt." Bei was findet da etwas statt? Bei Sonnenaufgang? ;-)
Und: "tut der Knopf aber bisher nichts, als schön auszusehen". Aber was soll er denn sonst machen?

Also wenn schon, dann genaue Beschreibung wie die Dokumente heissen (falls es mehrere sind), wie die Komponenten heissen und in welcher Spalte eines Rechenblatts was steht (explizite z.B.: Spalte A: Name, Spalte B: Strasse etc.). Was soll wie gemacht werden und was funktioniert nicht? Wo stehen die Formeln? Wenn du dann auch noch das Dokument oder die Dokumente schicken würdest (also nicht entweder Beschreibung oder Dokument, sondern Beschreibung _und_ Dokument!) ... aber selbst dann kann ich nicht garantieren, dass ich dir mit für mich vertretbarem Aufwand raten kann - auch mein Idealismus hat irgendwo Grenzen.

Thomas

Re: Datensätze mit Rechnenblättern ohen FileTime oder Erweiter

#9189 On 19 Januar, 2010 13:54 Jürgen Schell said,

Hi,

@
Wenn(IstNV(Index(DB_Debitoren!B:B;Auswahl(DB_Debitoren!A:A;LfdZelle=Text(C17);1)));'';Index(DB_Debitoren!B:B;Auswahl(DB_Debitoren!A:A;LfdZelle=Text(C17);1)))

Tipp: Lager die Auswahl-Funktion in eine eigene Zelle aus. Dann rechnet
sie nur einmal, das ganze wird schneller.

@
UND (SetzeZelle(Text(Aufgabenstatus!B17));
VSuchlauf(Posteingangsbuch!A:A;IstLeer(LfdZelle);0;LfdIndex;LfdZähler=1));
SetzeZelle(Text(Aufgabenstatus!D17));
VSuchlauf(Posteingangsbuch!B:B;IstLeer(LfdZelle);0;LfdIndex;LfdZähler=1)))

Bin mir nicht sicher, was die Formel tun soll. Falls in die mit
VSuchlauf gefundene Zeile gesetzt werden sollen (= erste leere Zeile),
muss der Suchlauf mit innerhalb der SetzeZelle-Funktion stehen. Wenn Du
Dir Deine Klammerung ansiehst, steht da z.B.
SetzeZelle(Text(Aufgabenstatus!B17))
SetzeZelle braucht mindestens zwei Argumente: Was sie setzen soll, und
wohin. Mit drei Argumenten kann sie in die "INDEXte" Zelle eines
Bereichs setzen. Also: SetzteZelle(Wert, der gesetzt werden soll ;
Spalte, in die gesetzt werden soll ; Suchlauf, der die richtige
Zeilennummer liefert).

Beispiel:
Knopf('Hallo';
SetzeZelle(Text(Aufgabenstatus!B17);Posteingangsbuch!A:A;VSuchlauf(Posteingangsbuch!A:A;IstLeer(LfdZelle);1;LfdIndex;LfdZähler))
&
SetzeZelle(Text(Aufgabenstatus!D17) ; Posteingangsbuch!B:B;
VSuchlauf(Posteingangsbuch!B:B;IstLeer(LfdZelle);1;LfdIndex;LfdZähler))
)

Dazu ein paar Kommentare: Ich benutzte "&" statt "UND" aus folgendem
Grund: Mehrere, verknüpfte SetzeZelle-Funktionen sind eigentlich ein
Trick: RagTime muss sie alle ausführen, um den Gesamtwert der Formel zu
ermitteln. "UND" ist eine Verknüpfung zwischen Zahlen. Wenn das erste
Argument keine Zahl liefert ( = der erste SetzeZelle-Ausdruck z.B. Text
setzt), dann bricht RagTime die Auswertung der Formel ab, da eh nur noch
ein Fehlerwert resultieren kann. Das zweite "SetzeZelle" wird dann nicht
mehr ausgeführt. "&" ist in dieser Hinsicht tolerant, kann Texte,
Zahlen, Daten... verknüpfen.

Ich hab den VSuchlauf mit 1 initialisiert. Aus irgend einem Grunde liefert
VSuchlauf(Posteingangsbuch!A:A;IstLeer(LfdZelle);0;LfdIndex;LfdZähler)
den Wert 0. Die Berechnung wird durch LfdZähler anscheinend abgebrochen,
bevor LfdIndex das Resultat gesetzt hat. Bin mir aus dem Stand nicht
sicher, ob das ein RagTime-Fehler ist, aber mit 1 funktioniert es.

"LfdZähler" ist als boolscher Wert verwendet identisch zu "LfdZähler <>
0". Deshalb hab ich das "=1" weggelassen. (RagTime hat keine eigenen
Wahrheitswerte, sondern benutzt Zahlen dafür. 0 ist falsch, alles andere
ist wahr.)

Alternativ und kürzer: "Auswahl".
Knopf('Hallo';
SetzeZelle(Text(Aufgabenstatus!B17);Posteingangsbuch!A:A;Auswahl(Posteingangsbuch!A:A;IstLeer(LfdZelle);1))
&
SetzeZelle(Text(Aufgabenstatus!D17) ; Posteingangsbuch!B:B;
Auswahl(Posteingangsbuch!B:B;IstLeer(LfdZelle);1))
)

Was ich an dieser Konstruktion allerdings gar nicht mag: Wenn in
"Posteingangsbuch" in Spalte A oder B zufällig mitten drin eine leere
Zelle auftritt, dann gerät Der Mechanismus of sync. Die beiden Suchen
auf leer liefern dann verschiedene Zeilen. Ich würde in einer separaten
Zelle prüfen, wo beide Spalten zuerst beide leer sind:

Auswahl(Posteingangsbuch!A:B;IstLeer(Spaltenwert(1)) UND
IstLeer(Spaltenwert(2));1)

und den Wert dann in dem SetzeZelle verwenden.

Gruß, Jürgen

> Hi Thomas,
> Danke für deine fortlaufenden sehr hilfreichen Antworten!
> Ich bin schon weiter gekommen mit der Datei, leider happerts nun
> immernoch an ein paar Stellen.. :/
> Und schon wieder eine frage:
> ich habe deine datensatz-liefer formel erfolgreich in meine
> Hauptansicht implementiert, es gibt folgende felder:
> Kundenauftrag Relevante Daten Status Aktion
> Prozess Datum Kunden ID Kunde Signatur
> Posteingang
> BlattNr ab Zeile Positionen
> Auftragsbuch
>
> Es sind jeweils die Überschriften für die Felder, also die erste
> Eintragung findet bei statt. die Kunden IDs stehen in einem
> Rechenblatt DB_Debitoren und bei Kunde findet die Daten-Liefer Formel
> in einer einzelnen geschützten Zelle Statt:
>
> Wenn(IstNV(Index(DB_Debitoren!B:B;Auswahl(DB_Debitoren!A:A;LfdZelle=Text(C17);1)));'';Index(DB_Debitoren!B:B;Auswahl(DB_Debitoren!A:A;LfdZelle=Text(C17);1)))
>
> Nun soll in der Zelle durch die Abfrage:
>
> Wenn(Und(IstZahl(B17);IstZahl(C17); NICHT (IstLeer(D17)); NICHT
> (IstLeer(E17)));Knopf('Eintragen';SetzeZelle('Eingetragen';F17));'')
>
> ein Knopf erscheinen, sobald alle benötigten Felder Daten besitzen.
> Wie du siehst, tut der Knopf aber bisher nichts, als schön auszusehen :/
>
> ich hatte auf dieser Seite:
>
> http://osdir.com/ml/os.apple.ragtime.german/2005-01/msg00312.html
>
> die Anleitung gefunden, wie man die erste freie Zeile in meinem
> Rechenblatt "Posteingangsbuch" (und in allen weiteren Rechenblättern,
> wo davon abhängig Neueintragungen automatisch integriert werden
> sollen) erhält.
>
> Ich hatte mir die Formel für die Aktion des Knopfes folgendermaßen
> vorgestellt:
>
> UND (SetzeZelle(Text(Aufgabenstatus!B17));
> VSuchlauf(Posteingangsbuch!A:A;IstLeer(LfdZelle);0;LfdIndex;LfdZähler=1));
> SetzeZelle(Text(Aufgabenstatus!D17));
> VSuchlauf(Posteingangsbuch!B:B;IstLeer(LfdZelle);0;LfdIndex;LfdZähler=1)))
>
> Dabei sind Aufgabenstatus!B17 das Feld des Datums und
> Aufgabenstatus!D17 das Feld des Kundennamens
>
> So sieht die Funktion aus die ich erstellt hab, die aber leider nicht
> funktioniert:
>
> Wenn(Und(IstZahl(B17);IstZahl(C17); NICHT (IstLeer(D17)); NICHT
> (IstLeer(E17)));Knopf('Eintragen';SetzeZelle('Eingetragen';F17));Und(SetzeZelle(VSuchlauf(Posteingangsbuch!A:A;IstLeer(LfdZelle);0;LfdIndex;LfdZähler=1);B17);SetzeZelle(VSuchlauf(Posteingangsbuch!B:B;IstLeer(LfdZelle);0;LfdIndex;LfdZähler=1);D17)))
>
> ...

Re: Datensätze mit Rechnenblättern ohen FileTime oder Erweiter

#9166 On 14 Januar, 2010 18:12 Bernhard Storch said,

Angenommen, in der Datenbank stehen in Spalte A die IDs und in Spalte B die Namen, weiter angenommen, in einem Rechenblatt des Hauptformulares wird in A1 eine ID eingegeben, dann kann folgende Formel
VSuchlauf(Datenbank!$A:$B;Spaltenwert(1)=A1;0;Spaltenwert(2))
in einer beliebigen anderen Zelle eingegeben, den zugehörigen Namen liefern.

Angenommen, in Zelle A4 eines Rechenblattes 2 wird eine neue ID eingegeben, kann ein Knopf mit der Formel
SetzeZelle(Rechenblatt 2!$A$4;Datenbank!$A:$A;Anzahl(Datenbank!$A:$A)+1)
diese ID in die Datenbank einfügen.

Gruß, der andere