Quell-Tabelle dynamisch wählen

Dieses Thema im Forum "Office-Programme" wurde erstellt von slobbi, 24. September 2001.

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. slobbi

    slobbi ROM

    Ich arbeite gerade an einer ACCESS-Anwendung für einen Tischlereibetrieb, dabei hat sich mir folgendes Problem gestellt.

    In einem Rechnungsformular können die Artikel ausgesucht werden.
    Für die Preise ist aber die Ausführung (3 Kriterien: Material, Innenleben und Türe) ausschlaggebend.
    Ich habe schon für jede mögliche Kombination eine Tabelle mit den entsprechenden Preisen erstellt, dabei spiegelt der Tabellenname die Ausführung wieder:

    zB: 010203
    Dabei sind je 2 Ziffern ein Kriterium.

    Nun soll im Rechnungsformular-Kopf (oder wo anders) mit 3 verschiedenen Feldern die Ausführung gewählt werden können und damit die, für das Formular zugrundeliegende, Tabelle gewählt werden:

    zB: Material: 01 , Innenleben: 02 , Türe: 03

    ==> Es wird Tabelle "010203" verwendet

    Bisher konnte mir noch niemand bei diesem Problem helfen und ich wurde immer mit:"Das muss programmiert werden, aber das kann ich nicht!" zu jemand anderem weiterverwiesen.

    Es würde mich sehr freuen, wenn mir jemand helfen kann.
     
  2. RitaBock

    RitaBock Byte

    Es ist wahr, dass das programmiert werden muss, ist aber nicht sehr schwer:

    Die Eigenschaft RecordSource darf nicht fest in den Eigenschaften zugewiesen werden.

    Gehe bei den Eigenschaften des Formulars auf Ereignisse/Beim Öffnen und klicke dort auf die Punkte,wähle Ereignisprozedur.

    Dort schreibe in Form_Open

    me.RecordSource="010203"

    Der entsprechende Name muß natürlich vorher "zusammengebastelt werden.

    z.B.

    dim Nametab

    Nametab="01" & "02" & "03"
    me.RecordSource=Nametab
     
  3. neanderix

    neanderix Kbyte

    >Ich habe schon für jede mögliche Kombination eine Tabelle mit den entsprechenden Preisen erstellt,
    dabei spiegelt der Tabellenname die Ausführung wieder:

    Warum dass? Das Design ist, sorry fuer die drastischen Worte, krank, es widerspricht voellig dem Relationenmodell.

    Anders ausgedrueckt: du kannst dessen Vorteile und Staerken nicht nutzen.

    Besser: je eine Tabelle fuer Tuere, Innenleben und Material.
    In jeder Tabelle ist ein eindeutiges Schluesselfeld.

    Jetzt kommt eine 4. Tabelle hinzu, in der lediglich 3 Felder existieren, naemlich die Fremdschluesselfelder zu den anderen drei Tabellen.

    Auf diese Weise kannst du nicht nur fest vorgegebene Kombinationen erschlagen, sondern so ziemlich alles, was denkbar ist.

    Und: der preis einer Tuere kann jetz ganz einfach per Abfrage bestimmt werden, man muss nicht mehr programmieren.

    Bei deiner Loesung kommt man um das Programmieren nicht herum - und bei jeder Erweiterung (z.B. weil ein weiteres Material oder eine weitere "Innenleben"-Ausfuehrung dazu kommt) muesste das programm angepasst werden.

    Volker

    Volker
     
Status des Themas:
Es sind keine weiteren Antworten möglich.

Diese Seite empfehlen