Office: (Office 2010) Endlosformular

Helfe beim Thema Endlosformular in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; ... schon wieder ärgere ich mich mit den eingeschränkten Eigenschaften des Endlosformulars herum. Es ist ja hinlänglich bekannt, dass die bedingte... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von hcscherzer, 13. Mai 2017.

  1. Endlosformular


    ... schon wieder ärgere ich mich mit den eingeschränkten Eigenschaften des Endlosformulars herum.

    Es ist ja hinlänglich bekannt, dass die bedingte Formatierung nur für Textfelder möglich ist. Und durch das setzen der Textfarbe auf die Hintergrundfarbe werden die Biester unsichtbar - obwohl sie dann den Fokus bekommen können, auch wenn die Eigenschaft Aktiviert auf Nein steht. Ziemlicher Schrott ... aber damit kann ich - gerade so - leben.

    Ich würde jetzt gerne einen Button in mein Endlosformular einbauen, der nur in den Datensätzen angezeigt wird, wo eine ganz bestimmte Bedingung erfüllt ist.

    Hat jemand eine Idee?

    Oder muss ich meinem Kunden irgendwann klarmachen, dass seine Wünsche mit Access unerfüllbar werden und ich das komplette Produkt auf .Net mit Windows.Forms umstricken muss?

    :)
     
    hcscherzer, 13. Mai 2017
    #1
  2. Hallo Hans-Christian,

    wäre ein Textfeld mit einer Button-Optik eine Option für dich?
     
    Maxel, 15. Mai 2017
    #2
  3. Kannst Du mir erklären, wie ich das hinkriege?
    Und dabei wäre zu beachten, dass es "irgendwie" unsichtbar werden muss ...
    Die Sache mit dem Focus ... na ja, ich schrieb schon, dass ich damit leben kann, denn in diesem Formular bekommen andere Textfelder den zuerst.

    Aber die Angelegenheit mit dem verstecken macht mir Kopfzerbrechen denn ich kann beim Bedingten Format doch nur die Text- und Hintergrund-Farben wie die Schriftschnitte bearbeiten ... aber nicht die Rahmen ...
     
    hcscherzer, 15. Mai 2017
    #3
  4. Endlosformular

    Hi!

    Zwei Textfelder übereinander.
    Das untere ist um 1 Pixel breiter und höher.
    Die BackColor der unteren ist etwas dunkler als die darüber und erzeugt
    einen Schatten-Effekt.

    (Bei der Variante, die ich Dir letztens gepostet hatte, würde ich BackgroundColor mit dem Schrifttyp Windings und dem Zeichen 'g' realisieren (wird ein Kasten). Mit 3 Textfeldern übereinander kann ich so einen Button erzeugen. Bei meiner Variante erhält kein Steuerelement den Focus, was ja eigentlich auch hübscher ist, leider verhindert das aber auch, dass man feststellen kann, auf welchen DS man geklickt hat. (SelTop steht immer auf 1) )

    Gruss
    Jones
     
    CatboyJones, 15. Mai 2017
    #4
  5. Hi!

    Es lässt sich doch auch mit meiner Variante lösen.
    Ein ungebundenes Textfeld mit minimaler Größe muss aktiviert sein.
    Das sieht man nicht, kann aber den Focus erhalten. Dann kann man
    auch den MouseUp-Event vom Detailbereich verwenden und direkt
    auf ein belegtes Textfeld reagieren.

    (Habe mal Late-Binding gemacht (ado), falls es da Probleme gab.)

    A02_Endless_vrec_2.zip

    Gruss
    Jones
     
    CatboyJones, 15. Mai 2017
    #5
  6. \@Jones: und wie machst Du es mit bedingter Formatierung unsichtbar?
    Ich sehe in Deinem Beispiel jetzt nicht, warum es nur bei dem betreffenden Datensatz (Februar 2017) angezeigt wird ...
     
    hcscherzer, 15. Mai 2017
    #6
  7. Das Prinzip dieser Lösung ist:

    Das Formular besteht aus Zeilen fester Größe (Höhe des Detailbereichs)
    Im Detailbereich gibt es beliebig viele Textfelder übereinander.
    Alle Textfelder haben transparente Rahmen und Backgrounds und sind deswegen nur dann zu sehen, wenn sie Text beinhalten.
    Für jeden gewünschten Textstyle gibt es ein Textfeld mit den entspr. Einstellungen (Family, Size, Style, Farbe, Ausrichtung) an der gewünschten Position.

    Die Z-Position der Textfelder ist egal, solange man sie nicht gleichzeitig belegen will. Wenn man abwechselnd roten und blauen Text haben will, dann steht eben abwechselnd der Text im entsp. formatieren Textfeld und das andere Textfeld ist leer. Wenn man die Textfelder gleichzeitig belegen will, muss man die entspr. Z-Position beachten.

    Bei den Summen in meinem Beispiel möchte ich das die ganze Zeile ab der Mitte unterstrichen ist, darum steht das entspr. Textfeld in der Mitte und geht bis zum rechten Rand. Dem Textfeld wir dann der Summen-Text zugewiesen + einer ausreichenden Anzahl von Leerzeichen, damit das Feld bis zum rechten Rand unterstrichen ist. Dann liegt da obendrüber das Textfeld für den Betrag der Summe rechtsbündig zum Summenfeld, mit ausreichender Breite und derselben Höhe und Top-Position wie der Summentext. Das Betragsfeld wird über das Summenfeld gezeichnet und der Inhalt ist dadurch unterstrichen.

    Bei den Buttons liegen 3 Textfelder übereinander, das unterste ist ein Pixel höher und breiter als das Positionsbündig drüber liegende. Wenn die Felder mit Windings/g gefüllt sind, werden sie zu farbigen Balken, vom unteren sieht man nur das eine Pixel rechts und unten, das eben überlappt. Das oberste Textfeld beinhaltet die Beschriftung und muss von der Top-Position entspr. ausgerichtet sein, damit der Text an der richtigen Stelle steht.

    Für jedes Textfeld im Detailbereich gibt es ein zugehöriges Feld im Recordset des Formulars. Die bedingte Formatierung erfolgt dadurch, dass man den Wert in das entspr. Feld des jeweiligen DS einträgt. Dafür bietet es sich eben an, dass man ein virtuelles Recordset verwendet, man könnte natürlich auch ein Hilfstabelle verwenden, oder (ggf.) die Felder per Wenn-Klausel als Ausdrücke in einer Abfrage erzeugen (dann kann man aber keine zusätz. Zeilen erzeugen).

    Bei den Buttons in meinem Beispiel habe ich die 3 Buttonfelder immer dann mit Werten belegt, wenn der Tag im Datum der 2. war.

    Ich würde Dir raten, dass in deinem Detailbereich alle Felder anlegst die benötigen wirst, dann erstellst Du im Open-Event ein virtuelles RS mit den zugehörigen Feldern. Dann öffnest Du deine Abfrage als RS, durchläufst die DS und überträgst die Werte Zeile für Zeile in die gewünschten Felder im virtuellen RS. Anschließend weist Du den Textfeldern noch die RS-Felder zu und setzt dann den Recordset des Formulars.

    Alle Textfelder sind deaktiviert und gesperrt. Zusätzlich brauchst Du noch ein solches Textfeld (ungebunden) das gesperrt aber aktiviert ist. Stelle die minimale Größe ein und setze es an den linken Rand. Das Feld sieht man nicht, kann aber den Focus erhalten, dadurch kann man den DS anklicken und deshalb auch den MouseUP-Event verwenden, mit dem man dann feststellen kann, ob man über dem Button geklickt hat, und ob der überhaupt sichtbar ist...

    Ich hoffe ich konnte mich verständlich ausdrücken. Bei meinem Bsp. verwirrt ggf. etwas die Art wie ich die Daten gruppiere, ersetzte das einfach mit deinem Recordset und bau Dir ein Bedingungskonstrukt mit dem Du erkennst wann Du Buttons brauchst, oder Überschriften, oder Summen, etc. (z.B. wenn sich der Monat ändert, dann füge eine Summenzeile (DS) ein, gewünschte Leerzeilen, und ein Überschriftszeile. Dann mach wieder mit den Detailzeilen weiter...)

    Gruss
    Jones
     
    CatboyJones, 15. Mai 2017
    #7
  8. Endlosformular

    Moin Hans-Christian,
    kann "irgendwie unsichtbar" evtl. auch eine Farbkennzeichnung sein, rot für geht nicht und grün für geht? Und das dann per Code absichern, dass es wirklich geht bzw. nicht geht?
    Wenn du das Textfeld auf Spezialeffekt "erhöht" setzt, sieht es schon mal einem Button ziemlich ähnlich (jedenfalls in 2003).
    Irgendwo hatte ich auch mal einen Thread gesehen mit Code, wie man den Mauszeiger über so einem Feld in einen Pfeil umbiegen kann.
    maike
     
    maikek, 15. Mai 2017
    #8
  9. Hallo,

    du kannst auch in einem Endlosformular eine Kombination aus einer Schaltfläche und einem Textfeld machen.

    Das Texfeld liegt auf der untersten Ebene und bekommt durch die Bedingte Formatierung eine Farbe zugewiesen (grün, rot)

    Darüber legst du eine Schaltfläche die transparent ist. Der Vorteil bei dieser Variante ist der Mauszeiger sieht das Texfeld nicht sondern nur die Schaltfläche (Im Prinzip ist es die Glascheibe) und du kannst das Mauszeiger Symbol anpassen.

    1. Textfeld anlagen (Name: edtFarbe)
    2. Bedingte Formatierung anlegen für edtFarbe. Über die Farbe regelst du dann ob der Button sichtbar ist oder nicht in deinem Formular.

    3. Schaltfläche irgendwo im Endlosformular anlegen (am besten etwas unterhalb damit sie alleine ist)

    4. Schaltfläche umbennen in btnKlickMich

    5. Textfeld auswählen und aus dem Layout nehmen. Wenn das Textfeld aus dem Layout genommen ist kann man die Schalftfläche darüber legen.

    6. Beide sollten nun übereinander liegen (Mehrfachauswahl) und nun die Grössen anpassen das beide gleich sind.

    7. Das Textfeld und die Schaltfläche müssen nun gruppiert warden. Dazu unter Anordnen -> Größe Abstand -> Gruppieren. Gruppierte Elemente werden nicht in das Layout übernommen.

    8. über die Eigenschaften nur die Schaltfäche auswählen und Tranparent auf Ja stellen.
     
    Lipsam, 15. Mai 2017
    #9
  10. Wenn es einem nicht stört, dass das Textfeld auch den Focus erhalten kann, dann könnte man auch mit IsHyperLink arbeiten. HyperLinks statt Buttons ist ein saubere Sache, allgemein bekannt und mit dem zugehörigen Mauszeiger durchaus ansprechend.
     
    CatboyJones, 15. Mai 2017
    #10
  11. Moin zusammen.

    Vielen Dank für Eure Anregungen.
    Ich hatte ein paar Tage so viel um die Ohren mit einem Releasetermin, dass ich das Forum überhaupt nicht besucht habe.
    Also: sorry für so wenig Feedback.

    Unter dem Stress mit dem Fertigstellungstermin habe ich mich mit dem Auftraggeber geeinigt, alle Buttons immer anzuzeigen.

    Mit den vorgeschlagenenen Lösunsansätzen werde ich mich bei gegebener Zeit mal beschäftigen. Aber für jetzt setze ich den Thread auf "erledigt"
     
    hcscherzer, 22. Mai 2017
    #11
Thema:

Endlosformular

Die Seite wird geladen...
  1. Endlosformular - Similar Threads - Endlosformular

  2. Endlosformular "on-the-fly" filtern

    in Microsoft Access Hilfe
    Endlosformular "on-the-fly" filtern: Zuerst mal meine Aufgabenstellung: Aus einer Tabelle mit Mitgliederdaten sollen „on-the-fly“, d.h. bei Eingabe eines Teils des Namens, die Datensätze der Mitglieder gefiltert werden. Basis ist...
  3. Access gefilterten Endlosformular die ID (Autowert) in eine Abfrage zu übergeben

    in Microsoft Access Hilfe
    Access gefilterten Endlosformular die ID (Autowert) in eine Abfrage zu übergeben: Hallo Zusammen, ist es möglich, aus einem gefilterten Endlosformular die ID (Autowert) in eine Abfrage zu übergeben? Das habe ich schon ausprobiert: In der Abfrage als Kriterium eingegeben...
  4. Listenfeld im Endlosformular

    in Microsoft Access Hilfe
    Listenfeld im Endlosformular: Hallo in die Runde! Ich stehe gerade furchtbar auf dem Schlauch und hoffe, ihr könnt mir helfen: Problemkind ist eine Art Zimmerverwaltung: - jedes Zimmer hat eine ID und ist einem Objekt...
  5. Im Endlosformular aktiven Datensatz hervorheben

    in Microsoft Access Hilfe
    Im Endlosformular aktiven Datensatz hervorheben: Hallo liebe Mitglieder. Eigentlich benötige ich was ganz einfaches... Ich lasse mir meine Datensätze (Filme) in einem Endlosformular anzeigen. Jeder Datensatz hat diverse Buttons. Klicke ich auf...
  6. Endlosformular aktualisieren, auch optisch

    in Microsoft Access Hilfe
    Endlosformular aktualisieren, auch optisch: Hallo, ich versuche in einem Endlosformular mit einem Kontrollkästchen alle Datensätze zu markieren. Dazu gibt es ein binäres Feld, welches auch im Formular angezeigt wird. Im Formularkopf habe...
  7. Endlosformular mit Abfrage-neue Datensätze

    in Microsoft Access Hilfe
    Endlosformular mit Abfrage-neue Datensätze: Hallo ich erarbeite im Moment im Rahmen eines Projektes eine Datenbank zur Bestellerstellung. Nun habe ich für die Bestellpositionen ein Endlosformular. Erstellt. Als Basis für diese habe ich...
  8. Ansicht Endlosformular

    in Microsoft Access Hilfe
    Ansicht Endlosformular: Hallo ihr Lieben, eine einfache Frage,> weil sie so einfach ist finde ich trotzdem nirgends eine Antwort. Habe nun wie vielleicht bekannt, einige DB's im Einsatz. Was mich jedoch immer noch stört...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden