Hallo zusammen,
neu angemeldet und gleich eine Frage...
Leider komme ich nie dazu, mich wirklich intensiv in Access einzuarbeiten. Aber bisher habe ich für meine bescheidenen Zwecke immer passende Lösungen gefunden (auch das Forum hier eignet sich prima zum Suchen). Nun stehe ich aber vor einem Problem, bei dem mir schon der Ansatz fehlt, um überhaupt mögliche Lösungen zu finden. Deshalb hoffe ich nun, hier im Forum weiterhelfende Tipps zu bekommen.
Ausgangslage:
Eine einfache Tabelle, diverse Abfragen und Berichte, die sich auf diese zentrale Tabelle der Datenbank beziehen. Außerdem hatte ich ein einfaches Eingabeformular entworfen, das nun aber nicht mehr den Anforderungen entspricht.
Problemstellung:
Ich benötige ein Eingabeformular, das folgendes ermöglichen soll:
Es sollen auf einen Blick Werte für drei Datensätze eingegeben werden können und erst wenn alle Werte eingegeben wurden, sollen die Werte "auf Knopfdruck" in Form dreier neuer Datensätze in der Tabelle gespeichert werden. Hintergrund ist, dass die Daten immer als "Dreierblock" anfallen und es für die Eingebenen sinnvoll erscheint, eine Eingabemaske zu haben, auf der alle einzugebenden Felder (und auch nur diese) auf einen Blick angezeigt werden.
Also die Tabelle enthält in den einzelnen Spalten eine ID (Primärschlüssel) und die Variablen A,B,C
Nun sollen im Eingabeformular Felder angezeigt werden, um drei Datensätze eingeben zu können,z.B.
Datensatz 1: Eingabe A: _____ Eingabe B: _____ Eingabe C: _____
Datensatz 2: ...
Datensatz 3: ...
Wurden die Daten in die Felder notiert, soll es möglich sein, durch Klick auf einen Button die eingegebenen Daten der Tabelle anzuhängen.
Nun kenne ich mich viel zu wenig aus, um dies ohne Hilfe zu realisieren... Ich schaffe es immer nur so, dass man in der Formularansicht nur die Felder eines Datensatzes sieht oder in einem Endlosformular entsprechend alle Datensätze. Vielleicht denke ich hier auch zu naiv, aber es sollte doch möglich sein, Felder in einem Formular anzulegen und dann zu bestimmen, dass sich diese Felder auf unterschiedliche Datensätze beziehen sollen, oder?
Sollte das möglich sein, wäre ich für ein paar Tipps und Schlagwörter sehr dankbar, wie ich das Vorgehen angehen kann.
Vielen Dank
Michael
Hallo,
Du hast jetzt viel geschrieben, aber verstanden habe ich nicht viel.
Zitataber es sollte doch möglich sein, Felder in einem Formular anzulegen und dann zu bestimmen, dass sich diese Felder auf unterschiedliche Datensätze beziehen sollen, oder?
wenn Du die Daten wie gezeigt in einem Endlosformular anzeigst, ist das gewünschte Verhalten doch Standard.
3 (4 mit ID) Felder in einer Zeile=1 Datensatz, wenn Du die Zeile wechelst, bist Du im nächsten Datensatz. Das heist, die Felder untereinander beziehen sich immer auf einen anderen Datensatz. Das Formular sollte/muss natürlich an die Tabelle bebunden sein. Ein Speichernbutton ist verzichtbar, Du musst nur dafür sorgen, dass der Datensatz erst nach Ausfüllen der 3 Felder eines Datensatzes gewechselt werden kann und weiterhin, dass man das Formular erst schließen kann wenn 3 DS eingegeben wurden.
Wahrscheinlich muss auch noch mal über das ganze Konzept nachgedacht werden.
Was sind denn das für 3 Werte die da in einer Zeile stehen, also Eingabe A, B und C ?
Hallo,
wenn das so wirklich sein muss, dann kommt man um eine VBA-programmierte Funktion nicht herum..
Es wird ein ungebundenes Formular benötigt , das für alle "Datensätze" insgesamt die entspr. Textfelder besitzt. Mittels Schaltfläche werden über eine Schleife und einer Insert-Abfrage die 3 Textfeld-Gruppen in die Tabelle übertragen,
und wenn man will, die Einträge in den Textfeldern anschließend gelöscht
Vielen Dank für die (unglaublich) schnellen Antworten! :o
Zitat von: MzKlMu am Februar 17, 2013, 18:39:43
Hallo,
Du hast jetzt viel geschrieben, aber verstanden habe ich nicht viel.
Oje, hm, ich wollte es eigentlich absichtlich ausführlicher beschreiben, in der Hoffnung, es wäre damit verständlicher - scheint mir nicht geglückt zu sein :-\
Zitat von: DF6GL am Februar 17, 2013, 18:43:40
wenn das so wirklich sein muss, dann kommt man um eine VBA-programmierte Funktion nicht herum..
Es wird ein ungebundenes Formular benötigt , das für alle "Datensätze" insgesamt die entspr. Textfelder besitzt. Mittels Schaltfläche werden über eine Schleife und einer Insert-Abfrage die 3 Textfeld-Gruppen in die Tabelle übertragen,
Genau so habe ich mir das gedacht! Vielen Dank für die Beschreibung. Hm, ich werde dann mal nach Insert-Abfragen googeln und (hoffentlich) in Erfahrung bringen, wie ich eine solche in eine Schleife packe. Gleich noch eine Verständnisfrage dazu: Benötige ich dann drei Insert-Abfragen nacheinander oder kann ich mit einer Insert-Abfrage drei Datensätze erzeugen?
Hallo,
in diesem Fall können nicht alle 3 Datensätze auf einmal eingefügt werden. Die Schleife sorgt für 3 Durchgänge und mit geschickter Textfeld-Namenwahl kommt man mit einem Insert-SQl-String aus.
Vielen Dank! Ich glaube ich habe das grundsätzliche Vorgehen nun soweit verstanden.
Mit geschickter Textfeld-Namenwahl meinst Du wahrscheinlich etwas in die Richtung, dass sich die Textfeld-Namen für jeden Datensatz nur um eine Ziffer unterscheiden und in der Schleife wird dann bei jedem Durchgang der angesprochene Textfeld-Namen um eins erhöht?
Dann werde ich mich morgen an die ersten Umsetzungsversuche machen.
Nochmals vielen Dank!
Hallo,
in der Tat ;)
Feld 11 Feld12 Feld13 Feld14 Feld15
Feld 21 Feld22 Feld23 Feld24 Feld25
Feld 31 Feld32 Feld33 Feld34 Feld35
(uncheckt, alle Tabellenfelder vom Datentyp Zahl, Long)
Dim db as Database, i as Long
set db =Currentdb
For i = 10 to 30 Step 10
db.Execute "Insert into tblTabell1 (FeldA, FeldB,FeldC,FeldD,FeldE) Values (" & _
Me("Feld" & i + 1) & "," & Me("Feld" & i + 2) & "," & Me("Feld" & i + 3) & "," & Me("Feld" & i + 4) & "," & Me("Feld" & i + 5) & ")"
Next