Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: ede am Februar 10, 2012, 15:55:10

Titel: msaccess - feldwerte aus Dritt-Tabelle zuweisen
Beitrag von: ede am Februar 10, 2012, 15:55:10
Hallo,

ich hab da ein Anfängerproblem:

Drei Tabellen

- Kunde (k-id)
  alle relevanten Kundendaten, hier ist nur die [k-id] wichtig

- Artikel (a-id,a-preis)
  alle relevanten Artikeldaten, hier ist [a-preis] wichtig. Preise sind zeitabhängig und müssen deshalb in der Tabelle Bestellung abgelegt werden.

- Bestellung (b-id,b-datum,k-id,a-id, b-preis)
  Kunde bestellt Artikel zum Preis von [a-preis]. Dieser Wert muss nun an [b-preis] übergeben werden.


Wie mache ich das?

(Kenne mich mit dem Thema eigentlich ganz gut aus, habe aber das letzte Mal 1997 mit Access gearbeitet - alles vergessen :( )
Titel: Re: msaccess - feldwerte aus Dritt-Tabelle zuweisen
Beitrag von: Jonny am Februar 10, 2012, 16:08:04
Hallo,

wie wird denn Erfasst? Über ein Formular vieleicht?
Wenn ja wie sieht das aus?

Das musst du uns schon sagen damit wir helfen können.

Gruß

Johann
Titel: Re: msaccess - feldwerte aus Dritt-Tabelle zuweisen
Beitrag von: ede am Februar 10, 2012, 16:15:07
- Erfasst wird über ein Formular (Kunde - Subformular-Bestellung)
- Im Subformular wird der Artikel ausgewählt
- Nun soll [b-preis] mit [a-preis] gefüllt werden

In der Tabelle [artikel] sind immer nur die aktuellen Preis hinterlegt. Natürlich wird über die Preise eine Historie geführt (Das ist hier aber nicht relevant). Würden sich die Preise nicht regelmäßig ändern, hätt ich das Problem nicht ;)

Vielen Dank für die Hilfe!
Titel: Re: msaccess - feldwerte aus Dritt-Tabelle zuweisen
Beitrag von: DF6GL am Februar 10, 2012, 16:21:03
Hallo,

zur Auffrischung:


Sonder- und Leerzeichen in Objektnamen DRINGEND VERMEIDEN!!!!

Die Erfassung der Bestellungen sollte, wie Jonny angemerkt hat, über ein Formualr geschehen. In diesem Formular wird das an das Feld "a-id" in Tabelle "Bestellung" gebundene Steuerelement als Kombifeld ausgeführt, das seine Listendaten aus Tabelle "Artikel" bezieht:

Select [a-id], [a_Benennung], [a-preis] from Artikel order by [a_benennung]

mit dem Ereignis des Kombis "Nach Aktualisierung" wird der Preis des ausgewählten Artikel übergeben:

Sub a_id_Afterupdate()
Me![b-preis] = Me![a-id].column(2)
End Sub


Nochmal: Auf Sonderzeichen verzichten!!

Titel: Re: msaccess - feldwerte aus Dritt-Tabelle zuweisen
Beitrag von: Jonny am Februar 10, 2012, 16:28:12
Hallo,
eine Möglichkeit wäre es mit DomWert zu machen:
=DomWert("Rufname";"Grunddaten";"MitgliedNr = " & [MitgliedNr])
Rufname = Feld a-preis
Grunddaten = Deine Artikeltabelle
MitgliedNr = Dein Feld Artikel-Nummer in Artikeltabelle
[MitgliedNr] = Dein Feld Artikel-Nummer im Formular.

PS Feldname mit - bitte vermeiden.

Gruß

Johann
Titel: Re: msaccess - feldwerte aus Dritt-Tabelle zuweisen
Beitrag von: ede am Februar 10, 2012, 17:09:57
Hut ab, und "Gott" sei Dank ;)

Und latürnisch Jonny auch... Hat prima funktioniert - sehr verbunden!

noch 'ne Frage:

Was meinereiner am liebsten machen würde, das wäre ein Forumular zu bauen, in dem alle Werte an ein Array übergeben werden. Dort kann ich dann mit den Eingaben machen, was ich will, und anschließend die Werte genau dort hinschreiben, wo ich sie hin haben will.

Geht das?

Gibt es irgendwo ein Auffrischerbuch Access? Habe 97 eine komplette Schulverwaltung (Lehrer, Kurse, Zimmer, Schüler, Preise) in Access realisiert - einfach zu lange her...

ps die [a-feld] Notation hab ich natürlich nicht in den Feldnamen verwendet, aber trotzdem guter Hinweis, weil ich die Access-Notation nicht wirklich kenne...

Vielen Dank nochmal!!!
Titel: Re: msaccess - feldwerte aus Dritt-Tabelle zuweisen
Beitrag von: Jonny am Februar 10, 2012, 17:18:20
Hallo,
geht schon aber macht keinen Sinn.
Sind die Tabellen klar, richtig normalisiert werden da doch die Daten aufbewahrt und da gehören Sie auch hin.
Wenn du logische Prüfungen machen willst kannst du das im Ereignis "Vor Aktuallisierung" machen. Im Fehlerfall
positionierst du dann auf das Fehlerhaft Feld und verlangst eine Neueingabe. Im schlimmsten Fall verwirfst du die
komplett Eingabe mit undo.

Gruß

Johann
Titel: Re: msaccess - feldwerte aus Dritt-Tabelle zuweisen
Beitrag von: DF6GL am Februar 10, 2012, 17:20:04
Hall0,

"das wäre ein Forumular zu bauen, in dem alle Werte an ein Array übergeben werden. Dort kann ich dann mit den Eingaben machen, was ich will, und anschließend die Werte genau dort hinschreiben, wo ich sie hin haben will."


das ist doch doppelt-gemoppelt...  die Steuerelemente hast Du doch schon und die sind (fast) einem Array ähnlich....

einen wirklichen Sinn ergibt das nicht, außer man will grundsätzlich mit ungebunden Formularen arbeiten, was wiederum im Access-Umfeld nur das Neuerfinden von Access-Funktionalitäten bedeutet. (Außenahmen bestätigen aber diese "Regel")


"Auffrischerbuch Access":  siehe u. st. Links


die "die [a-feld] Notation "  (Eckklammern um die Namen)   ist erforderlich, wenn Sonder-Oder Leerzeichen in Namen verwendet werden. Sonst subtrahiert Access den Wert aus der Variablen "feld" von der Variablen "a"  ................ :o

Titel: Re: msaccess - feldwerte aus Dritt-Tabelle zuweisen
Beitrag von: ede am Februar 10, 2012, 17:27:49
"Auffrischerbuch Access":  siehe u. st. Links"

Und welches davon? Design und Normalisierung sind kein Thema, es geht nur um die Handhabung von Access.

Formular via Array:

Das ist in jedem Fall übersichtlicher. Und das führt nun zu der Frage: wie kann ich mir denn für alle Ereignisse etc. eines Formulares einen Überblick verschaffen, ohne dass ich da jedes einzelne Feld anklicken muss und anklicken muss und anklicken muss...

Ich bedanke mich nochmal ganz ausdrücklich für Eure schnelle und zielgenaue Hilfe! ++gut!

LG Ede
Titel: Re: msaccess - feldwerte aus Dritt-Tabelle zuweisen
Beitrag von: DF6GL am Februar 10, 2012, 17:36:29
Hallo,



1) dbwiki, donkarl  , ansonsten gibt es beim Gockel unter "Access Tutorials" massenhaft Seiten....


2) "übersichtlicher" :  bezweifle ich  ;)  Das ist so, als wenn Du ein Auto hast und willst selber eigene Räder zusätzlich anbauen.

3)  jedes Objekt hat Ereignisse, nicht nur das Formular. Viele sind überall zu nutzen, manche sind individuell je nach St.-El.-Typ.  Zu finden im jeweiligen Eigenschaftenfenster unter Reiter "Ereignisse".

Titel: Re: msaccess - feldwerte aus Dritt-Tabelle zuweisen
Beitrag von: ede am Februar 10, 2012, 17:42:03
Genau, "Eigenschaftsfenster" klick - klick - klick ....

Gibt's da irgendwas wie'ne tabellarische Übersicht, so wie ich sie quasi in einer Routine finden würde? Ist natürlich schon ein klein wenig schizo, weil ich Access ja gewählt habe, damit ich nicht so viel selber schreiben muss, aber der Überblick...

lg.ede

ps und danke für die Dokus - sieht sehr gut aus!
Titel: Re: msaccess - feldwerte aus Dritt-Tabelle zuweisen
Beitrag von: Beaker s.a. am Februar 10, 2012, 22:56:06
Hallo ede,
ZitatGibt's da irgendwas wie'ne tabellarische Übersicht, so wie ich sie quasi in einer Routine finden würde?
In der VBA Umgebung gibt es den Obkektkatalog (F2 in A2010), der dir alle Objekte mit ihren Eigenschaften und Methoden (inkl. Parameter) auflistet.
hth
gruss ekkehard
Titel: Re: msaccess - feldwerte aus Dritt-Tabelle zuweisen
Beitrag von: delta am Februar 11, 2012, 09:53:26
Danke, Ekkehard :)

Nochmal vielen Dank an alle - habe gestern noch richtig was weg geschafft!