Access-o-Mania

Access-Forum (Deutsch/German) => Bericht => Thema gestartet von: NickNac am Dezember 13, 2016, 19:32:57

Titel: Textfeld/Checkbox automatisch sichtbar/unsichtbar - gekoppelt an Datensatz
Beitrag von: NickNac am Dezember 13, 2016, 19:32:57
Hi an die Profis :-)
Versuche gerade folgendes Problem zu lösen. Ich habe einen Bericht der alle Daten zu einem Kaufvertrag darstellt. (Select)
Im Detailbereich werden die Artikel (Hersteller, Artikelbeschreibung, und weiteres) angezeigt. (Es werden NUR individuelle Artikel verkauft, außerdem aus dem "Artikeldatensatz" die Bestellung generiert.)
Für den Fall, dass Angaben beim Kauf unklar sind gibt es Felder die nur bei Bedarf sichtbar sein sollen. Dazu habe ich folgenden Code:

Private Sub Detailbereich_Click() <-auch schon im Bericht Kopf eingetragen bei laden - gleiches Problem!!
If IsNull(Me.Aenderung) Or Me.Aenderung = False Then
Me.Aenderung.Visible = False
Else
Me.Aenderung.Visible = True
End If
If IsNull(Me.AenderungArt) Or Me.AenderungArt = "" Then
Me.AenderungArt.Visible = False
Else
Me.AenderungArt.Visible = True
End If
If IsNull(Me.AenderungArt) Or Me.AenderungArt = "" Then
Me.AenderungKVTX.Visible = False
Else
Me.AenderungKVTX.Visible = True
End If
End Sub

Grundsätzlich funktioniert der Code. jedoch nicht mehr, sobald in einem Kaufvertrag mehrere Artikel enthalten sind, egal ob von identischen oder verschiedenen Herstellern.
Jetzt müsste ich den Code (als NICHT VBAler) so anpassen, dass er ggf. die Artikel ID (Primärschlüssel) mit einbezieht um so für jeden Eintrag im Detailbereich des Berichts individuell funktioniert.. oder ?
Hat jemand eine Idee oder Tip?

Danke schon mal im Voraus
Titel: Re: Textfeld/Checkbox automatisch sichtbar/unsichtbar - gekoppelt an Datensatz
Beitrag von: Beaker s.a. am Dezember 13, 2016, 20:41:00
Versuche es im Ereignis "Beim Formatieren".
Titel: Re: Textfeld/Checkbox automatisch sichtbar/unsichtbar - gekoppelt an Datensatz
Beitrag von: NickNac am Dezember 13, 2016, 21:53:05
Die Position ist leider nicht das Problem. es wird auf alle Datensätze im Detailbereich bezogen und "global" angewendet.
kann man die Formel auch auf die ArtikelID beziehen? also die If mit nem Where erweitern?
IF Me!Feld? = 0 Where Me!ArtikelID = [ArtikelID] Me!Feld?.visible =False

Keine Ahnung von VBA.. kann mir nur Codes anpassen oder ein bischen zweckentfremden :)
Titel: Re: Textfeld/Checkbox automatisch sichtbar/unsichtbar - gekoppelt an Datensatz
Beitrag von: MzKlMu am Dezember 13, 2016, 22:03:41
Hallo,
den Zusammenhang habe ich jetzt nicht verstanden. Grundsätzlich kann man mal auf die vielen If verzichten, in dem man den Wahrheitswert des Audrucks direkt zuweist.
So werden dann mal 3 Zeilen für den ganzen Code.Private Sub Detailbereich_Format(Cancel As Integer, FormatCount As Integer)
    Me.Aenderung.Visible = Not (IsNull(Me.Aenderung) Or Me.Aenderung = False)
    Me.AenderungArt.Visible = Not Nz(Me.AenderungArt, "") = ""
    Me.AenderungKVTX.Visible = Not Nz(Me.AenderungArt, "") = ""
End Sub

Das Ereignis "Beim Formatieren" muss zwingend verwendet werden. Ein anderes funktioniert nicht.
Wie das jetzt aber mit dem Artikel zusammenhängt ist mir nicht klar. Bitte genauer erklären.
Titel: Re: Textfeld/Checkbox automatisch sichtbar/unsichtbar - gekoppelt an Datensatz
Beitrag von: NickNac am Dezember 13, 2016, 22:20:47
Mit dem Artikel soll es zusammen gebracht werden, da bei allen Artikeln im Bericht die verborgenen Elemente angezeigt werden, sobald es bei einem nötig ist. so stehet es bei jedem Artikel mit 0 werten (leer) im Bericht mit drin.
Titel: Re: Textfeld/Checkbox automatisch sichtbar/unsichtbar - gekoppelt an Datensatz
Beitrag von: MzKlMu am Dezember 13, 2016, 22:25:25
Hallo,
der Zusamemnhang ist mir immer noch unklar.
Zitatda bei allen Artikeln im Bericht die verborgenen Elemente angezeigt werden, sobald es bei einem nötig ist.
woran ist im Datensatz zur erkennen ob es nötig ist oder nicht. Es muss ja eine Regel geben.
Titel: Re: Textfeld/Checkbox automatisch sichtbar/unsichtbar - gekoppelt an Datensatz
Beitrag von: NickNac am Dezember 13, 2016, 22:38:49
Habe das so aufgebaut, dass beim Erstellen eines Artikels zum Kaufvertrag per Checkbox (ja/nein) vom Verkäufer festgelegt werden kann, ob noch eine Änderung am Vertrag stattfinden soll. Dies verhindert zusätzlich die Bestellung vom so markierten Artikel. Sobald die Änderung/Ergänzung zum betreffenden Artikel bekannt ist wird sie nachgetragen und dabei die Checkbox deaktiviert um den Artikel so zum Bestellen frei zu geben.
Habe ich also 3 Artikel im Vertrag, von denen einer einer Änderung bedarf wird der Inhalt der verborgen werden soll - also die Bereiche in denen Änderung und die Änderung steht zu allen Artikeln sichtbar gemacht, nicht nur zu dem einen für den es sein müsste.(//)
Siehe Anhang..
Titel: Re: Textfeld/Checkbox automatisch sichtbar/unsichtbar - gekoppelt an Datensatz
Beitrag von: MzKlMu am Dezember 13, 2016, 22:50:36
Hallo,
ich habe es immer noch nicht verstanden. Bedenke bitte, dass ich keine Ahnung habe von den Abläufen. Du musst jede Kleinigkeit erklären. Das Bild gibt auch nichts her. Aus welchem Feld auf Deinem Bild ergibt sich jetzt die Abhängigkeit.
Zeige mal ein Istzustand und Wunschzustand.
Titel: Re: Textfeld/Checkbox automatisch sichtbar/unsichtbar - gekoppelt an Datensatz
Beitrag von: NickNac am Dezember 13, 2016, 23:06:18
Keine Sorge, bin Dir nicht böse deswegen :D
Das Bild zeigt den Detailbereich eines Berichts (Kaufvertraginhalt) die leeren checkboxen, als auch der Text Änderung/Ergänzung und Änderung Art dürften nicht sichtbar sein. Dazu der Code.
Sobald die genannten Elemente sichtbar sein sollen, also wenn etwas darin steht/aktiviert ist - siehe letzter Artikel (Farbe ergänzen) werden zu allen Artikeln im Bericht (Vertrag) die betreffenden Elemente eingeblendet. Dies soll aber nicht so sein.

Meine Idee war es jetzt den Code auf die Artikel ID (Primärschlüssel ohne Duplikate) zu erweitern, um so evtl das Problem zu umgehen, und nur die Änderungen angezeigt werden, wo wirklich welche sind.

Die Kaufverträge werden basierend auf der Kundennummer und einer Kaufvertragnummer (beides Indizierte Werte, nicht Primärschlüssel) generiert. Dazu in der Tabelle Kaufvertrag allgemeine Infos wie Kundenadresse, Lieferadresse, Services wie Lieferung, Montage, Zahlungsmodalitäten etc.. zum Kaufvertrag werden dann über  ein separiertes Formular (Mitnahme der Kaufvertrag und Kundennummer) werden dann die Artikel oder auch Kaufgegenstände hinzugefügt. Hier wird zu jedem Artikel der Primärschlüssel als eindeutige Artikelnummer verwendet.
In der Bestellung wird dann per Abfrage anhand der Artikel ID gesucht, welche "Artikel" gedruckt wurden (Kaufvertrag unterschrieben) und keine Artikel mit Änderungsoption beinhalten. Diese werden erst freigegeben, wenn die Änderung eingepflegt ist und zum Bestellen freigegeben.

Hoffe, dass das jetzt etwas hilft.. hab mir Access nur per learning by doing beigebracht und gerade mein erstes VBA Buch gekauft um da mal was nachzulesen...
Bis jetzt klappt das was ich gebaut hab aber alles so wie es soll :D   
Titel: Re: Textfeld/Checkbox automatisch sichtbar/unsichtbar - gekoppelt an Datensatz
Beitrag von: MzKlMu am Dezember 13, 2016, 23:11:06
Hallo,
immer noch Fragezeichen. Ich will ja auch nicht ausschließen, dass ich auf der Leitung stehe. Daher noch mal:
ZitatAus welchem Feld auf Deinem Bild ergibt sich jetzt die Abhängigkeit.
Zeige mal ein Istzustand und Wunschzustand.
Titel: Re: Textfeld/Checkbox automatisch sichtbar/unsichtbar - gekoppelt an Datensatz
Beitrag von: NickNac am Dezember 13, 2016, 23:32:47
So, hier mal alle 3 Versionen. Gut, alles richtig wenn NUR Artikel mit Änderung , oder Nur welche Ohne Änderung da sind.. bei Gemischt das Problem.