Hallo Alletkla,
beim zweiten Codeteil gehst Du wieder davon aus, dass das Element in Deinem Formular "oScrollfield" heißt. Ist das tatsächlich so?
Die Position des Läufers ist doch Anzeichen für den Datensatz - wenn es denn funktioniert. Wenn Du die Position also einfach auf die Mitte setzt, dann zeigst Du bei 3 Datensätzen den 2. Datensatz an. Willst Du das wirklich?
Ich hänge einmal eine entsprechende Beispieldatei an. Das Makro für den maximalen Wert des Formulars wird erst einmal nur beim Start des Formulars ausgelesen. Das sollte dann im Dauerbetrieb auf jeden Fall auch erfolgen, wenn Datensätze hinzugefügt oder gelöscht werden.
----
Ergänzung: Habe eine zweite Datei angehängt, die die Bildlaufleiste und die Navigationsleiste von den Werten her in Einklang bringt.
Gruß
Robert
BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das LibreOffice Forum zu erhalten!
> KEINE WERBUNG FÜR REGISTRIERTE BENUTZER!<
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗
Datensatzauswahl - (Bildlaufleiste)
Re: Datensatzauswahl - (Bildlaufleiste)
- Dateianhänge
-
- Beispiel_Datensatz_scrollbar.zip
- Bildlaufleiste und Navigationsleiste zeigen gleiche Werte an
- (11.74 KiB) 132-mal heruntergeladen
-
- Datensatz_scrollbar.zip
- (10.95 KiB) 134-mal heruntergeladen
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
Re: Datensatzauswahl - (Bildlaufleiste)
Vielen Dank, konnte alles nachvollziehen
1 Problem hab ich allerdings noch:
habe eine Public Variable "posr" die zum Laden des Formulars mit 50 initialisiert wird. Dies habe ich auch mit einer MSgBox kontrolliert, das dies geschiet. Diese gibt den Wert 50 auch wieder.
Im Event des Scrollens verwende ich diese Variable erneut (nicht erneut Deklariert) und diese hat hier aber verwunderlicherweiße den Wert 0 ???
Soweit so gut, hier zeigt die MSgbox 50 an
Hier allerdings den Wert "0" für "posr"
Das setzten der Variable von Public auf Global brachte die Lösung, kann aber nicht nachvollziehen warum, da ich doch innerhalb eines Moduls auch mit Public das notwendige erreichen sollte
Falls du mir das noch erklären könntest wäre ich dir sehr dankbar.
Bis hierher hast du mir auch super weiter geholfen
1 Problem hab ich allerdings noch:
habe eine Public Variable "posr" die zum Laden des Formulars mit 50 initialisiert wird. Dies habe ich auch mit einer MSgBox kontrolliert, das dies geschiet. Diese gibt den Wert 50 auch wieder.
Im Event des Scrollens verwende ich diese Variable erneut (nicht erneut Deklariert) und diese hat hier aber verwunderlicherweiße den Wert 0 ???
Code: Alles auswählen
PUBLIC max as Long
PUBLIC oScrollfieldevent as Object
PUBLIC posr as Integer
Sub open_Bilddaten (oEvent as Object)
DIM oFrame AS OBJECT
DIM oWin AS OBJECT
DIM oLayoutMng AS OBJECT
DIM aElemente()
posr = 50 'Bei start posr auf Mittelstand initalisieren
Msgbox(posr)
'oEvent.Source.last 'zum letzten Datensatz springen, um Datensatzanzahl zu aktualisieren
'oEvent.Source.first 'zurück zum 1. springen
End sub
Soweit so gut, hier zeigt die MSgbox 50 an
Code: Alles auswählen
Sub Scrollbar_Aenderung(oEvent as Object)
Dim oSCrollfield as Object
Dim oform2 as Object
'Variablen initialisiert
' oScrollfieldevent = oEvent
oScrollfield = oEvent.Source.Model
oForm2 = oSCrollfield.Parent
pos = oEvent.Value
'Position der Scrolleiste auslesen
Msgbox ("Aktuelle" + pos + "vorehrige:" + posr)
If pos > posr Then 'wenn kleiner/größer als vorheriger Wert
Oform2.relative(-1) 'relativ zum aktuellen Datensatz verschieben
Else
Oform2.relative(1)
EndIf
posr = oEvent.Value 'Position für nächsten Verlgiech speichern
End Sub
Das setzten der Variable von Public auf Global brachte die Lösung, kann aber nicht nachvollziehen warum, da ich doch innerhalb eines Moduls auch mit Public das notwendige erreichen sollte
Falls du mir das noch erklären könntest wäre ich dir sehr dankbar.
Bis hierher hast du mir auch super weiter geholfen
Re: Datensatzauswahl - (Bildlaufleiste)
Hallo Alletkla,
ich habe jetzt einfach einmal in der Hilfe etwas gesucht:
Gruß
Robert
ich habe jetzt einfach einmal in der Hilfe etwas gesucht:
Wenn eine Prozedur abgelaufen ist, dann hast Du von der Public-Variablen nichts mehr. Nur die Variable des Typen Global ist die ganze Zeit lang gültig, für die Du die Datenbankdatei mit den Prozeduren geöffnet hast.Deklarieren von Variablen außerhalb von SUB oder FUNCTION
Global VarName As TYPENAME
Diese Variable bleibt während die gesamte LibreOffice-Sitzung gültig.
Public VarName As TYPENAME
Die Variable hat in allen Modulen Gültigkeit.
Private VarName As TYPENAME
Die Variable hat nur im Modul Gültigkeit.
Dim VarName As TYPENAME
Die Variable hat nur im Modul Gültigkeit.
Gruß
Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
Re: Datensatzauswahl - (Bildlaufleiste)
Okay Vielen Dank für deine rasche und lange Hilfe
steh mit dem Projekt jetzt kurz vor der Vollendung
Falls noch Fragen bestehen, habe ich jetzt keine falsche Scheu mehr, etwas im Forum zu erfragen : )))))
Schöne Pfingsten noch
steh mit dem Projekt jetzt kurz vor der Vollendung
Falls noch Fragen bestehen, habe ich jetzt keine falsche Scheu mehr, etwas im Forum zu erfragen : )))))
Schöne Pfingsten noch
An alle, die das LibreOffice-Forum nutzen:
Bitte beteiligen Sie sich mit 7 Euro pro Monat und helfen uns bei unserem Budget für das Jahr 2024.
Einfach per Kreditkarte oder PayPal.
Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.
❤️ Vielen lieben Dank für Ihre Unterstützung ❤️