Neuigkeiten:

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

Mobiles Hauptmenü

zoombox

Begonnen von gsaccess, Dezember 18, 2023, 09:00:38

⏪ vorheriges - nächstes ⏩

gsaccess

Ich suche schon einige Zeit nach Lösungen bei der Zoombox, aber noch nicht das Richtige gefunden.
Vielleicht haben die Spezialisten unter euch eine Lösung.
Access 2019
mit Shift+F2 kann die Zoombox aktiviert werden
Um dies für den Anwender leichter zu machen habe ich beim Doppelklick im entsprechenden Feld folgendne Code eingefügt: RunCommand acCmdZoomBox
Damit wird die Zoombox mit Doppelklick angezegt.
Nun meine Fragen:
1. Gibt es eine Möglichkeit Shift+F2 generell im Programm durch RunCommand acCmdZoomBox zu ersetzen oder muss dieser Befehl in jedes Feld, in dem mit Doppelklick die Zoombox aufgerufen werden soll, kopiert werden.?
2. Ich habe gelesen, dass die Veränderung der Größe der Zoombox erst in Access 365 möglich ist. Gibt es keine Möglichkeit über VBA die Größe der Zoombox zu verändern?
3. In der Zoombox funktioniert die Zeilenschaltung nur mit Shift und Enter. Kann man das irgendwie umstellen, das die Zeilenschaltung mit Enter funktioniert?

Vielen Dank
Günther

markusxy

Zitat von: gsaccess am Dezember 18, 2023, 09:00:381. Gibt es eine Möglichkeit Shift+F2 generell im Programm durch RunCommand acCmdZoomBox zu ersetzen

Ja, mit Hilfe des Suchbegriffs AutoKeys Makro findest du Details dazu.
Ob das aber eine gute Idee ist, wage ich zu bezweifeln.

Zitat von: gsaccess am Dezember 18, 2023, 09:00:38Gibt es keine Möglichkeit über VBA die Größe der Zoombox zu verändern?

Glaub ich nicht. Sollte aber mit Hilfe von Windows API möglich sein.
Sprich, man müsste das Betriebssystem direkt ansteuern.

Zitat von: gsaccess am Dezember 18, 2023, 09:00:383. In der Zoombox funktioniert die Zeilenschaltung nur mit Shift und Enter. Kann man das irgendwie umstellen, das die Zeilenschaltung mit Enter funktioniert?

Nein, dass ist ein Standard in Access.
Außerdem hat Enter ja bereits eine Bedeutung und wird durch die Grundeinstellung festgelegt.







gsaccess

vielen Dank für die rasche und ausführliche Antwort.

Günther

MzKlMu

Hallo,
baue Dir ein kleines Formular, das Du bei Doppelklick öffnest. Das Formular kannst Du in der gewünschten Größe (als PopUp und modal) anlegen. Beim Öffnen muss an das Formular der Wert des Feldes übergeben werden und beim Schließen auch wieder zurückgeschrieben.
Gruß Klaus

Köbi

Zitat von markusxy
ZitatNein, dass ist ein Standard in Access.
Außerdem hat Enter ja bereits eine Bedeutung und wird durch die Grundeinstellung festgelegt.
Dass das Standard ist, glaube ich nicht. Ich arbeite mit Access 2016. In jeder irgendwo geöffneten Zoombox funktioniert die Zeilenschaltung mit Enter.

Vielleicht verstehe ich deinen zweiten Satz nicht
ZitatAußerdem hat Enter ja bereits eine Bedeutung und wird durch die Grundeinstellung festgelegt.
Welche Grundeinstellungen meinst du?

Gruss
Köbi



gsaccess

#5
@ Klaus
Vielen Dank für deinen Tip
Popup Formular habe ich noch keines erstellt.
Folgender Versuch:
Formular mit Eigenschaft popup, Name - zoomeingabe
Feld im Formular mit dem Namen - txteingabe
Feld von dem aus das popup Formular aufgerufen wird - beschreibung

bei Doppelklick folgenden Code hinterlegt:
DoCmd.OpenForm "zoomeingabe", acNormal, , "txteingabe = '" & Me!BESCHREIBUNG & "'"
folgende Meldung kommt dann, siehe unten.

Kannst du mir da nochmals behilfich sein.
Wie muss der Code ausschauen, damit am Ende auch der Text übergeben wird.

vielen Dank!
Günther





gsaccess

mit Enter wird bei mir die Zoombox wieder geschlossen. Funktioniert nur mit Shift + Enter

MzKlMu

#7
Hallo,
das geht so nicht. Der in #5 gezeigte Code ist ja die Übergabe eines Filters, das PopUp ist aber ungebunden, bzw. sollte ungebunden sein.
Am besten, Du übergibst den Wert mit OpenArgs (Öffnungsargumente).
So:
DoCmd.OpenForm "zoomeingabe", acNormal, , , , , Me.BESCHREIBUNG
Und dann im Ereignis "Beim Öffnen" des PopUp's:

Me.txteingabe = Me.Openargs
Beim Schließen des PopUp's musst Du wieder zurückschreiben.
Das könnte so aussehen:
Forms!Formularname.Form!Feldname = Me.txteingabe
Gruß Klaus

markusxy

Zitat von: gsaccess am Dezember 18, 2023, 09:00:383. In der Zoombox funktioniert die Zeilenschaltung nur mit Shift und Enter. Kann man das irgendwie umstellen, das die Zeilenschaltung mit Enter funktioniert?
Zitat von: markusxy am Dezember 18, 2023, 15:38:12Nein, dass ist ein Standard in Access.

Zitat von: Köbi am Dezember 18, 2023, 19:29:32Dass das Standard ist, glaube ich nicht. Ich arbeite mit Access 2016. In jeder irgendwo geöffneten Zoombox funktioniert die Zeilenschaltung mit Enter.

Nun Köbi, du hast recht.
Ich habe das vorher nicht getestet, bin aber davon ausgegangen, dass gsaccess weiß wovon er schreibt.
Shift und Enter ist bei der normalen Textbox der Standard.
Das Verhalten der Enter-Taste wird für die normalen Steuerelemente in den Client-Einstellungen konfiguriert.

@gsaccess, wie kommst du zu der Annahme mit Shift + Enter bei der Zoombox.
Denn dieses "Problem" hast du ja erst bei der selbst erstellenten Zoombox.




gsaccess

#9
Vielen Dank für eure Rückmeldungen.
OpenArgs habe ich so noch nie verwendet. Der Ansatz gefällt mir aber sehr gut.
beim Code
DoCmd.OpenForm "zoomeingabe", acNormal, , , , , Me.BESCHREIBUNGkommt aber folgende Fehlermeldung(siehe unten)
wenn das Feld in dem Navigationsformular - frmReBearbeitung im Unterformular - Navigationsunterformular steht, müsste der Code doch so aussehen. Hier findet er aber das Feld Beschreibung nicht.

DoCmd.OpenForm "zoomeingabe", acNormal, , , , , ([Formulare]![frmrebearbeitung]![Navigarionsunterformular].[Formular]![BESCHREIBUNG])
noch eine ergänzende Frage:
dieses Popupformular kann ich ja dann für alle Felder im Programm mit den geringfügigen Abänderungen verwenden.

@markusxy
Bei der selbsterstellten Zoombox habe ich das Problem nicht. Dort kann ich ja beim Eingabetatenverhalten "Neue Zeile im Feld" auswählen, dann wird durch die Entertaste eine Zeilenschaltung erzeugt. Diese Möglichkeit gibt es bei der mit Shift+F2 aufgerufenen Standardzoombox nicht.

Günther

MzKlMu

Hallo,
ich kenne ja den Aufbau bei dir nicht genau, daher sind meine Code Vorschläge allgemein.
Die selbstgemachte Zoombox kannst du für alle Felder verwenden.

Hast du so lange Texte, dass du eine Zeilenschaltung brauchst?
Gruß Klaus

gsaccess

Hallo
um deinen Vorschlag zu testen habe ich im
formular frmstunden
das Feld txtAuftragbez (ungebundesnes Textfeld)
DoCmd.OpenForm "frmzoomeingabe", acNormal, , , , , Me.txtAuftragBez

oder das Feld cboLeistung (gebundenes Feld in der t_stunden - kurzer Text)
DoCmd.OpenForm "frmzoomeingabe", acNormal, , , , , Me.cboLeistung
getestet.

es kommt immer die gleiche Fehlermeldung.

Zur Länge des Textes:
Es geht mehr um die Strukturierung von Text (zB Beschreibung eines Auftrags-, Rechnungstextes) der damit besser lesbar ist.

MzKlMu

#12
Hallo,
Zitatdas Feld txtAuftragbez (ungebundesnes Textfeld)
Du willst doch an das PopUp einen Wert übergeben, also darf das Feld doch nicht ungebunden sein. Wenn es ungebunden ist, kann es ja keinen Wert anzeigen.
Was nimmst Du denn für ein Ereignis ?

Und das PopUp braucht doch auch Code, wo ist der ?

Der von Dir in #9 gezeigte Code stimmt im 2. Teil nicht mit meinem Vorschlag in #7 überein.

Bitte zeige Codes immer vollständig und keine unvollständigen Codeschnippsel.
Und verwende zur Darstellung von Code die Codetags des Forums.

Darstellung von Code
Gruß Klaus

gsaccess

In der Anlage der Versuch mit einer kleinen TestDB.
Wenn im Feld Leistung im frmstunden ein Wert enthalten ist, wird das Popupformular geöffnet.
Wenn ich test eingebe wird in das Feld Leistung <div>test</div> zurückgegeben. Es sollte aber nur test zurückgegeben werden.
Wenn im Feld Leistung nichts steht kommt die Meldung wie unter Punkt 9.
Das habe ich mit folgendem Code umgangen:
If IsNull(Me.Leistung) Then
Me.Leistung = "-"
End If
Vielleicht kannst du mir so bei der Lösung weiterhelfen, bzw. eine bessere Lösung anbieten.

Vielen Dank
Günther

MzKlMu

#14
Hallo,
in dem Textfeld des Zoomformulars war Rich-Text eingestellt, das muss normaler Text sein.
Für die Übergabe des Wertes an das Zoomformular muss die Eigenschaft .Text verwendet werden. Das ist der aktuelle Inhalt beim Doppelklick.

DB anbei.


PS:
Datenbanken vor dem Hochladen immer "Reparieren/Komprimieren" (Access Dienstprogramm) ausführen.
Vergleiche mal die beiden Uploads 28 gegenüber 650 KB, das ist der Faktor 23.
Gruß Klaus