Neuigkeiten:

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

Mobiles Hauptmenü

Endlosformular - Neuer Datensatz oben

Begonnen von gsaccess, November 19, 2024, 08:22:39

⏪ vorheriges - nächstes ⏩

gsaccess

Grundsätzlich werden in Endlosformularen neue Datensätze immer unten angefügt. Ich möchte aber neue Datensätze in der ersten Zeile eingeben können.
Dazu gibt es unter folgendem Link eine Beschreibung:
https://access-im-unternehmen.de/Neue_Datensaetze_oben_anfuegen/
Kennt jemand von euch noch eine einfachere/bessere Möglichkeit?

Günther

Hondo

Zitat von: gsaccess am November 19, 2024, 08:22:39Kennt jemand von euch noch eine einfachere/bessere Möglichkeit?
Wiso?
Das Endlosformular kennt keine neuen Datensätze oben, also muss man sich entsprechend behelfen.
Die gezeigte Lösung ist doch sehr praktikabel.
Gruß Andi

MzKlMu

Hallo,
eine Alternative wäre, das Formular zur Dateneingabe zu öffnen, dann gibt es nur den neuen leeren Datensatz, der dann logischerweise oben steht. Nach Speicherung des neuen Datensatzes (Formularereignis: Nach Aktualisierung) kann man ein Requery ausführen und die Dateneingabe wieder abschalten. Mit entsprechender Sortierung würde der soeben eingegebene neue Datensatz dann oben stehen.

Oder,
2.Alternative

Ungebundene Felder im Formularkopf. Nach dem Ausfüllen werden die ungebundenen Felder per Anfügeabfrage übertragen.
Vor dem Übertragen kann auch noch eine Validierung durchgeführt werden.
Gruß Klaus

Debus

Hallo Günther,

was gefällt Dir denn nicht an der Lösung aus AIU.

Ich finde die doch recht verständlich dargestellt wie immer.

Gruß
Holger

gsaccess

Vielen Dank für eure Hilfe.
Ich habe nun die 2.Alternative von Klaus versucht umzusetzen.

Nach der Aktualisierung des Kombifeldes Offene Aufträge im Hauptformular soll der Curser im Naviunterformular auf das ungebundene Feld MAEingabe im Formularkopf springen.
Name des Hauptformulars:frmStunden
Name des Navigationsunterformulars:frmNaviStundenMaterialErfassen
Name des Steuerelements:MAEingabe
Mein Code
[/[Formulare]![frmstunden]![frmNaviStundenMaterialErfassen].[Form]!MAEingabe.SetFocus]
Dabei kommt folgende Fehlermeldung (Siehe Bild).

Wo habe ich hier einen Denkfehler?

Günther

Knobbi38

Hallo Günther,

die Fehlermeldung sagt eigentlich alles: ... nicht gefunden.
Es ist gute Praxis, dem SubForm-Steuerelement und dem geladenen Formular unterschiedliche Präfixe zu vergeben. Bei der Referenzierung wird der Name des Unterformulars nicht verwendet, sondern nur der Name des Steuerelements!

Siehe auch:
http://access.mvps.org/access/forms/frm0031.htm

MzKlMu

Hallo,
der in #4 gezeigte Code passt doch nicht zu ungebunden Feldern.
Die dort eingetragenen Daten müssen doch per Anfügeabfrage (oder über ein Recordset) an die TAbelle übertragen werden. Davon ist aber nichts zu sehen.

Bitte mal ausführlicher beschreiben.
Gruß Klaus

gsaccess

Vielen Dank für die Antwort.
In der Anlage die Testdatei aus der mein Ansatz ersichtlich ist.
Im Formular "frmStunden" gibt es das Navigationsformular "frmNaviStundenMaterialErfassen" mit 4 Navibutton.
Im NavigationsbuttonStunden werden die Stunden erfasst.
Im Formularkopf sind die ungebundenen Felder. Beim Verlassen von UAZMinuten werden die Daten in die Tabelle Stunden geschrieben.
Das funktioniert soweit alles.
Was ich nicht schaffe:
Nach der Auswahl des Auftrages im Feld "cboOffeneAuftraege" sollte der Curser aber auf das Feld UMitarbeiter springen (siehe Bild).
Es soll der Mitarbeiter aus dem letzten Eintrag in der tblAuftragStunden übernommen werden.

Günther

Beaker s.a.

Hallo Günther,

Warum verwendest du überhaupt ein Navi-Form?
Die sind doch sowas von schlecht zu händeln, - ein normales Register-Control
ist da doch deutlich angenehmer.

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)

gsaccess

Hallo Ekkehard,

Ich habe das Naviformular verwendet, da ich teilweise im Programm auch vertikale Register brauche und ich dies mit dem Register-Control nicht darstellen konnte. Dann habe ich im Programm die verschiedenen Controls.
Bei diesem Formular könnte ich aber auf das Register-Control umsteigen.
Dazu gleich die Frage, kann man die Registerkarten auch vertikal darstellen?

Gruss Günther

Knobbi38

Hallo,

es gibt in Access kein natives TabControl mit vertikalen Tabs. Du kannst so etwas nur mit anderen Controls nachempfinden oder auf externe Komponenten zurückgreifen, z.B.
https://www.fmsinc.com/microsoftaccess/controls/components/tabs/index.html

Solange das Navi-Control deinen Ansprüchen genügt, kannst du das doch weiter verwenden, was spricht dagegen?

Meine favorisierte Variante ist einfach ein vertikales Menü-System aus Labels in Verbindung mit einem SubForm-Control, beides dynamisch verwaltet. Bisher konnten damit alle Workflows abgebildet werden.

Gruß
Knobbi38

gsaccess

Danke für eure Rückmeldungen.
@ Knobbi38
Das Navi-Control genügt grundsätzlich meinen Ansprüchen.
Mit den Komponenten in deinem Link komme ich noch nicht klar.
Werde mich aber schlau machen.

@ Klaus
Ich hoffe die in #7 übermittelte Testdatenbank klärt deine Anmerkungen auf
Zitat von: MzKlMu am November 20, 2024, 00:26:45Hallo,
der in #4 gezeigte Code passt doch nicht zu ungebunden Feldern.
Die dort eingetragenen Daten müssen doch per Anfügeabfrage (oder über ein Recordset) an die TAbelle übertragen werden. Davon ist aber nichts zu sehen.

Bitte mal ausführlicher beschreiben.

Noch unklar ist für mich warum der Code
[/[Formulare]![frmstunden]![frmNaviStundenMaterialErfassen].[Form]!MAEingabe.SetFocus]
die Fehlermeldung bringt.

Gruß Günther

Knobbi38

Zitat von: gsaccess am November 21, 2024, 17:25:23Noch unklar ist für mich warum der Code
[/[Formulare]![frmstunden]![frmNaviStundenMaterialErfassen].[Form]!MAEingabe.SetFocus]
die Fehlermeldung bringt.

Dann hast du wohl meine Antwort aus #5 nicht gelesen und umgesetzt.


gsaccess

die Anwort habe ich gelesen.
hilft mir aber nicht weiter.
Ich lese unter diesem Link:
Me!Subform1.Form!Subform2.Form!ControlNameAlso muss doch das NaviUnterformular angesprochen werden?

Günther


PhilS

Zitat von: gsaccess am November 22, 2024, 19:01:10Ich lese unter diesem Link:
Me!Subform1.Form!Subform2.Form!ControlNameAlso muss doch das NaviUnterformular angesprochen werden?
Ich weiß nicht, auf welchen Link du dich genau beziehst. 
Ein genereller Hinweis auf ein häufiges Missverständnis: Es geht da um Steuerelemente! Subform1 und Subform2 sind die Namen der Unterformularsteuerelemente. Welches Formular da drin steckt, siehst du wenn du dir die SourceObject-Eigenschaft anschaust.

Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor