Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: gsaccess am Dezember 18, 2023, 09:00:38

Titel: zoombox
Beitrag von: gsaccess am Dezember 18, 2023, 09:00:38
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
Titel: Re: zoombox
Beitrag von: markusxy am Dezember 18, 2023, 15:38:12
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.






Titel: Re: zoombox
Beitrag von: gsaccess am Dezember 18, 2023, 16:08:32
vielen Dank für die rasche und ausführliche Antwort.

Günther
Titel: Re: zoombox
Beitrag von: MzKlMu am Dezember 18, 2023, 17:37:24
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.
Titel: Re: zoombox
Beitrag von: Köbi am Dezember 18, 2023, 19:29:32
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


Titel: Re: zoombox
Beitrag von: gsaccess am Dezember 18, 2023, 20:17:52
@ 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




Titel: Re: zoombox
Beitrag von: gsaccess am Dezember 18, 2023, 20:20:22
mit Enter wird bei mir die Zoombox wieder geschlossen. Funktioniert nur mit Shift + Enter
Titel: Re: zoombox
Beitrag von: MzKlMu am Dezember 18, 2023, 23:55:09
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
Titel: Re: zoombox
Beitrag von: markusxy am Dezember 19, 2023, 12:10:38
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.



Titel: Re: zoombox
Beitrag von: gsaccess am Dezember 19, 2023, 16:35:58
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
Titel: Re: zoombox
Beitrag von: MzKlMu am Dezember 19, 2023, 17:11:39
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?
Titel: Re: zoombox
Beitrag von: gsaccess am Dezember 19, 2023, 18:11:11
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.
Titel: Re: zoombox
Beitrag von: MzKlMu am Dezember 19, 2023, 19:26:46
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
Titel: Re: zoombox
Beitrag von: gsaccess am Dezember 19, 2023, 23:53:58
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
Titel: Re: zoombox
Beitrag von: MzKlMu am Dezember 20, 2023, 14:14:24
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.
Titel: Re: zoombox
Beitrag von: gsaccess am Dezember 21, 2023, 14:39:56
Vielen herzlichen Dank für die laufende rasche und professionelle Hilfe!!