alle gefilterten Checkboxen mit Schleife ändern

Moderator: ModerationP

Re: alle gefilterten Checkboxen mit Schleife ändern

Beitragvon Bitsqueezer » 12. Mär 2018, 22:32

Hallo,

versuch's mal so:

Code: Alles auswählen
Private Sub TeileArtikel_Filtern()
    Me!lstTeileArtikel.RowSource = "SELECT A.ID_Laserteile, A.ID_Artikel, A.ID_TeileArtikel " & _
           "FROM tbl0TeileArtikel AS A " & _
           "WHERE A.ID_Laserteile = Forms![frmÜbersicht]!txtIDLaserteile " & _
            "AND A.ID_Artikel=Forms![frmÜbersicht]!txtIDArtikel"
End Sub


Und wenn Du "TeileArtikel_Filtern" sowieso selbst aufrufst, geht es auch so noch kürzer:

Code: Alles auswählen
Private Sub TeileArtikel_Filtern()
    Me!lstTeileArtikel.RowSource = "SELECT A.ID_Laserteile, A.ID_Artikel, A.ID_TeileArtikel " & _
           "FROM tbl0TeileArtikel AS A " & _
           "WHERE A.ID_Laserteile = " & Nz(Me.txtIDLaserteile,0) & _
            "AND A.ID_Artikel= " & Nz(Me.txtIDArtikel,0)
End Sub


Was für eine Regel soll es geben und was ist für Dich "der SELECT-Bereich?" Auch der Rest erschließt sich mir nicht.

Warum willst Du eine Funktionalität programmieren, die in gebundenen Formularen Access ganz alleine erledigt? Da brauchst Du weder INSERT noch UPDATE noch DELETE.

Gruß

Christian
Bitsqueezer
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 6430
Registriert: 21. Jun 2007, 12:17

Re: alle gefilterten Checkboxen mit Schleife ändern

Beitragvon Exotdd » 13. Mär 2018, 14:40

Hallo Christian,

danke für die zwei Möglichkeiten. Habe mir die zweite genommen und getestet. Funktioniert super und ist kürzer als mein Text.

Mit dem Select-Bereich meine ich das:
Code: Alles auswählen
"SELECT A.ID_Laserteile, A.ID_Artikel, A.ID_TeileArtikel "
Wobei ich hier wissen wollte, ob es Grundregeln gibt (DER TEIL A.ID_TeileArtikel MUSS ALS ID VORN STEHEN). Sowas halt! :D

Warum willst Du eine Funktionalität programmieren, die in gebundenen Formularen Access ganz alleine erledigt? Da brauchst Du weder INSERT noch UPDATE noch DELETE.

Ich weiß jetzt nicht, was du mit "eine Funktionalität programmieren" meinst. Aber die tbl0TeileArtikel ist nicht in dem Formular gebunden.
Ich habe drei Button (Neu, Ändern, Löschen) in das Formular eingebaut. Wenn im Formular bestimmte Bedingungen erfüllt sind, dann sollen zwei Werte in die Tabelle tbl0TeileArtikel geschrieben werden.
tbl0TeileArtikel besteht aus ID_TeileArtikel, ID_Laserteil und ID_Artikel

Bei Neu: gehe zu NEW und schreibe ID_Laserteil = me.lstZuordnungLaserteil.Colum (0) und ID_Artikel = Me.lstZuordnungArtikel.Colum (0)
Bei Ändern: habe ich mit deiner Hilfe die exakte ID_TeileArtikel ermittelt und er kann direkt den Datensatz wie oben ändern (gehe zu Recordset der tbl0Teileartikel)

So bin ich gerade an der Vorbereitung. Hier dachte ich an eine UPdate Anweisung.
Exotdd
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 155
Registriert: 28. Okt 2016, 14:17

Re: alle gefilterten Checkboxen mit Schleife ändern

Beitragvon Bitsqueezer » 13. Mär 2018, 17:09

Hallo,

ich fürchte, daß bereits bei der Datenbankplanung Probleme bestehen. Wenn es schon zwei Tabellen gibt, die "Artikel" im Namen enthalten, kommt mir das schon komisch vor. Warum kommt es zu einem Tabellennamen "tbl0TeileArtikel" mit einer 0 darin?
Mir scheint, daß hier eine Menge Hintergrundwissen fehlt, mit dessen Erlernung mal normalerweise vor dem Entwurf einer eigenen Datenbank beginnen sollte.

Der "SELECT-Teil" wäre die Feldliste des SELECT-Kommandos.
Klar gibt es hier Regeln, aber nicht, was die Reihenfolge der Felder angeht. Alle anderen Regeln lassen sich aus den einschlägigen F1-Hilfen entnehmen oder in einem SQL Buch zu Access Deiner Wahl - das kann hier nicht alles erläutert werden.

Gruß

Christian
Bitsqueezer
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 6430
Registriert: 21. Jun 2007, 12:17

Re: alle gefilterten Checkboxen mit Schleife ändern

Beitragvon Exotdd » 14. Mär 2018, 09:00

Hallo Christian,

kein Problem. Eine Planung zur Datenbank hatte ich gemacht. Mit dem Forum hier wurden auch die Tabellen geklärt.
Doppelte Tabellen gibt es nicht, auch wenn der Name enthalten ist. Es gibt die Haupttabellen tbl1Artikel, tbl1Laserteile, tbl1Druckwerke, tbl1Refillteile. In denen stehen alle Details von Hersteller, Größe usw.

Die Tabellen tbl0Druckwerkteile, tbl0TeileArtikel, tbl0TeileRefill sind reine Zuordnungstabellen. Sie beinhalten nur die ID-Nummern. Keine dieser Paarungen sind doppelt möglich. Ohne dieser Tabellen klappt vorher nix, da es echt komplex wird. Vor Monaten wurde es hier im Forum diskutiert.

In meinem Fall möchte ich in die Tabelle tbl0TeileArtikel schreiben.
ID_TeileArtikel ist Primärschlüssel.
ID_Laserteil ist der Schlüssel des Laserteils (ein Laserteil kann mehrere Händlerartikel haben)
ID_Artikel ist der Schlüssel des Artikels vom Händler (ein Artikel kann in verschiedene Laserteile)
Die Kombination von ID_Laserteil & ID-Artikel kann es nur einmal geben. Die Zuordnung lässt sich prima über die ID_TeileArtikel ansteuern.
Exotdd
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 155
Registriert: 28. Okt 2016, 14:17

Re: alle gefilterten Checkboxen mit Schleife ändern

Beitragvon Bitsqueezer » 14. Mär 2018, 09:20

Hallo,

dazu müßte man nun die Hintergründe näher wissen, aber im allgemeinen verwendet man auch für m:n-Tabellen Formulare, um eine Zuordnung zu erledigen, wenn sie vom User ausgewählt werden soll. Per VBA den Eintrag vorzunehmen, würde man nur machen, wenn es ausschließlich eine Systementscheidung sein soll, eine m:n-Tabelle (oder sonstwo) zu beschreiben, ansonsten verwendet man i.d.R. ein Unterformular, dessen eine ID mit der des Hauptformulares verbunden ist und die andere wird i.d.R. per Combobox ausgewählt.

Gruß

Christian
Bitsqueezer
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 6430
Registriert: 21. Jun 2007, 12:17

Re: alle gefilterten Checkboxen mit Schleife ändern

Beitragvon KlausMz » 14. Mär 2018, 09:37

Hallo,
Es gibt die Haupttabellen tbl1Artikel, tbl1Laserteile, tbl1Druckwerke, tbl1Refillteile.
Da könnte man auch Zweifel anmelden, ob da nicht eine Tabelle besser wäre, mit einem Schlüsselfeld für die Art der Teile.
Hast Du mal einen Link auf das Thema in dem das so vorgeschlagen Wurde ?
Gruß
Klaus . . . . . Feedback wäre wünschenswert.
Ich möchte bitte keine unaufgeforderten PN. Fragen bitte im Forum.
Benutzeravatar
KlausMz
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 37669
Registriert: 06. Okt 2003, 15:09
Wohnort: Irgendwo in der Pfalz

Re: alle gefilterten Checkboxen mit Schleife ändern

Beitragvon Exotdd » 14. Mär 2018, 10:54

Exotdd
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 155
Registriert: 28. Okt 2016, 14:17

Re: alle gefilterten Checkboxen mit Schleife ändern

Beitragvon Bitsqueezer » 14. Mär 2018, 12:06

Hallo,

das verlinkte Thema erklärt zwar, was Du eigentlich machst, aber es ist dort auch nicht erklärt worden, daß das das ideale zu verwendende Datenmodell ist.

Nach der Beschreibung dort würde ich Deine Problematik mal als ein klassisches BOM-Problem ansehen, also "Bill Of Material". Das beschreibt die Zusammensetzung eines Produktes und kann so allgemein gehalten werden, daß Du ebensogut einen automatischen Klodeckelabsenker wie auch einen Laserdrucker und all seine Einzelteile beschreiben kannst. Das Wort "Laser" käme in so einem Modell in keinem Objekt vor.

Das Datenmodell für so eine Datenbank ist relativ einfach, die Verwaltung in Formularen dagegen nicht so sehr. Es gibt im Allgemeinen zwei Modelle: Parent/Child oder Inclusion List. Du hast dann eine Tabelle mit Artikeln und ihren Beschreibungen und im ersten Modell eine weitere Tabelle, die die IDs der Artikel aufnimmt und mit einer Parent-ArtikelID beschreibt, worin diese verbaut ist. Im zweiten Modell hast Du neben der Artikel-Tabelle eine Inclusion List, die die ID eines Assemblies beinhaltet und die ID eines Teils, was darin verbaut ist (nur die im direkten Level darunter). Die zweite Version ist praktischer, da für ein Assembly die Teileliste nur einmal vorkommt, im ersten Modell kann ein Assembly an verschiedenen Stellen immer wieder vorkommen, was für die Gleichheit eines Assemblies schwerer zu verwalten ist - dafür ist es natürlich einfacher, das in einem Formular zu verwalten.

Hat man das einmal umgesetzt, kann man eine einheitliche Verarbeitung in Formularen erarbeiten, am Ende ist es dann eben egal, um welche Artikel es sich handelt.

In Deinem Modell dagegen bist Du strikt von einer Artikelart und einem Artikelaufbau abhängig, sobald Du auch nur das geringste auf der Modellseite änderst, kannst Du etliches neu programmieren.

Gruß

Christian
Bitsqueezer
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 6430
Registriert: 21. Jun 2007, 12:17

Re: alle gefilterten Checkboxen mit Schleife ändern

Beitragvon Exotdd » 14. Mär 2018, 13:23

Hallo Christian,

ich merke, dass mein Wissen bei Datenbanken klein ist.
Neu programmieren musste ich in den letzten Monaten nichts. Wenn ein Artikel drin ist eingeben wurde, wir max der Preis geändert.
Wie könnte ich so eine Parent/Child oder Inclusion Liste aufbauen

Eingetragen wird immer zuerst ein neues Druckwerk (Eindeutig)
Druckwerk enthält verschiedene Laserteile (Toner, Entwickler, Resttoner usw.) alles in tbl1Laserteile
Laserteile kann ich bei verschiedenen Händlern erwerden (Beispiel Ebay, Amazon usw.) alle in tbl1Artikel
Laserteile kann ich auch befüllen oder Reparieren (Tonerstaub, Fotoleiter usw.) alle in tbl1Refillteile

An den eingetragenen Werten muss außer Preis nur gibt's die noch geprüft werden

Welches System da besser ist weiß ich nicht. Über die tbl0..... Tabelle weiße ich einmalig nur die Teile entsprechen zu.
Exotdd
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 155
Registriert: 28. Okt 2016, 14:17

Re: alle gefilterten Checkboxen mit Schleife ändern

Beitragvon Bitsqueezer » 14. Mär 2018, 23:03

Hallo,

naja, wenn Du mit dem Modell, daß Du hast, zufrieden bist und es alles leistet, was es soll und das auch in absehbarer Zukunft so bleiben wird, ist es vermutlich nun zuviel Aufwand, auf ein komplett anderes Modell umzuschwenken. Bei den genannten Modellen geht es darum, eine beliebig komplizierte Liste an Teilen in Baustufen zu unterteilen.

Lesestoff zu dem Thema gibt es mehr als genug zu finden, hier mal ein paar Beispiele:

http://tdan.com/modeling-hierarchies/5400
https://stackoverflow.com/questions/176 ... base-model

In beiden wird u.a. auch die Inclusion List beschrieben. Die Parent/Child-Methode hatte ich ja oben bereits beschrieben, ein Beispiel kennst Du selbst, das ist der Windows Explorer mit Ordnern und Dateien. Du kannst eine Datei in einem Ordner nur einmal haben, aber in beliebigen Unterordnern nochmal. Also besteht jeder Ordner entweder aus Dateien oder aus Dateien und Ordnern, die wiederum Dateien oder Dateien und Ordner beinhalten können. Jede Datei und jeder Ordner zeigt dabei immer auf sein Parent-Element, also den Ordner (/die Festplatte), in der es enthalten ist. Das genügt, um einen komplexen Baum aufzubauen, wie Du beim Durchwühlen eben dieser Ordner auf Deinem PC sicher schon festgestellt hast. Wenn Du "Ordner" mit "Assembly" austauschst und "Datei" mit "Einzelteil", hast Du genau das Modell. Vorteil dieses Systems ist, daß man es sehr einfach verwalten kann, einen Ordner mit Millionen Dateien in einen anderen Ordner auf der gleichen Platte verschieben geht in Millisekunden - warum? Weil man nur den Link dieses Ordners zu seinem Parent-Element auf den neuen Ordner umschreiben muß, damit ist die Operation schon erledigt, der Baum wird danach neu eingelesen (im Explorer).
Nachteil ist u.a., daß man von jeder Datei beliebig viele Kopien in jedem Ordner erstellen kann und dann sucht man oft nach der richtigen Datei. Oder man hat einen Ordner, in dem bestimmte andere Ordner und Dateien liegen sollen, diese Struktur könnte man in einen anderen Ordner kopieren und dort verändern, ohne daß die Originalstruktur davon betroffen wäre. Was bei Dateien und Ordnern vielleicht nicht so schlimm ist, wäre bei einem Teileaufbau sehr schlecht. Ein Assembly mit einer bestimmten Teilenummer muß immer gleich aufgebaut sein.

In der Inclusion List schreibt man dagegen nur, aus welchen Dateien und Ordnern ein übergeordneter Ordner bestehen soll. Also nur, was direkt in dem Ordner drin ist, nicht, was in den Ordnern darin enthalten ist. Diese werden wieder auf die gleiche Weise extra beschrieben. Im Ergebnis ist die Gesamtliste schwieriger aufzubauen, aber sehr viel genauer, wenn es um Teile geht - da jeder Ordner nur einmal beschrieben ist, kann der Ordner an beliebigen anderen Stellen im Baum ebenfalls vorkommen, ist aber inhaltlich immer gleich (was, wie Du beim Lesen der Beschreibung hier feststellst, für Dateien und Ordner keinen sonderlichen Sinn machen würde, aber sehr wohl für Assemblies und Teile).

Wie Du an den Links siehst, gibt es noch mehr Modelle, manche mehr und manche weniger komplex.

So oder so würden alle diese Modelle quasi eine Neuprogrammierung Deiner Datenbank bedeuten, denn da paßt nicht mehr viel zu Deinem bestehenden Modell. Mit den BOM-Modellen würdest Du auch erst mal nur die Zusammensetzung eines (in Deinem Fall) Druckwerkes beliebig weit nach unten beschreiben, ausschließlich auf Teileebene. Das berücksichtigt noch nicht die Hersteller, Händler, Handhabung wie Reparatur oder Befüllung, usw. Auch das läßt sich darin einbauen, über weitere Tabellen, aber auch hier müßtest Du einiges umdenken.

Viel mehr kann man dazu nicht sagen, denn dazu ist das Thema zu umfangreich. Mit ein wenig suchen findest Du tonnenweise Informationen und Artikel zu dem Thema.

Gruß

Christian
Bitsqueezer
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 6430
Registriert: 21. Jun 2007, 12:17

Re: alle gefilterten Checkboxen mit Schleife ändern

Beitragvon Exotdd » 15. Mär 2018, 09:22

Hallo Christian,

da stellt du mir aber ein Großen Thema vor die Tür. :D Ich werde mir das in den nächsten Tagen mal anschauen. Die DB läuft ja im Moment. So kann ich weiter Daten zuordnen und nutzen. Die Werte bleiben ja erhalten, sodass ich mit diesen ein geeignetes System mal testen kann. Mal sehen was und ob es was neues wird. Danke dir vielmals für die Links
Exotdd
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 155
Registriert: 28. Okt 2016, 14:17

Vorherige

Zurück zu Access Forum (provisorisch)

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste