Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Form mit UF: Im UF immer auf den neuen DS springen...
zurück: Fixieren von Forumularen weiter: Externe Bedienung Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Feedback Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
Wolfgang 1958
Trainer


Verfasst am:
01. Jan 2012, 16:13
Rufname: Wolfgang
Wohnort: Geretsried

Form mit UF: Im UF immer auf den neuen DS springen... - Form mit UF: Im UF immer auf den neuen DS springen...

Nach oben
       Version: Office 2010

Hallo Fachleute,

ich habe folgendes Problem:
Ich habe ein Formular "Miterhöhungen", dass pro Anzeige einen Stammdatensatz eines Mieters (alle Felder gesperrt) anzeigt.
In diesem Formular ist außerdem ein UF (endlos), das beim Öffnen in den letzten und dann in einen neuen DS springt. Damit ist der vorletzte und der neue DS im Formular sichtbar. VBA-Code beim Öffnen des UF:
Code:
Private Sub Form_Open(Cancel As Integer)
    DoCmd.GoToRecord , "", acLast
    DoCmd.GoToRecord , "", acNewRec
End Sub
Das funktioniert soweit.
Nun möchte ich, dass wenn ich im Formular "Mieterhöhung" den DS per Navigationsschaltflächen wechsle im UF auch in den letzten und dann in den neuen DS gesprungen wird.
Wo muss ich das einbauen?
Ich freue mich über Tipps von Euch

Wolfgang

PS: Natürlich allen noch ein gutes neues Jahr!

_________________
Ich freue mich über ein Feedback.
viezy
Access-Programmierer


Verfasst am:
01. Jan 2012, 16:19
Rufname: Ralf
Wohnort: Merzig


AW: Form mit UF: Im UF immer auf den neuen DS springen... - AW: Form mit UF: Im UF immer auf den neuen DS springen...

Nach oben
       Version: Office 2010

Hallo Wolfgang,
Du könntest z.B. genau diese beiden Anweisungen aus dem HFo in eine öffentliche Prozedur (Public Sub) im UFo schreiben. Die Prozedur rufst Du dann im Klick-Ereignis deiner Navigationsschaltfläche auf.
Grüsse, Ralf

_________________
Access ist eigentlich wie Excel,
nur völlig anders...
Wolfgang 1958
Trainer


Verfasst am:
01. Jan 2012, 16:23
Rufname: Wolfgang
Wohnort: Geretsried

AW: Form mit UF: Im UF immer auf den neuen DS springen... - AW: Form mit UF: Im UF immer auf den neuen DS springen...

Nach oben
       Version: Office 2010

Hallo Ralf,

danke für die schnelle Antwort.
Dazu müsste ich eigene Navigationsschaltflächen basteln. Ich verwende aber zurzeit noch die Standardnavigationsschaltflächen des Formulars.
Gibt es hier ein Ereignis, das ich abfangen und reagieren kann?

Liebe Grüße

Wolfgang

_________________
Ich freue mich über ein Feedback.
viezy
Access-Programmierer


Verfasst am:
01. Jan 2012, 16:38
Rufname: Ralf
Wohnort: Merzig

AW: Form mit UF: Im UF immer auf den neuen DS springen... - AW: Form mit UF: Im UF immer auf den neuen DS springen...

Nach oben
       Version: Office 2010

Hallo Wolfgang,
ich habe gerade mal ein paar Ereignisse durchgespielt - der Datensatzwechsel scheint nur "beim Anzeigen" auszulösen.
Leider wird dieses Ereignis aber auch durch andere Aktionen (z.B. beim Öffnen des Formulars) ausgelöst...
Könntest Du dein HFo/Ufo als Beispieldatei hochladen?
Grüsse, Ralf

_________________
Access ist eigentlich wie Excel,
nur völlig anders...
Wolfgang 1958
Trainer


Verfasst am:
01. Jan 2012, 16:45
Rufname: Wolfgang
Wohnort: Geretsried


AW: Form mit UF: Im UF immer auf den neuen DS springen... - AW: Form mit UF: Im UF immer auf den neuen DS springen...

Nach oben
       Version: Office 2010

Hallo Ralf,
hallo Forumverwalter,

ich täte gerne ein Beispiel hochladen, aber mein Kontingent ist wohl schon voll ausgenschöpft. Was kann ich machen, um es zu erhöhen?

... aber vielleicht könnte ich das Ereignis "Beim Anzeigen" des Hauptformulars verwenden, um im Unterformular diesen Code auszuführen?

... aber wie?

Liebe Grüße

Wolfgang

_________________
Ich freue mich über ein Feedback.
viezy
Access-Programmierer


Verfasst am:
01. Jan 2012, 17:59
Rufname: Ralf
Wohnort: Merzig

AW: Form mit UF: Im UF immer auf den neuen DS springen... - AW: Form mit UF: Im UF immer auf den neuen DS springen...

Nach oben
       Version: Office 2010

viezy am 01. Jan 2012 um 15:53 hat folgendes geschrieben:
...ich hätte da eventuell noch eine Idee Cool
Muss erst ausprobieren ob's überhaupt funktioniert, dauert also etwas...

Hallo Wolfgang,
folgendes Konstrukt (eventuell ewas "von hinten durch die Brust ins Knie" Laughing ) könnte dein Problem lösen:
Code im Hauptformular
Code:
Private Sub Form_Current()
    Static lngDatensatz As Long
   
    If Not Me.Form.CurrentRecord > Me.Form.Recordset.RecordCount Then
        If Not lngDatensatz = Me.Form.CurrentRecord Then
            Call Me.ufoTest.Form.subNeuerDatensatz
            lngDatensatz = Me.Form.CurrentRecord
        End If
      Else
        lngDatensatz = Me.Form.Recordset.RecordCount + 1
    End If
End Sub
Code im Unterformular
Code:
Public Sub subNeuerDatensatz()
    Me.Recordset.MoveLast
    Me.Recordset.AddNew
    Me.Recordset.MoveNext
End Sub
Die Verwendung von DoCmd.GoToRecord im Unterformular funktioniert definitiv nicht, der Befehl scheint immer auf das aktive Formular (in diesem Fall das Hauptformular) zu wirken...
Grüsse, Raf

_________________
Access ist eigentlich wie Excel,
nur völlig anders...
Wolfgang 1958
Trainer


Verfasst am:
01. Jan 2012, 19:06
Rufname: Wolfgang
Wohnort: Geretsried

AW: Form mit UF: Im UF immer auf den neuen DS springen... - AW: Form mit UF: Im UF immer auf den neuen DS springen...

Nach oben
       Version: Office 2010

Wolfgang 1958 am 01. Jan 2012 um 17:12 hat folgendes geschrieben:
Hallo Ralf (oder doch Raf? - hahaha),

vielen lieben Dank für Deinen Code.
Ich werde ihn gleich mal ausprobieren und mich wieder melden, wie es gelaufen ist.
Danke nochmals für Deine Mühen

Wolfgang

Hallo Ralf,

leider hat Deine Lösung nicht funktioniert, wahrscheinlich wegen meiner Unzulänglichkeit. Egal - ich habe jetzt die erste Lösung von Dir verwendet und im Hauptformular eigene Navigationsschaltflächen eingebaut. Diese habe ich dann folgendermaßen angepasst:
Beispiel Datensatz vor:
Code:
Private Sub Befehl59_Click()
On Error GoTo Err_Befehl59_Click
    DoCmd.GoToRecord , , acNext
    If Me.NewRecord Then
        '
      Else
        Call Me.UF_Mieterhöhung.Form.subNeuerDatensatz
    End If
Exit_Befehl59_Click:
    Exit Sub
Err_Befehl59_Click:
    If Err.Number = 2105 Then Resume Next
    MsgBox Err.Description
    Resume Exit_Befehl59_Click
End Sub
Dann im UF den folgenden Code:
Code:
Public Sub subNeuerDatensatz()
    DoCmd.GoToRecord , "", acLast
    DoCmd.GoToRecord , "", acNewRec
End Sub

Private Sub Form_Open(Cancel As Integer)
    DoCmd.GoToRecord , "", acLast
    DoCmd.GoToRecord , "", acNewRec
End Sub
Das funktioniert soweit.

Nun noch eine Nachfrage:
Ich möchte hinter den Navigationsschaltflächen noch ein Textfeld einbauen, in dem die aktuelle DS-Nr. und die Anzahl der DS steht:
D.h. z. B.; 4 von 30 Wie kann ich das lösen?

Liebe Grüße

Wolfgang

_________________
Ich freue mich über ein Feedback.
viezy
Access-Programmierer


Verfasst am:
01. Jan 2012, 19:17
Rufname: Ralf
Wohnort: Merzig

AW: Form mit UF: Im UF immer auf den neuen DS springen... - AW: Form mit UF: Im UF immer auf den neuen DS springen...

Nach oben
       Version: Office 2010

Hallo Wolfgang.
wie bereits erwähnt wär's eheblich einfacher wenn ich das Formular vor mir hätte...
Für die Anzeige würde ich anstelle des Textfeldes ein Bezeichnungsfeld nehmen und (anstelle von .Value) die .Caption folgendermassen setzen:
Code:
    Me.lblDatensatz.Caption = CStr(Me.Form.CurrentRecord) & " von " & CStr(Me.Form.Recordset.RecordCount)
ungetestet...
Grüsse, Ralf

_________________
Access ist eigentlich wie Excel,
nur völlig anders...
Wolfgang 1958
Trainer


Verfasst am:
02. Jan 2012, 08:08
Rufname: Wolfgang
Wohnort: Geretsried

AW: Form mit UF: Im UF immer auf den neuen DS springen... - AW: Form mit UF: Im UF immer auf den neuen DS springen...

Nach oben
       Version: Office 2010

Wolfgang 1958 am 01. Jan 2012 um 18:18 hat folgendes geschrieben:
Hallo Ralf,

die Anzahl der DS bekomme ich mit Anzahl(*).
Das funktioniert...
Wie bekomme ich jetzt noch die aktuelle DS-Nr. raus?

Ciao

Wolfgang

UPS - jetzt war ich zu ungeduldig!!! - Danke für Deinen Vorschlag! - Ich probiere ihn gleich aus!

Wolfgang 1958 am 01. Jan 2012 um 18:27 hat folgendes geschrieben:
Hallo Ralf,

suuuuuper!!!
Vielen lieben Dank!
Auch Dein letzter Tipp hat funktioniert.
Nun läuft es - ich bin begeistert.
Dir noch ein erfolgreiches neues Jahr und liebe Grüße aus dem Oberland

Wolfgang

Hallo Ralf,
hallo Leute,

da beim Öffnen des Hauptformulars immen "1 von 1", also immer nur die Anzahl der Datensätze auf 1 stand und erst beim Bedienen der Navigationsschaltflächen die richtige Anzahl von Datensätzen angezeit wurde, habe ich nun folgenden Weg gewählt:

Das Feld „DSNummer“ wird als Textfeld im Hauptformular „Höhe = 0“, „Position v=0 h=0“, „versteckt“, „gesperrt“ und „deaktiviert“ untergebracht (oben links).
Ein weiteres Textfeld wird in der Fußzeile z. B. rechts neben den Navigationsschaltflächen eingebaut, dass folgende Datensatzherkunft besitzt:
Code:
=[DSNummer] & " von " & Anzahl(*)
Im Hauptformular muss „Beim Öffnen“ folgende Code-Zeile eingefügt werden:
Code:
   Me.DSNummer = Me.CurrentRecord
VBA-Code im Button für „gehe zum ersten Datensatz“:
Code:
    On Error Resume Next
    DoCmd.GoToRecord , , acFirst
    If Me.NewRecord Then
        '
      Else
        Call Me.[UF Mieterhöhung].Form.subNeuerDatensatz
    End If
Die anderen Buttons entsprechend!!!
Die Funktion subNeuerDatensatz muss in das UF:
Code:
Public Sub subNeuerDatensatz()
    If Me.NewRecord Then
        '
      Else
        Me.Recordset.MoveLast
        Me.Recordset.AddNew
        Me.Recordset.MoveNext
    End If
End Sub
Im UF muss noch “Beim Laden” der gleiche Code rein:
Code:
Private Sub Form_Load(Cancel As Integer)
    If Me.NewRecord Then
        '
      Else
        Me.Recordset.MoveLast
        Me.Recordset.AddNew
        Me.Recordset.MoveNext
    End If
End Sub
Für alle, die es interessiert - viel Spaß beim Nachvollziehen

Wolfgang

_________________
Ich freue mich über ein Feedback.
Bitsqueezer
Office-VBA-Programmierer


Verfasst am:
02. Jan 2012, 14:53
Rufname:

AW: Form mit UF: Im UF immer auf den neuen DS springen... - AW: Form mit UF: Im UF immer auf den neuen DS springen...

Nach oben
       Version: Office 2010

Hallo,

das liegt am "Lazy Loading"-Verhalten von Access. Du wirst auch bei Access selbst feststellen, daß die richtige Anzahl Datensätze erst einige Zeit nach dem Öffnen eines Formulars im Navigationsbereich erscheint.

Du mußt also lediglich vor dem Einstellen des Textes ein "MoveLast" und "MoveFirst" einbauen, dann hast Du auch die richtige Anzahl Datensätze.

Gruß

Christian
Wolfgang 1958
Trainer


Verfasst am:
02. Jan 2012, 15:18
Rufname: Wolfgang
Wohnort: Geretsried


AW: Form mit UF: Im UF immer auf den neuen DS springen... - AW: Form mit UF: Im UF immer auf den neuen DS springen...

Nach oben
       Version: Office 2010

Hallo Christian,

danke für den Hinweis. Das werde ich berücksichtigen...
Dir auch ein schönes erfolgreiches neues Jahr.

Ciao

Wolfgang

_________________
Ich freue mich über ein Feedback.
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Access Tabellen & Abfragen: Neuen Datensatz anlegen... Stringübergabe... ID merken 11 Tigerpfote 708 24. Jul 2011, 10:16
Marmeladenglas Neuen Datensatz anlegen... Stringübergabe... ID merken
Keine neuen Beiträge Access Tabellen & Abfragen: Datensatz mit Abfrage duplizieren und mit neuen Werten ergän 1 BlackEagle 201 20. Mai 2011, 18:13
kyron9000 Datensatz mit Abfrage duplizieren und mit neuen Werten ergän
Keine neuen Beiträge Access Tabellen & Abfragen: Neuen Datensatz in verknüpften 1:1 Tabellen 7 Norman82 506 25. März 2011, 12:30
KlausMz Neuen Datensatz in verknüpften 1:1 Tabellen
Keine neuen Beiträge Access Tabellen & Abfragen: Letzten Werte einer Zeile in einer neuen Spalte Anzeigen 3 Günther1985 197 01. Sep 2010, 12:21
Unreg5 Letzten Werte einer Zeile in einer neuen Spalte Anzeigen
Keine neuen Beiträge Access Tabellen & Abfragen: Springen der Datensätze bei Requery verhindern 1 DonMiguel 912 06. Jul 2010, 09:07
Gast Springen der Datensätze bei Requery verhindern
Keine neuen Beiträge Access Tabellen & Abfragen: Felder einer Abfrage ein einem neuen Felde zusammenfassen 6 farmer69 386 14. Okt 2009, 16:03
MiLie Felder einer Abfrage ein einem neuen Felde zusammenfassen
Keine neuen Beiträge Access Tabellen & Abfragen: Sortieren im Formular der Reihe nach (mit TAb springen) 1 Ptdidi 600 16. Mai 2009, 10:27
Gast Sortieren im Formular der Reihe nach (mit TAb springen)
Keine neuen Beiträge Access Tabellen & Abfragen: Form basierten Filter in Tabelle ausgeben 1 der Jöns 600 02. Sep 2008, 22:21
maike kaluscha Form basierten Filter in Tabelle ausgeben
Keine neuen Beiträge Access Tabellen & Abfragen: in Zeile springen, auslesen und verknüpfen 4 bubes 396 02. Aug 2008, 20:10
bubes in Zeile springen, auslesen und verknüpfen
Keine neuen Beiträge Access Tabellen & Abfragen: Berechnetes Feld aus einem Form. in eine Tabelle speichern?? 1 Realhasko 402 21. Jul 2008, 16:40
rita2008 Berechnetes Feld aus einem Form. in eine Tabelle speichern??
Keine neuen Beiträge Access Tabellen & Abfragen: Einbinden einer neuen Tabelle 11 Beffi 594 22. Mai 2007, 15:35
lothi Einbinden einer neuen Tabelle
Keine neuen Beiträge Access Tabellen & Abfragen: Neuen Datensatz über Formular mit Auswahlabfrage eingeben. 2 Gast 2313 14. Feb 2007, 13:51
Gast Neuen Datensatz über Formular mit Auswahlabfrage eingeben.
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: JavaScript