Office - Word, Excel und Co. 9.747 Themen, 41.434 Beiträge

Access: Wert aus Zwischenablage beim öffnen in Formularfeld

Miguelito / 3 Antworten / Flachansicht Nickles

Hallo,

ich tüftel schon den ganzen Nachmittag an einem Problem herum und komme nicht mehr weiter.

Folgendes Problem:

Ich habe zwei Formulare. Im ersten Formular (Aufträge) können Datensätze neu angelegt oder durchsucht werden, z.B. über Auswahllisten.

Hat man einen Datensatz offen und will diesem Datensatz weitere Daten hinzufügen (z.B. Artikel zu einem Auftrag), dann soll ein zweites Formular aufgehen, in das der gerade noch offene Datensatz gleich wieder erscheint. In diesem zweiten Formular sind aus Platzgründen nicht alle Auftragsdaten enthalten, dafür können mehr Informationen zu den Artikeln dargestellt werden.


Mein Lösungsansatz ist nun wie folgt:
Auf dem ersten Formular ist eine Taste "Artikel einfügen". Beim Anklicken soll die Datensatznummer des gerade geöffneten Datensatzes in die Zwischenablage kopiert werden, das zweite Formular soll sich öffnen und die Datensatznummer soll in ein Feld eingetragen werden, damit der gerade noch im ersten Formular aktiv gewesene Datensatz jetzt im zweiten Formular geöffnet ist. Im zweiten Formular arbeite ich dann mit einem Unterformular für die Artikel weiter.

Hat vielleicht jemand eine pfiffige Idee, wie man das umsetzen kann?

Mit Sendkey usw. habe ich schon Versuche angestellt. Ich habe es schon hinbekommen, dass die Datensatznummer in die Zwischenablage gespeichert wird - aber wie ich sie in das Feld des zweiten Formulars bekommen soll: kein Plan.

Hier mein Code:

Private Sub eingeben_artikel_Click()
Me.ID_Artikel.SetFocus
DoCmd.RunCommand acCmdCopy
DoCmd.OpenForm "frm_auftraege_artikel"
'Hier fehlen mir die Ideen

End Sub

Freue mich über jede Hilfe.

Viele Grüße, Miguel




bei Antwort benachrichtigen
Miguelito neanderix „ Was meinst du damit? Volker“
Optionen

Hallo Volker,

damit meine ich folgende Definition:

Tabelle --> Feldname "ID_Datensatz" --> Felddatentyp "Autowert" --> Feldgröße "Replikations-ID" anstatt z.B. "Long Integer".

Mit der Einstellung Replikations-ID kann jedem Datensatz tatsächlich eine eindeutige Datensatznummer zugeordnet werden. Dies ist z.B. wichtig, wenn die Datenbank von unterwegs aus ("offline") bearbeitet wird und gleichzeitig jemand im Büro daran arbeitet. Durch die Replikations-ID sollte es nicht mehr zu doppelten Schlüsselnummern kommen, da die R.-ID eine individuell berechnete ID ist. Denkbarer Fall: Jemand gibt unterwegs neue Adressen in die Datenbank ein. Werden diese zu Hause in die Datenbank eingespielt, kann es zu konflikten kommen, wenn die Schlüsselnummer schon belegt ist. Bei Formatierung als R.-ID nicht, hier können auch die Schlüsselnummern übernommen werden, sind ja in jedem Fall eindeutig.

Allerdings:

Verwende ich diese Formatierung, funktioniert mein VBA-Code nicht mehr, leider :-(

Genau hierfür suche ich aktuell nach einer Lösung. Klar, könnte ich auch auf herkömlichen Weg arbeiten und über "Importieren" die Datensätze zu Hause wieder in die Datenbank einspielen - aber dann verliere ich vermutlich die Verbindungen der Datensätze zu anderen Datensätzen in verknüpften Tabellen, weil die Datensätze ja über die Schlüsselnummern miteinander verbunden sind - und diese würden sich beim Import ohne R.-ID ändern und es käme zu "Datensalat".

Hast du eine Idee?


Viele Grüße, Miguel

bei Antwort benachrichtigen