Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Übergabe von Daten aus einer Tabelle in ein Textfeld

Begonnen von MartinGrebe, Januar 15, 2020, 10:09:40

⏪ vorheriges - nächstes ⏩

MartinGrebe

Hallo liebe Forumsmitglieder,

ich habe folgendes Problem:

1. Eine Tabelle (Tätigkeiten) mit 6 Spalten (ID, Nummer, Liegenschaft, Ort, Tätigkeit, Kostenstelle)
2. Ein Formular (Eingabeformular) mit den entsprechenden Feldern aus der unter Punkt 1 genannten Tabelle

Nun möchte ich, dass wenn ich in dem Eingabeformular in dem Eingabefeld (Textfeld) mit der Bezeichung Tätigkeitsnummer
eine Nummer eingebe, mir Access automatisch anhand der Nummer die anderen Textfelder mit den entsprechenden Werten aus der Tabelle Tätigkeiten füllt. Ist so etwas möglich?

Vielen Dank für eure Antworten.

MzKlMu

Hallo,
möglich ja, aber wahrscheinlich überflüssig, im Regelfall wird nur der Primärschlüssel übertragen.

Wo landen dann die Daten des Formulars, ein Formular kann ja keine Daten speichern.
Gruß Klaus

MartinGrebe

Darüber habe ich mir noch keine Gedanken gemacht, wo die Daten landen sollen.
Was wäre denn die beste Möglichkeit? Eine weitere Tabelle? Ein Bericht?
Die sollen später auch ausgewertet werden.

Beaker s.a.

Hallo Martin,
Binde das Form an die Tabelle (Datensatzherkunft) und die Textfelder an die
Tabellenfelder (Steuerelementinhalt).
Das Eingabefeld bleibt ungebunden (kein Inhalt in Steuerelementinhalt).
Bei den Ereignissen des Eingabefeldes stellst du bei "Nach Aktualisierung"
diese Eigenschaft auf "Ereignisprozedur" und klickst auf die ... in der Zeile.
Dann geht der VBEditor auf, und der Cursor steht zwischen diesen beiden
Zeilen
Private Sub NameDesEingabefeldes_AfterUpdate()

End Sub

Dort hinein schreibst du den folgenden Code

    With Me.Recordset
        .FindFirst "TaetigkeitID = " & Me.NameDesEingabefeldes
'ausgehend von einer vollständigen Eingabe der ID
'besser (anwendungsfreundlicher) evtl. ein Kombifeld (ungebunden),
'womit auch die folgende Prüfung obsolet wird
        If .NoMatch Then
            MsgBox "Kein Datensatz gefunden!"
        End If
    End With


gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

MzKlMu

Hallo,
@ekkehard
Deine Antwort passt jetzt aber nicht so recht.
Er hat ja noch gar keine Tabelle in der die Daten landen sollen, er findet zwar die entsprechende Tätigkeit aber wohin dann damit ?

@Martin
ZitatDarüber habe ich mir noch keine Gedanken gemacht, wo die Daten landen sollen.
Was wäre denn die beste Möglichkeit? Eine weitere Tabelle? Ein Bericht?
Sorry, aber so blauäugig kann man doch keine Datenbank anfangen. Es gibt keine beste Möglichkeit, es gibt nur eine Möglichkeit
Alle Daten einer Datenbank die Du speichern willst benötigen zwingend eine Tabelle,  Formulare und Berichte können keine Daten speichern.
Und die Tabellen die angelegt werden benötigen auch Beziehungen untereinander.
Für diese Beziehungen sind in den Tabellen Primärschlüssel und Fremdschlüssel erforderlich.
Formulare und Berichte bassieren dann auf diesen Tabellen, wobei im Regelfall die Tabellen gar nicht verwendet werden, sondern Abfragen. Abfragen desshalb, weil man meistens nur eine Auswahl der Daten benötigt und auch eine bestimmte Sortierung notwendig ist.
Wenn man eine zuverlässige Sortierung haben will, so müssen zwingend Abfragen verwendet werden. Und die Formulare und Berichte werden dann an diese Abfragen gebunden.

Das sind Basics zu Access, die man wissen muss, sonst kann man keine Datenbank machen.

Hier mal ein Link zur Einführung:
https://www.access-tutorial.de/


Gruß Klaus

Beaker s.a.

Hallo Klaus,
ZitatEr hat ja noch gar keine Tabelle in der die Daten landen sollen
Hm, verstehe ich nicht
ZitatEine Tabelle (Tätigkeiten) mit 6 Spalten (ID, Nummer, Liegenschaft, Ort, Tätigkeit, Kostenstelle)
gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

MzKlMu

@ekkehard
eben, er hat nur eine Tabelle. Und aus der einen Tabelle will er die Daten ins Formular übertragen.
Und dann hatte ich gefragt, was dann mit den Daten im Formular geschehen soll.
Und diese Frage wurde wie folgt beantwortet:
ZitatDarüber habe ich mir noch keine Gedanken gemacht, wo die Daten landen sollen.
Das von ihm verwendete Formular ist ja auch ungebunden und enthält nur die gleichen Felder (bzw.Feldnamen) wie die eine Tabelle die er hat.
Gruß Klaus

DF6GL

Hallo,

unberücksichtigt von der unbrauchbaren Tabellenkonstruktion könnte die "Übernahme" ja nach diesem Muster geschehen:

http://www.donkarl.com/?FAQ4.22

Das Prinzip lässt sich auch auf den markierten DS in einem Endlosform und der Nutzung des "Beim Anzeigen"-Ereignisses anwenden...
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

MartinGrebe

#8
Ich habe mir jetzt eine zweite Tabelle angelegt, in der die Daten dann gespeichert werden sollen. Diese enthält die gleichen Spalten wie die Tabelle aus der die Daten ausgelesen werden sollen. Als Anschauung habe ich mal Screenshots beigefügt, wie ich mir das Ganze vorstelle.

DF6GL

Hallo,

um hier schneller weiterzukommen, lad die Db mal hier hoch, komprimiert/repariert und gezippt..


Beschreibe (nochmal) anhand der authentischen Namen genau, wo, wann und was passieren soll.
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

MartinGrebe

In der Tabelle "Tätigkeiten" sind folgende Spalten vorhanden: ID, Nummer, Liegenschaft, Ort, Tätigkeit, Kostenstelle.
In dem Formular "Eingabeformular" habe ich die entsprechenden Felder mit den Bezeichnungen aus der Tabelle "Tätigkeiten" angelegt. Wenn ich nun in dem Formular in das Textfeld "Nummer" die Nummer der Tätigkeit eingebe, dann sollen die anderen Felder in dem Formular automatisch mit den entsprechenden Daten "gefüllt" werden (d.H. Liegenschaft, Ort, Tätigkeit, Kostenstelle) in dem jeweiligen Feld des Formulares. Diese Daten aus dem Formular sollen dann in die Tabelle "Tätigkeiten Auswertung" in die entsprechenden Spalten übertragen und zur weiteren Verwendung (Auswertung, etc.) verwendet werden.

Beaker s.a.

Hallo,
Also ich verstehe das immer weniger.
Wozu zwei gleiche Tabellen?
Das es sich bei "Tätigkeiten" *) um einen Import handelt ist für mich auch nicht
ersichtlich.
"Auswertung" hört sich bei mir eher nach Abfrage und/oder Bericht an.
gruss ekkehard

*) Sonderzeichen in Objektname sollten vermieden werden, sie müssen sonst bei
jedem Bezug darauf [geklammert] werden.

edit:
noch was; - die Bedeutung der Felder ist mir auch eher unklar
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

MartinGrebe

In der Tabelle "Tätigkeiten" stehen die entsprechenden Daten die ich benötige wenn ich die Nummer der entsprechenden Tätigkeit im Formular eingebe und die anderen Felder dann mit den Werten der jeweiligen Tätigkeit gefüllt werden sollen.
In der zweiten Tabelle sollten die in dem Formular eingegebenen/gefüllten Felder dann abgespeichert werden.
Eine Auswertung soll dann später durchgeführt werden in der man sieht für welche Kostenstelle z.B. welche Tätigkeiten ausgeführt worden sind. Die Datenbank enthält nur Beispiele, die Objektnamen werden noch angepasst. Die Bedeutungen der Felder dienen auch nur erstmal als Beispiel.

Konkret geht es darum, dass die Mitarbeiter unseres gemeindlichen Bauhofes verschiedene Tätigkeiten an verschienden Objekten in verschiedenen Ortsteilen durchführen. Diese sollen in einer Datenbank eingegeben werden um später die einzelnen Objekte oder Ortsteile oder Tätigkeiten auswerten zu können um z.B. Gebühren zu kalkulieren. Um nicht jedesmal die Tätigkeit oder den Ort einzugeben, soll das ganze über eine spezifische Nummer gelöst werden, die eingegeben wird und die anderen Daten stehen dann entsprechend der eingegebenen Nummer automatisch zur Verfügung und werden in die entsprechenden Felder eingetragen.

MzKlMu

Hallo,
in der 2 Tabelle (...Auswertung) gibt es das feld zeit, daher vermute ich mal es geht um eine Zeiterfassung für eine Tätigkeit. Da gehört dann aber auch ein Datum dazu.
Wenn das wirklich so ist, so ist das Vorhaben wie bereits in #1 vermutet ersatzlos überflüssig. Es muss nur der Primärschlüssel der Tätigkeit übertragen werden.
Wenn man Datum und Zeit über ein Unterformauar erfasst das über die Schlüsselfelder verknüpft wird, erfolgt die Übertragung automatisch.
Im Anhang die geänderte DB die auf meiner Annahme mit der zeiterfassung beruht.

Bitte auch mal die Beziehungen im Beziehungsfenster ansehen.
Gruß Klaus

MartinGrebe

Die Annahme mit der Zeiterfassung ist richtig. Was in der Datenbank aber noch nicht funktioniert,
ist die Eingabe der jeweiligen Tätigkeitsnummer in dem Feld Nummer. Oder habe ich etwas übersehen?
Wenn ich z.B. in dem Feld Nummer eine 2 eingebe ändern sich die anderen Felder nicht, dort steht dann immer noch überall "Test 1" obwohl dann überall "Test 2" dort stehen müsste.