1

Thema: diverse kleine fragen zu access 2003

zunächst mal hallo,

ich freue mich auf den austausch hier, da ich durch zufall auf das forum stieß und hier sehr gute links und antworten fand smile mir steht nur access 2003 zur verfügung, meine fragen beziehen sich also nur darauf.

dachte, in diesem thread könnte ich einige kleine fragen anbringen und in einem extra thread dann spezielle (größere fragen) ansprechen.

ein paar kleine fragen also :

1) die berechnung der anzahl der tage von einem zeitraum, also anhand der eingabe von anfangs- und enddatum, zählt vermutlich nur die wirklichen tage - unterschiede in arbeits- und feiertage lassen sich nicht machen ?

2) bzgl den nachschlagespalten bzw dem datentyp nachschlagefeld las ich, daß sie überflüssig wären und nicht der datenbanklehre entsprächen, man solle sie nicht benutzen.
dazu würde mich noch eine meinung / erklärung interessieren

3) haben nachschlagelisten (womit man ein feld einer tabelle definieren kann und das in einem formular automatisch als listenfeld mit einträgen auftaucht) mit oben genannten nachschlagefeldern etwas zu tun oder ist es nur ein ähnlicher namen ?

4) wenn ich in einem formular ein den datentyp eines feldes auf datum gestellt habe und als eingabeformat __.__.____ eingestellt habe, und mit der maus in dieses feld klicke, dann wird auch __.__.____ dargestellt.
drücke ich dagegen die tabulator-tase, erscheint das eingabeformat nicht, lediglich der cursor springt in das feld, das wars. ist das ein "fehler" von access oder kann ich das evtl noch irgendwo einstellen ?

5) in einem formular habe ich ein datumsfeld und darunter ein zahlenfeld für "anzahl der tage" (gedacht für einen kurs, damit man das anfangsdatum eingibt und die anzahl der tage)
nun hatte ich vor, darunter ein feld zu setzen, in dem dann der berechnete ausdruck kommt : anfangsdatum + anzahl der tage = enddatum
dachte, das müßte mit dieser funktion gehen : DatAdd(Intervall;Zahl;Datum)
und gab erstmal zur probe mit +3 ein : DatAdd("tt.mm.jjjj";+3;"tt.mm.jjjj") aber es funktionierte nicht.
mein ziel wäre gewesen : DatAdd("tt.mm.jjjj";+"AnzTage";"tt.mm.jjjj") so daß zum anfangsdatum der feldinhalt von AnzTage hinzugezählt wird und das enddatum angegeben wird.
was ist da verkehrt oder welche andere funktion müßte ich nutzen ?

6) bzgl der löschweitergabe : bei n:m und 1:1 wird die löschweitergabe vermutlich in beide richtungen gleich funktionieren. aber wie ist es bei 1:n ? vermute, daß die löschweitergabe nur in die richtung 1 -> n läuft, aber bin mir nicht sicher.
bsp : wenn ich kurse und kursbesucher(= namen) habe, dann soll bei löschung eines namens der kurs nicht gelöscht werden, bei löschung des kurses können aber die namen gelöscht werden.
daher die frage, ob access bei einer 1:n beziehung in beide richtungen löscht oder nicht bzw nach welcher regel diese löschweitergabe funktioniert.
nehme an, ist die gleiche regel wie für die aktualisierungsweitergabe - nur kenne ich sie eben nicht.

7) nur die aktualisierungsweitergabe ankreuzen, aber die löschweitergabe nicht, würde bedeuten, daß alles andere weitergegeben wird - und bei löschung dann einfach 'fehler' entstehen ?
mir fällt kein beispiel ein, wo ich einen sinn sehe, nicht bei beiden einen haken zu setzen ? kennt da jemand ein bsp ?

vielleicht soweit erstmal. heute abend mehr zeit habe.
würde mich riesig freuen, infos oder tips zu bekommen - bringe es mir selbst bei und für manche fragen bräuchte man einfach jemanden, der es "einfach weiß" wink

viele grüße, sky

2

Re: diverse kleine fragen zu access 2003

Hallo Sky,

zu Frage 1: schau mal, ob Dir dieser Link etwas hilft: http://www.access-programmers.co.uk/for … p?t=125821

zu Frage 5: Mir scheint die ganze Funktion hier überflüssig. Wenn Du in der Tabelle ein Feld "Anfangsdatum" und ein Feld "Tage" hast, sollte die Formel  =[Anfangsdatum]+[Tage] für die Ausgabe des Enddatums ausreichen.

zu Frage 2 und 3: In der Größenordnung, in der der Normalverbraucher mit Access arbeitet, sind Nachschlagefelder sicher ok. In anderen Datenbanken gibt es so etwas gar nicht, da muss man die Sache eben anders (vielleicht etwas professioneller, aber auch etwas aufwändiger) lösen - z.B. Abfrage über 2 Tabellen und ein Formular, das sich auf die Abfrage bezieht und nicht auf die Ursprungstabellen.

Das Problem, das bei Nachschlagefeldern auftauchen kann: Im Feld erscheint z.B. ein Name (der eben in einer anderen Tabelle nachgeschlagen wurde), gespeichert wird aber dann der Wert der ersten Spalte jener Tabelle (meist "ID"). Bei einer Abfrage wundert man sich dann, wenn bei der Suche nach Namen nix herauskommt. Man übersieht leicht, dass man ein Abfrage über beide Tabellen hätte machen müssen (und dabei das Feld Name eben aus der zweiten Tabelle nehmen müssen). ...Hoffentlich war das jetzt nicht zu verwirrend...

Die Nachschlagelisten, wo man also in der Tabelle selbst schon ein paar Werte zur Auswahl speichert (wie z.B. Land: Deutschland, Österreich, Schweiz)
sind kein Problem. Hier wird ja nur die händische Eingabe erspart. Gespeichert wird die Eingabe hier, wie wenn man das Land selbst eingetippt hätte. Die Nachschagelisten sind also lediglich Textvorschläge, die keinen Einfluss auf die Struktur der Datenbank haben. Bei Nachschlagefeldern hingegen wird automatisch schon eine Beziehung zu einer anderen Tabelle hergestellt.

Zu Frage 6: Die Löschweitergabe löscht in Richtung 1>n, nicht umgekehrt. Es soll z.B. verhindert werden, das Aufträge existieren, die sich auf keinen Mitarbeiter mehr beziehen. Keine Aufträge heißt aber nicht, dass der Mitarbeiter gleich rausfliegt (es kommt ja später wieder was rein).
Da für eine m:n Beziehung drei Tabellen nötig sind, funktionier die Löschweitergabe hier auch nicht in beide Richtungen:
Z.B
Tabelle 1: Schauspieler
Tabelle 2: Filme
Tabelle 3 (Zwischentabelle) WerInWelchemFilm

Schauspieler -> WerInWelchemFilm = 1->n
Filme -> WerInWelchemFilm = 1->n
Schauspieler - Filme ist damit n:m, es besteht aber keine direkte Beziehung zwischen diesen beiden Tabellen.

Wird ein Schauspieler gelöscht, wird kein Film gelöscht, sondern nur die n zugehörigen datensätze in der Tabelle WerInWelchemFilm.

Zu Frage 7: In obigem Beispiel könnte es z.B. vorkommen, dass ein Mitarbeiter geht und die verwaisten Projekte erst später von einem neuen Mitarbeiter übernommen werden, oder später anderen Mitarbeitern zugeordnet werden - so eines nachdem anderen, je nachdem, wer Zeit hat.
Ändert sich die Mitarbeiternummer einer Mitarbeiters, muss die Änderung auch an die Projekt-Datensätze weitergegeben werden.
Hier hätten wir also eine Aktualisierungweitergabe, aber keine Löschweitergabe.

LG, Oliver

[color=#555555]...und hier noch Olivers Kochtipp: wenn Du die Zahnstocher mitessen kannst, hast Du die Rouladen zu lange gekocht!!! :-)[/color]

3

Re: diverse kleine fragen zu access 2003

hallo Oliver,

vielen dank für deine antwort smile

1) hui, der link ist ein angriff auf meine englisch-kenntnisse wink sieht prima aus das forum und meinem englisch täte es sicher auch gut - muß ich aber etwas den kopf dafür haben und mich erst einlesen smile

5) =[Anfangsdatum]+[Tage]
nehme an, wenn die felder Anfangsdatum und Tage heißen ? bin gespannt, ob es klappt smile
ausprobieren werde. in manchen bereichen bin ich noch ziemlich grün, also bitte nicht über 'einfache' fragen wundern.

2 + 3) hm, sollte wohl am besten beides mal ausprobieren und lernen.  etwas verwirrend ist es schon, aber glaube, habe das mögliche problem verstanden. evtl nochmal darauf zurück komme.

6) prima, vielen dank smile  bzgl m:n stand ich auf der leitung, da es ja auch 1:n beziehungen sind, logisch smile

7) ok, auch hier mir nun eher ein beispiel vorstellen kann.

melde mich morgen wieder, viele grüße, sky

4

Re: diverse kleine fragen zu access 2003

hallo,

bzgl =[Anfangsdatum]+[Tage]
zum einen stimmt die syntax nicht (habe es auch mit =["VonDatum"]+["AnzahlTage"] und =("VonDatum"+"AnzahlTage") probiert), zum anderen vermute ich, daß es nicht geht, weil das datumsfeld "VonDatum" den datentyp datum hat und das feld "AnzahlTage" den datentyp zahl, kann das sein ?


beispiel :
tab 1 = mitarbeiter
tab 2 = kurs
tab 3 = veranstalter (des kurses)
tab 4 = meinung (des mitarbeiters)

bzgl IDs :
wenn ich zb 4 tabellen habe und alle felder in einem formular abfrage und zu jedem datensatz in den 4 tabellen logischerweise die ID haben will (autowert) und das eingabedatum =jetzt(), muß ich dann auf das formular für jede tabelle setzen :
tab1_ID, tab2_ID, tag3_ID, tab4_ID und tab1_eingabedatum, tab2_eingabedatum, tab3_eingabedatum, tab4_eingabedatum ?

der ID wird ja eigentlich automatisch erhöht, dh ich müßte dazu nicht unbedingt ein feld auf dem formular angeben ?
und die ID sollte richtig durchzähen (also zb keine leeren datensätze speichert, wenn ich das formular nicht ganz ausfülle) - macht sie aber denk ich auch.

aber beim eingabedatum bleibt doch gar nichts anderes, als es 4x als feld anzugeben ?
oder wie könnte ich das am besten lösen, daß jeder datensatz pro tabelle immer das jeweilige eingabedatum speichert, ohne daß ich 4x das feld auf das formular packen muß ?
es soll ja auch kein eingabedatum zb in der tabelle kurs gespeichert werden, wenn ich per formular nur werte zu mitarbeitern eingebe.


viele grüße, skys

5

Re: diverse kleine fragen zu access 2003

Hallo Sky,

Hier eine Mini-Datenbank, die zeigt, dass =[Anfangsdatum]+[Tage] funktioniert (Formular Termineingabe in der Entwurfsansicht betrachten):
datum_plus_tage.mdb

Genaugenommen ist ein Datumsfeld ja auch vom Typ Zahl, nur wird die Zahl bei der Ausgabe in ein Datumformat umgerechnet.

Das ID-Feld kannst Du in der Entwurfsansicht des Formulars einfach löschen. In der Tabelle bleibt es erhalten. Trägt man nun einen neuen Datensatz ins Formular ein, wird in der Tabelle weiterhin eine ID gespeichert (wenn Datentyp = Autowert) - nur ist sie im Formular nicht sichtbar.


4 Tabellen in einem einzigen Formular ist etwas viel, es sei denn, Du hast ein oder mehrere 1:1 Beziehungen darunter. Bei 1:1 Beziehungen kannst Du auch vorher eine Abfrage mit allen Feldern der beiden Tabellen erstellen (ohne Kriterien). Statt auf 2 Tabellen basiert Dein Formular dann eben auf einer Abfrage. 1:1 Beziehungen sehe ich in Deinem Beispiel allerdings ohnehin nicht.
In der Tabelle Kurs kannst Du ein Nachschlagefeld machen, das den Nachnamen des Veranstalters ausgibt. Ist der Veranstalter noch gar nicht vorhanden, hilft eine Schaltfläche auf dem Formular, die das entsprechende Formular zum Anlegen eines neuen Veranstalters öffnet. Ist der Veranstalter einmal angelegt, kann er über das Nachschlagefeld beliebigen Kursen zugeordnet werden.

Die Tabelle Meinung ist praktisch die Zwischentabelle zwischen Mitarbeitern und Kursen. Sie benötigt nicht unbedingt eine eigene ID, sondern die IDs von Kurs und Mitarbeiter (Felddatentyp hier natürlich nicht Autowert, sondern Zahl), hat also mindestens drei Felder:
Z.B.
MitarbeiterID  Zahl  (oder Nachschlagefeld für Tabelle Mitarbeiter)
KursID           Zahl  (oder Nachschlagefeld für Tabelle Kurse)
Meinung         Memo

Das Eingabedatum-Problem erübrigt sich, wenn Du das Formular wie beschrieben etwas reduzierst bzw. auf mehrere Formulare aufteilst. Ausserdem musst Du ja nicht das Eingabedatum beim Veranstalter ändern, wenn Du einen neuen Kurs eingibst.
In Formularen sollten nur die Felder gleichzeitig auftauchen, die bei einer Tätigkeit benötigt werden. Zur Eingabe der Meinungen empfiehlt sich ein eigenes Formular, da dies mit dem Anlegen von Kursen und Zubuchung von Mitarbeitern nichts zu tun hat.

Ich würde z.B. 4 Formulare erstellen.

Verwaltung von Mitarbeitern:
Übersichtliches Hauptformular Mitarbeiterdaten, Unterformular zeigt tabellarisch Kurse, die dieser Mitarbeiter gebucht hat und evtl. der Meinung zum Kurs.

Verwaltung von Kursen
Hauptformular Kursdaten (Veranstalter werden nur über Nachschlagefeld zugewiesen), Unterformular zeigt tabellarisch die Mitarbeiter (und evtl. ihre Meinung zum Kurs).
Im Hauptformular eine Schaltfläche "neuen Veranstalter anlegen" -> öffnet Formular für Veranstalter (siehe unten).

Verwaltung der Meinung:
Übersichtliches Hauptformular Meinung mit großem Textfeld bzw. Möglichkeiten zum Ankreuzen, etc.
Mit Nachschlagefeldern wird Kurs und Mitarbeiter zugewiesen (kein Unterformular)
In der Tabelle Meinungen könntest Du gleich Nachschlagefelder einfügen, statt Kurs- oder Mitarbeiter-IDs einzugeben.

Verwaltung der Veranstalter:
Hauptformular mit veranstalterdaten, Unterformular mit Kursen (Meinungen und Mitarbeiter brauchts hier nicht)

Ein weiteres Formular könnte sein (Ergänzung zum Formular Mitarbeiter-Kurse mit Schwerpunkt Mitarbeiter-Meinungen):
Hauptformular Mitarbeiter, Unterformular Kurse (nur KursID und Bezeichnung) und Meinungen als Endlosformular mit großen Textfeldern. So kann man schön das Feedback eines Mitarbeiters zu mehreren Kursen auf einmal eingeben oder im Unterformular die durchschnittliche Kursbewertung des Mitarbeiters ausgeben, falls die Mitarbeiter auch Noten vergeben.

LG, Oliver

P.S: Sorry, hat lang gedauert, war wieder mal weg...

[color=#555555]...und hier noch Olivers Kochtipp: wenn Du die Zahnstocher mitessen kannst, hast Du die Rouladen zu lange gekocht!!! :-)[/color]

6

Re: diverse kleine fragen zu access 2003

hallo Oliver,

dank dir für deine antwort smile
wollte dir auch noch was hochladen, aber komm leider nicht zum schreiben und db weitermachen sad
vielleicht morgen/übermorgen klappt. melde mich auf alle fälle wieder.

bis dann, sky

7

Re: diverse kleine fragen zu access 2003

hallo Oliver,

vielen dank erstmal für deine ausführliche antwort ! smile
hat sich inzwischen einiges angesammelt…

die berechnung des datums mit =[Anfangsdatum]+[Tage] funktioniert, jap smile
ID-feld ist auch gelöscht, war quark – access eben doch lange bei mir geruht hat.

4 Tabellen in einem einzigen Formular ist etwas viel, es sei denn, Du hast ein oder mehrere 1:1 Beziehungen darunter.

1:1 beziehungen habe ich keine.

mit den nachschlagefeldern erwischst du mich kalt - bisher habe ich einen bogen darum gemacht, hatte gehofft, ich komme ohne aus. müßte ich mir also erst nochmal ansehen...

die tabMeinung bräuchte wohl keine ID, ja, aber ich tendiere eher dazu lieber eine ID zu viel mit einzusetzen als zu wenig.

Das Eingabedatum-Problem erübrigt sich, wenn Du das Formular wie beschrieben etwas reduzierst bzw. auf mehrere Formulare aufteilst. Ausserdem musst Du ja nicht das Eingabedatum beim Veranstalter ändern, wenn Du einen neuen Kurs eingibst.

bin mir nicht sicher, ob ich verstehe, was du hier meinst - evtl aber auch kur erklärung, warum ich überhaupt das datum so oft einsetzte :
ich dachte, es könnte evtl nützlich sein, nachsehen zu können, wann ein veranstalter angelegt wurde, wann ein mitarbeiter/kurs aufgenommen wurde. vielleicht übertrieben und nicht wirklich oft nützlich, wenn man das feld unsichtbar anlegt, bekommt man es also eh nicht mit. einziger nachteil wäre demnach, daß die db dadurch größer wird.

Ich würde z.B. 4 Formulare erstellen.

und hier beim knackpunkt sind, weil ich versuchte, alles über ein formular aufnehmen zu können - was access aber nicht mitmacht.
es wäre für den datenerfasser mmn sehr benutzerfreundlich, wenn er nur mit einem formular sofort alle daten zu einem kurs und mitarbeiter anlegen könnte - lediglich die meinung und die teilnahme-bestätigung müßten dann evtl nachträglich noch eingegeben werden.
das scheint leider nicht zu gehen sad

habe es mit einem normalen formular probiert - nix.
mit einem registerformular - nix.
lediglich unterformulare und verknüpfte formulare zur verfügung habe, um daten mehrerer tabellen über "eine" maske einzugeben.
und bei den unterformularen zb den nachteil gibt, daß sie sich nicht automatisch mitaktualisieren, wenn man im oberformular den datensatz wechselt.

inzwischen habe ich auch noch eine andere möglichkeit der beziehung und mich würde deine meinung dazu interessieren.

Bild weg.
so hatte ich angefangen.
lngKurs etc dient nur zur verknüpfung.


und das wäre eine ganz andere idee : *Bild raus genommen*
alle tabellen wären über eine haupttabelle verknüpft, jede beziehung zur haupttabelle wäre eine 1:n beziehung - die tabellen untereinander durch diese art der verknüpfung wären dagegen wohl immer n:m (was ja 1:n beinhaltet).

das problem, dadurch ein formular zu bekommen, mit dem ich alle daten für alle tabellen füttern kann, ist damit wohl leider nicht gelöst.
so daß ich mich mittlerweile schon fast damit abgefunden habe, daß ich wohl 2,3,4 formulare brauche.
in diesem zusammenhang mir auch nochmal deinen vorschlag zu den formularen genauer ansehe.

wenn es wirklich auf solche einzelnen formulare hinausläuft, sollte ich die eigentlich bald gemacht haben.

dh, ich wende mich hirnmäßig schon halb den abfragen zu, da die für mich sicher nochmal knifflig werden - obwohl ich mich noch nicht entschieden habe, welche art der beziehung ich nun nehme...

an abfragen stehen folgende an :

1) berechnung des noch vorhandenen budgets + ergebnis, ob ein kurs noch möglich ist
hier fehlen also noch die felder bzgl budget : welches budget existiert und welches schon verbraucht ist bzw noch übrig ist. müßte noch mit in die tabelle des mitarbeiters, denk ich.

2) auflistung der kurs-kosten pro monat, pro jahr und pro name = 3 abfragen

3) auflistung aller von einem namen gemachten kurse
das gerne auch als unterdatenblatt pro name hätte

4) auflistung, wie oft eine teilnahme-bestätigung vorliegt, nicht abgegeben wurde (weil zb krank) oder noch aussteht.

abfragen werde ich schon ein wenig herumprobieren, hoffe, das wird nicht zu schwer für mich - gibt möglicherweise also noch einige fragen.
sowie hier weiter bin, auch versuche noch screenshots nachzureichen.

aber denke, ich warte mal deine meinung ab bzgl der tabellen-beziehung, da das ja das grundlegende ist. welche hat deiner meinung nach welche vor- und nachteile ?
für mich ist die zweite möglichkeit auch noch ganz neu, mich auch noch mehr reindenken muß.
hoffe, ich komme heute abend noch etwas weiter.

soweit erst mal. hoffe, meine infos helfen dir etwas weiter.

viele grüße, sky

Zuletzt bearbeitet von sky (27-11-2010 10:55:56)

8

Re: diverse kleine fragen zu access 2003

Hi Sky,

Noch schnell eine kurze Antwort zu fortgeschrittener Stunde (dann schalt ich ab...).
Die erste Deiner beiden Abbildungen zeigt genau das, was ich gemeint habe - perfekt!
Nur eine Kleinigkeit sehe ich: die Teilnahmebestätigung bezieht sich wohl auf jeden einzelnen Teilnehmer (wenn ich das richtig verstehe) und müsste daher in die Tabelle "Meinung". Vielleicht solltest Du die Tabelle "Meinung" z.B. in "Kursteilnehmer" umbenennen o.ä. - Tabelle "Name" in "Mitarbeiter" oder "Personen" o.ä.

Wenn Du Nachschlagefelder nicht magst - es sollte auch ohne gehen. Mach eine entsprechende Abfrage, wie ich schon mal weiter oben beschrieben habe und füge diese ins Formular ein.

Praktisch ist die Sache mit den Schaltflächen im Formular, die Du über die Toolbox z.B. auch im Formularkopf einfügen kannst. Mit dem Assistenten lässt sich leicht die Funktion zuweisen, ein bestimmtes anderes Formular zu öffnen. So kannst Du schnell zwischen den Formularen hin- und herwechseln oder ein Startformular nur mit Schaltflächen machen - a la "Was möchten Sie als nächstes tun"...

Kreativen Abend noch!

LG, Oliver

[color=#555555]...und hier noch Olivers Kochtipp: wenn Du die Zahnstocher mitessen kannst, hast Du die Rouladen zu lange gekocht!!! :-)[/color]

Re: diverse kleine fragen zu access 2003

Hallo Sky,

kleiner Hinweis zu Deiner Tabellenstruktur tabKurs. In Tabellen gibt es keine berechneten Felder, d. h. Du kannst nur entweder AnzTage oder BisDat als Felder benutzen. Die Berechnung des BisDat kann z. B. in Abfrage, Formular oder Bericht erfolgen, wie in Olivers Beispiel.

Gruß
Joachim

10

Re: diverse kleine fragen zu access 2003

hallo Oliver und Joachim,

danke für eure antworten smile

oliver schrieb:

Die erste Deiner beiden Abbildungen zeigt genau das, was ich gemeint habe - perfekt!

freuuu smile
dennoch würde mich noch eine meinung zu der zweiten möglichkeit (mit der haupttabelle) interessieren.
machbar ? vorteile ? nachteile ? denkfehler ?
du würdest die erste möglichkeit (bild 1) demnach vorziehen ?

oliver schrieb:

Nur eine Kleinigkeit sehe ich: die Teilnahmebestätigung bezieht sich wohl auf jeden einzelnen Teilnehmer (wenn ich das richtig verstehe) und müsste daher in die Tabelle "Meinung".

da habe ich auch schon hin- und herüberlegt : was mache ich zum "maßstab" : den teilnehmer oder den kurs.
eine teilnahmebestätigung liegt pro kurs und pro teilnehmer vor.
aber an sich sollte wohl der teilnehmer maßstab sein.

denke, die bezeichnung tabMeinung lasse ich erstmal aus dem grund, weil in tabName wohl nicht alle mitarbeiter rein kommen, sondern wirklich nur die kursteilnehmer aufgenommen werden.
weiß zwar schon, was du meinst, aber andere tabellen namen zumindest im moment noch etwas verwirrend für mich fände. aber auch nochmal überdenken werde.

oliver schrieb:

Praktisch ist die Sache mit den Schaltflächen im Formular, die Du über die Toolbox z.B. auch im Formularkopf einfügen kannst.

ja, so ein startformular oder diese buttons fände ich auch noch ganz bequem.

vorgestern, nach dem lesen deiner antwort, ließ es mir dennoch keine ruhe und ich habe im bett noch überlegt, ob ich access nicht irgendwie doch austricksen könnte um nur mit einem formular hinzukommen.
hatte dann folgende idee, die zugegeben auf den ersten blick etwas anti-datenbankisch wirkt, aber sieh bitte mal selbst, ob das eine möglichkeit wäre oder ich da irgendeinen denkfehler drin habe.
die idee ist :
1 formular in dem ich alle daten sammel und 1 tabelle (ich nenne sie mal datentabelle) in der ich alle daten abspeichere
(das widerspricht zb schon mal den normalformen einer datenbank)
die datentabelle steht alleine, ohne beziehung und es wird mit den daten aus dieser tabelle auch nicht "gearbeitet" - daher dürfte es doch egal sein, wenn die daten dort voneinander abhängen ?
per abfragen bzw filter sortiere ich aus dieser datentabelle nun die daten so aus, wie ich sie bisher hatte, und speichere sie wieder getrennt in 4 tabellen - damit hätte ich den zustand wie er jetzt ist.
und nur die 4 tabellen, in die ich die daten per filter einspeise, hätten beziehungen untereinander (wie oben)
und jetzt wie normal weitergehen könnte : meine abfragen beziehen sich nur auf diese 4 tabellen
vorteil nebenbei wäre zb, daß sogar die id in jeder der tabelle die zum gleichen kurs und namen und meinung passende wäre - eben weil alles mit einem formular aufgenommen werden konnte und dann nur anders sortiert wurde.
habe es mal versucht grafisch darzustellen :
*Bild rausgenommen*


Joachim schrieb:

zu Deiner Tabellenstruktur tabKurs. In Tabellen gibt es keine berechneten Felder, d. h. Du kannst nur entweder AnzTage oder BisDat als Felder benutzen.

oh - dachte, dachte, access kann auch ein ergebnis dann abspeichern ? hm..
dachte, wenn ich das bisDatum feld mit hilfe der beiden felder "vonDatum" und "AnzahlTage" ausrechnen lasse, kann access das ergebnis dann auch so abspeichern - dachte auch, hätte geklappt - nochmal nachsehen muß. danke !


viele grüße und vielen dank für eure hilfe ! smile sky


ps: nachteil dieser letzten idee ist mmn vor allem, daß die daten doppelt vorhanden sind, die db also doppelt do groß würde. abhilfe dafür wäre evtl die datentabelle getrennt von den 4 tabellen zu speichern, aber dann wäre ich immer auf verknüpfungen angewiesen, was ich auch nicht so gut finde.
da es mmn nicht soo wahnsinnig viele kurse sind, sollte es gehen bzw man könnte ja auch irgendwann dann die kurse von 2 jahren zuvor löschen (bei name sollten sie aber dann stehen bleiben).
mei - wäre froh, wenn schon die einfachste der 3 möglichkeiten hinbekomme + fertig hätte...

Zuletzt bearbeitet von sky (27-09-2010 20:15:53)

11

Re: diverse kleine fragen zu access 2003

*HändeÜberDemKopfZusammenschlag*

sky schrieb:

nachteil dieser letzten idee ist mmn vor allem, daß die daten doppelt vorhanden sind, die db also doppelt do groß würde...

Falsch: Nicht doppelt, sondern vielfach. Denn Für jeden neuen Namen, Kurs, Meinung etc. müsstest Du alle zusammenhängenden Daten neu in die jeweilige Zeile schreiben. Damit hätte sich der Sinn einer Datenbank dann erübrigt -> Dann doch besser Excel-Tabelle oder einfach Stift und viele Zettel!

Ich glaube, es gibt da auch noch ein Missverständnis, was die Abfragen angeht. In Abfragen werden KEINE Daten GESPEICHERT! Es werden nur die Abfragekriterien gespeichert. Jedesmal, wenn man die Abfrage ausführt, sucht die Abfrage die Daten anhand der gespeicherten Kriterien aus der Originaltabelle aus und ZEIGT SIE AN.
Wenn Du in eine Abfrageergebnis-Tabelle dazu verwendest, neue Datensätze einzutragen (das geht!), landen diese auch in der Originaltabelle. Das geht auch, wenn diese neuen Datensätze gar nicht den Abfragekriterien entsprechen würden. Die Daten werden trotzdem in der Originaltabelle gespeichert und beim nächsten Ausführen der Abfrage eben nicht angezeigt.

Aber vielleicht hilft jetzt nur noch die alte "Weisheit" Experĭentia est optĭma rerum magistra ("Erfahrung ist  der beste Lehrmeister" oder "Probieren geht über Studieren"). In Deinem letzten Fall würde die Erfahrung sicher schnell und nachhaltig einsetzen ;-)

LG, OLiver

P.S. Es gibt schon Abfragetypen, die Daten hinzufügen oder Daten löschen oder eine neue Tabelle erstellen - gespeichert werden die Daten aber immer in den jeweiligen Tabellen (oder einer neuen Tabelle), nicht in der Abfrage selbst. Vielleicht war Dir das ja eh schon bekannt und Du wolltest Deine einzelnen Tabellen (rechts) mit einer Tabellenerstellungsabfrage aus der linken Tabelle erstellen. Wie auch immer... nicht sinnvoll.

[color=#555555]...und hier noch Olivers Kochtipp: wenn Du die Zahnstocher mitessen kannst, hast Du die Rouladen zu lange gekocht!!! :-)[/color]

12

Re: diverse kleine fragen zu access 2003

hallo Oliver,

danke ! die idee ist somit schon wieder gelöscht und weg smile

Ich glaube, es gibt da auch noch ein Missverständnis, was die Abfragen angeht. In Abfragen werden KEINE Daten GESPEICHERT! Es werden nur die Abfragekriterien gespeichert. Jedesmal, wenn man die Abfrage ausführt, sucht die Abfrage die Daten anhand der gespeicherten Kriterien aus der Originaltabelle aus und ZEIGT SIE AN.

doch, das ist mir klar - aber ich kann verstehen, daß der eindruck entsteht, umso mehr, da ich am überlegen war, wie ich evtl die ergebnisse einer abfrage in einer tabelle speichern könnte - was auch geht, aber prinzipiell ja nicht immer nötig ist.

Wenn Du in eine Abfrageergebnis-Tabelle dazu verwendest, neue Datensätze einzutragen (das geht!), landen diese auch in der Originaltabelle.

daß die per abfrage gefundenen datensätze in der originaltabelle landen - hm, das nun nicht dachte. hatte eher die vorstellung, daß per abfrage gefundene datensätze man zb in eienr zusätzlichen hilfstabelle speichert für irgendeine weitere verwendung.
aber ok - vielleicht auch besser, ich steige an dem punkt nicht weiter darauf ein, da mir im moment verwirrend und ich (glaube) noch nicht brauche. später evtl gerne nochmal darauf zurück komme.

was die erfahrung und das ausprobieren betrifft : beides braucht zeit wink
und teilweise habe ich nicht die zeit und nerven, alles, was ich mir zusammendenke auch ausprobieren - da brauche ich einfach auch die erfahrung von jemand anderem, damit ich es schneller lernen kann.
außerdem sollte ich was diese db angeht, auch irgendwann ein gutes ergebnis vorweisen können, dh ich darf mich gar nicht zu sehr im probieren und spielen verlieren. jetzt zählt erstmal nur diese aufgabe für mich.

s gibt schon Abfragetypen, die Daten hinzufügen oder Daten löschen oder eine neue Tabelle erstellen - gespeichert werden die Daten aber immer in den jeweiligen Tabellen (oder einer neuen Tabelle)

das ist etwas, was mich auf jeden fall noch interessiert, aber muß es leider auf später verschieben.
denke, besser, ich übe erstmal mit kleinen abfragen - denn da merke ich, haperts leider auch und ich finde den grund/fehler nicht sad

habe weitere screenshots, wie im moment mein aktueller stand aussieht.

zum einen habe ich nun wirklich pro tabelle ein formular. die tabelle bzw das formular für den namen (des kursteilnehmers) mache ich sozusagen zum maßstab, zuerst sollte man das anklicken, dann finden sich dort je ein butto für das formular zum kurs und zur meinung zum kurs.
auf dem formular zum kurs gibt es einen button, um einen evtl neuen veranstalter einzugeben.
*Bild rausgenommen*

und dann habe ich in den tabellen etwas herum experimentiert - teils geglückt, teils nicht wink
weil ich es gut fände, wenn man in der tabelle unter dem namen nachsehen könnte, was für kurse derjenige bisher schon besucht hat und zu dem jeweiligen kurs dann dessen meinung.
daß es ansatzweise 'gelungen' ist, war wohl eher glück...
dh, das ist auch noch nicht vollständig, zeigt auch noch nicht alles so an, wie ich es gerne hätte.

frage dazu wäre auch :
wie lösche ich solch ein angelegtes unterdatenblatt denn wieder ?
auch beim bearbeiten, also ein anderes statt dem vorhandenen anzulegen, knirscht es leider etwas.

Bild weg.

durchgestrichen sind nur felder, die ich noch löschen muß.
ein unterdatenblatt (unten) hätte ich mir zb als abfrage denken können - evtl ein denkfehler, ginge das ?

und was auch noch nicht klappt - dazu sagte Joachim schon etwas - ist, wie ich beim budget anzeigen lassen kann, wie viel noch vorhanden ist, ob der name also überhaupt noch einen kurs belegen kann oder sein geld schon aufgebraucht hat.
ich hatte es versucht mit : = [tabName!Budget]-[tabKurs!Kosten] aber klappte nicht : #Name
dann ein verbindungsfeld lngKosten in die tabName eingefügt, da mir scheint, die beiden felder sollten in eienr tabelle sein (obwohl mir schien, daß es die tabellen-beziehungen durcheinander bringt) und mit =[Budget]-[lngKosten] probiert, klappte aber auch nicht #Fehler.
beim datum ging es, aber finde den fehler nicht.
weiteres problem wäre, wie ich quasi die kosten aller bisher gemachten kurse zusammenzähle und dann vom budget abziehe bzw das pro jahr machen könnte - auch nochmal überlegen muß.
nehme an, ein bestimmtes budget steht jedes jahr neu zur verfügung... - auch nochmal nachfrage.

Joachim meinte, man kann keine berechnungen speichern - beim datum klappte das irgendwie.
wenn du/ihr da evtl auch noch einen tip hättet ?

tja, dh ich probiere mich inzwischen auch schon etwas an abfragen. leider blieben da die felder auch schon mal leer oder tauchten gar nicht auf sad
dachte, das wäre so eine einfache kleine abfrage *schäm...
*Bild rausgenommen*

vielleicht auch dazu noch ein tip ?

wie überhaupt, egal wozu, bin froh über jeden tip und hoffe, die bilder helfen auch ein bißchen beim erklären,w as ich meine.

vielen dank !! und viele grüße, sky

Zuletzt bearbeitet von sky (27-11-2010 10:40:35)

13

Re: diverse kleine fragen zu access 2003

Hallo sky,

poste bitte einen Screenshot der Entwurfsansicht von frmKurs, so dass ich den Inhalt von Feld Bis sehen kann.

Zu frmMeinung: Für die beiden Notenrahmen solltest Du Optionsschaltflächen (die runden) statt Kontrollkästchen benutzen, sonst können die Teilnehmer jeweils mehrere Noten gleichzeditig auswählen.

Unterdatenblatt löschen: Menü Format-Unterdatenblatt-Entfernen

Unterdatenblatt einfügen: Menü Einfügen-Unterdatenblatt-Verknüpfte Tabelle oder Abfrage auswählen
Besser als Unterdatenblatt ist Unterformular.

Nebenbei: Mit einem ordentlichen Access-Kurs würdest Du Dir die Arbeit sehr erleichtern.

Gruß Joachim

14

Re: diverse kleine fragen zu access 2003

hallo Joachim,

im feld "bis" steht =[Von]+[AnzTage]-1

*Bild weg*

Zu frmMeinung: Für die beiden Notenrahmen solltest Du Optionsschaltflächen (die runden) statt Kontrollkästchen benutzen, sonst können die Teilnehmer jeweils mehrere Noten gleichzeditig auswählen.

das sind optionsschaltflächen - ich habe lediglich statt der runden die eckigen genommen. kann also nur eine option ausgewählt werden.

Unterdatenblatt löschen: Menü Format-Unterdatenblatt-Entfernen

Unterdatenblatt einfügen: Menü Einfügen-Unterdatenblatt-Verknüpfte Tabelle oder Abfrage auswählen
Besser als Unterdatenblatt ist Unterformular.

danke smile einfügen konnte ich es witzigerweise.

Nebenbei: Mit einem ordentlichen Access-Kurs würdest Du Dir die Arbeit sehr erleichtern.

sind aber auch teuer. habe in der vhs schon nachgesehen, aber in einen totalen anfängerkurs möchte ich eigentlich auch nicht mehr gehen. am besten wäre es, ich hätte hier vor ort jemanden, den ich fragen könnte, wo man sich evtl auch mal gemeinsam davor setzen könnte. aber so leicht ist gar keiner aufzutreiben.

viele grüße, sky

Zuletzt bearbeitet von sky (26-09-2010 14:33:23)

15

Re: diverse kleine fragen zu access 2003

Hallo sky,

das Feld "Bis" in Deinem Formular ist ein berechnetes Feld, das bedeutet, das Ergebnis wird nicht in Deiner Tabelle gespeichert.

Gruß
Joachim

16

Re: diverse kleine fragen zu access 2003

hallo Joachim,

ja. habe es jetzt auch gerade gesehen.
mal sehen, wie ich das dann mache - ob ich es nur ausrechnen lasse und man muß es dann abtippen oder wie...

*nochmal rausgenommen wink

viele grüße, sky

Zuletzt bearbeitet von sky (24-09-2010 20:27:35)

17

Re: diverse kleine fragen zu access 2003

hallo,

bin wieder irgendwie etwas weiter...

zum einen habe ich überlegt, ob ich die beziehungen der tabellen ändern soll auf :
*Bild rausgenommen*
also die noten in 2 extra tabellen setzen, so daß ich die nur "nachschlagen" bzw per rollup auswählen kann.

bzgl dem nachschlage-feld habe ich etwas probiert - soweit auch ganz praktisch zu sein scheint.
unterschied zwischen kombi- und listenfeld an sich ist klar : beim kombifeld öffnet sich das rollup erst auf wunsch und es ist auch noch eine option selbst eintragen möglich.
was mir allerdings nicht so ganz klar ist, ist der unterschied zwischen kombinationsfeld, listenfeld und nachschlagen - denn auch die kombi- bzw listenfelder, die ich angab, starten letztlich doch den nachschlage-assistenten.


mit den abfragen mehrere tabellen betreffend tue ich mich etwas schwer - einmal klappte es bei einer mini abfrage mit 2 tabellen - ansonsten bleiben die felder leider leer.
immerhin nun an einer stelle las, daß das evtl nur mit sql möglich ist, ergo mich versuche, mit join (inner, left, right) und union bekannt zu machen.

die abfrage des bildes oben lautet per sql übrigens :


geklappt hat :
SELECT tabKurs.ID, tabKurs.Kurs, tabVeranstalter.Name
FROM tabVeranstalter INNER JOIN tabKurs ON tabVeranstalter.ID = tabKurs.VeranstalterID
ORDER BY tabKurs.ID;

nicht geklappt :
SELECT tabMeinung.NoteRef, tabMeinung.NoteInst, tabKurs.Kurs, tabKurs.Kosten, tabVeranstalter.Name, tabName.Nachname, tabName.Bereich
FROM tabVeranstalter INNER JOIN (tabName INNER JOIN (tabKurs INNER JOIN tabMeinung ON tabKurs.ID = tabMeinung.lngKurs) ON tabName.ID = tabMeinung.lngName) ON tabVeranstalter.ID = tabKurs.VeranstalterID;


dann bin ich immer noch am grübeln bzgl dem endgültigen formular...
die schwierigkeit die ich sehe ist, daß ich einen namen und einen kurs und eine meinung verknüpfen muß - damit ich  nicht nur hinterher eine sammlung von namen, kursen und meinungen in den tabellen habe, aber sie alle nicht den richtigen bezug zueinander haben - wie es mir wohl hier dann auch bei der abfrage passiert ist.
geht ja darum, daß zb andi genau den kurs xy und die meinung blub abgegeben hat. da strudel ich noch etwas.
im moment habe ich versucht per nachschlagefelder die verknüpfung herzustellen - bin mir aber nicht sicher, ob das klappt.

grundsätzliches problem ist im moment auch die eingabe - bin aber auch etwas wuschelig...
habe es mir so gedacht, daß ich zuerst den veranstalter eines kurses eingebe.
dann entweder name oder kurs - denke kurs wäre evtl besser, um dort gleich den veranstalter mit nachschlagen zu können.
und dann name des kursbesuchers aufnehmen, wo ich per nachschlagen den kurs zuordne.
und im name-formular als unterformular das meinungsformular habe, wo ich den namen und den kurs nachschlage, um so die meinung zuordnen.

aber irgendwie habe ich das gefühl, mache ich einen gedankenfehler und es hakt noch daran, wie ich die einzelnen daten (name, kurs, meinung, veranstalter) so miteinander verknüpfe, wie es dann auch wirklich sein soll.

hier habe ich es andersrum gemacht, eine andere reihenfolge für die eingabe im kopf hatte :
1. veranstalter
2. name
3. kurs
4. meinung
habe aber fehler drin, da ich teils schon etwas nachschlagen will, was ich aber noch nicht eingegeben habe sad
*Bild rausgenommen*

habt ihr noch ein paar tips, wo ich mich da verrenne bzw was ich korrigieren muß ?

viele grüße, sky

Zuletzt bearbeitet von sky (27-09-2010 20:19:51)

18

Re: diverse kleine fragen zu access 2003

Hallo Sky,

Was ich ehrlich gesagt nicht ganz verstehe, dass Du oben 2 Vorschläge für eine Datenbankstruktur postest und andere nach ihrer Meinung fragst - ich sage, der erste sei fast perfekt, Du nimmst den 2ten und bist jetzt überrascht, dass es Probleme gibt... ?:-|
Also:
So wie Du es jetzt machst, stehen Veranstalter und Kurse in einer n:m Beziehung zueinander. Das bedeutet, ein Kurs kann auch von mehreren Veranstaltern gehalten werden und sollte wohl nicht so sein.
Die Felder der Tabelle Meinung waren ja ursprünglich Bestandteil der Tabelle, die Du jetzt tabHaupt nennst. Du kannst das schon so trennen, wie Du das gemacht hast, allerdings müssen tabMeinung und tabHaup in einer 1:1 Beziehung stehen. Im Feld IDMeinung darfst Du also keine Duplikate zulassen. Jetzt kann sich eine Meinung auf mehrere Kurse beziehen.
Das alles schlägt sich beim Generieren von Formularen nieder, wo Du dann tabellarische Unterformulare bekommst, wo keine sein sollen usw.

Die Felder NoteVers und NoteRefs sind eigentlich die Primärschlüsselfelder (auf die Du in der Tabelle tabMeinung verweist, d.h. in den beiden Tabellen tabNotenRefs und tabNotenVers kannst Du Dir das Feld ID sparen.

Kombinationsfeld vs. Listenfeld: Kombinationsfelder nennt man solche, in denen Du Werte auswählen oder selbst etwas hineinschreiben kannst, in Listenfeldern kannst Du nur aus den vorgegebenen Einträgen auswählen.

Im Nachschlageassistenen legst Du ja erst felst, ob die Einträge der Liste aus einer anderen Tabelle kommen (eigentliches Nachschlagefeld) oder die Listenwerte in den Tabelleneigenschaften (Tabelle - Entwurfsansicht - Nachschlageregister) gespeichert werden. Letzteres ist dann sinnvoll, wenn es nur darum geht, etwas Schreibarbeit zu sparen und man aus nur wenigen Werten auswählen kann (z.B. Feld "Filiale" - Wien, München, Zürich).
Die Nachschlagefelder wiederum machen nichts anderes, als eine Beziehung zu einer anderen Tabelle herzustellen und in der Haupttabelle statt dem ursprünglichen Verweisfeld (z.B. ID eines Veranstalters) eine aussagekräftigere Spalte anzuzeigen (gespeichert wird trotzdem Ersteres), also z.B. den Namen des Veranstalters.

LG, Oliver

[color=#555555]...und hier noch Olivers Kochtipp: wenn Du die Zahnstocher mitessen kannst, hast Du die Rouladen zu lange gekocht!!! :-)[/color]

19

Re: diverse kleine fragen zu access 2003

hallo Oliver,

Was ich ehrlich gesagt nicht ganz verstehe, dass Du oben 2 Vorschläge für eine Datenbankstruktur postest und andere nach ihrer Meinung fragst - ich sage, der erste sei fast perfekt, Du nimmst den 2ten und bist jetzt überrascht, dass es Probleme gibt... ?:-|

oje, das kam falsch bei dir an, aber verstehen kann, da ich nur dazu etwas postete - tut mir leid !

nein, mein favorit ist immer noch die erste version, die die du auch gut fandest.
nur hänge ich fest und um irgendwie weiterzukommen, bastel ich dann an verschiedenen ecken weiter, probiere hier was und da was.
hatte zugegeben auch gedacht, du schreibst noch etwas zu der anderen möglichkeit, weil du sie nicht gleich als unsinn abgetan hast.
aber von meiner logik her finde ich auch die erste version besser, fühle ich mich wohler damit.
*bild dann auch gleich wieder raus nehmen kann*

Kombinationsfeld vs. Listenfeld: Kombinationsfelder nennt man solche, in denen Du Werte auswählen oder selbst etwas hineinschreiben kannst, in Listenfeldern kannst Du nur aus den vorgegebenen Einträgen auswählen.

ja, das schrieb ich, soweit ist es mir klar - mich verwunderte nur, daß das nachschlagefeld genauso angelegt wird, deshalb überlegte, was für einen zusammenhang es gibt bzw ob es das gleiche ist wie ein nachschlagefeld.

mit abfragen über mehr als 1 tabelle habe ich auch meine probleme. die einzige, die geklappt hat war diese hier :
SELECT tabKurs.Kurs, tabVeranstalter.Name
FROM tabVeranstalter
INNER JOIN tabKurs ON tabVeranstalter.ID = tabKurs.VeranstalterID;

habe nun auch irgendwo gelesen, daß abfragen über mehr als eine tabellen eher per sql gemacht werden denn über die entwurfsansicht bzw teils sogar nur per sql gemacht werden können. ergo versuche ich gerade mich mit inner/left/right join anzufreunden.

im moment an folgenden fragen knabber :

1) left/right join wurde mit linken und rechten tabellen erklärt - was in meinen augen quatsch ist, da die tabellen ja anders angeordnet sein könnten.
dh, eigentlich geht es doch darum, welche tabelle 1 und welche tabelle n ist ? und erst danach richtet sich das left und right, oder ?

2) bin ich noch sehr unsicher, ob/wie ich die datensätze korrekt per formular in de db bekomme, daß auch wirklich veranstalter, kurs, name, meinung richtig miteinander verknüpft sind.

3) weiß ich sonst auch nicht, wie ich die abfrage machen muß, damit mir nicht alle möglichen kombinationen der daten aufgelistet wird - auch schon passiert, aber wie gesagt evtl auch mit der falschen eingabe zu tun hatte ?

4) reichen die verknüpfungen in den formularen (mit unterformularen und nachschlagefeldern) aus oder sind sie doppelt oder wie hättest du für einen tip ?
und : ein button auf einem formular, der ein anderes formular aufruft, verknüpft noch nicht die daten, richtig ?

meine formulare habe ich so geändert :
daß bei der eingabe die formulare in der reihenfolge frmVeranstalter, frmName, frmKurs, frmMeinung aufgerufen werden sollten. evtl wäre es noch sinnig, die reihenfolge des möglichen aufrufs der formulare irgendwie so zu kontrollieren, daß man die reihenfolge einhält, da sonst die daten evtl nicht richtig miteinander verküpft sind ? aber keine ahnung wie.

in frmVeranstalter lege ich nur den veranstalter neu an und kann pro veranstalter die kurse sehen.
in frmName lege ich den namen neu an und kann dessen gemachte kurse sehen. hier sollte auch die sache mit dem budget noch rein.
in frmKurs lege ich den kurs an und rufe den dazugehörigen namen auf. außerdem kann ich dort auch die meinung per unterformular eingeben - dort zwecks verknüpfung dann (wieder) den dazugehörigen namen und kurs aufrufe.

steht zwar überall tab davor (weil aus autoformularen entstanden), sind aber formulare :

Bild weg.

viele grüße, sky


ps:

die datumsberechnung habe ich so gelöst, daß ich es in einem feld berechnen lasse und man es dann eben noch 1x abtippen muß.

ähnlich dachte ich, könnte es vielleicht auch mit dem budget klappen - dort allerdings das problem habe, daß pro person die kosten der kurse aufsummiert werden müßten und dann erst vom budget abgezogen werden sollten.
noch ka wie machen, bin aber auch noch nicht soweit.

grau ist all das, was später nicht mehr sichtbar ist.

Zuletzt bearbeitet von sky (27-11-2010 10:54:50)

20

Re: diverse kleine fragen zu access 2003

Hallo Sky,

Spät aber doch. Ich hoffe, inzwischen haben sich die Fragen eh von selbst erledigt.

1. Ich glaube nicht, dass Du Dich bei einer Datenbank wie Deiner mit SQL und auch nicht mit Joins auseinandersetzen musst. Deine Aussage zu left und right ist allerdings natürlich völlig korrekt.

2. Verstehe die Frage vielleicht nicht ganz. Aber ich versuchs: Wenn Du in ein Unterformular etwas einträgst, sollte im Fremdschlüsselfeld automatisch die Id des Primärschlüsselfeldes des Hauptformulars gespeichert werden. Zu deutsch ;-) wenn Du die Beziehungen zwischen den Tabellen korrekt erstellt hast und die Formulare als Autoformular oder mit dem Assistentenerstellt hast, kann nix schief gehen und die Daten im Unterformular sind sicher mit dem gerade gezeigten Datensatz des Hauptformulares verknüpft.

3. Beim Erstellen der Abfrage (Entwurfsansicht) überprüfen Menü Ansicht -> Verknüpfungseigenschaften. Dort muss die erste Option der 3 aktiviert sein. Wenn's dann immer noch nicht klappt, ist die Beziehung zwischen den Tabellen vielleicht nicht richtig erstellt.
Ah, vielleicht hast Du vergessen, bei einer n:m-Beziehung auch die dritte (Zwischen-)tabelle mit in den Abfrageentwurf reinzuholen (auch wenn Du die Felder in der Abfrage nicht anzeigst.

4. Verstehe auch die Frage nicht ganz (was könnte da doppelt sein?). Ja, der Button ruft nur das Formular auf und tut sonst gar nichts.

[color=#555555]...und hier noch Olivers Kochtipp: wenn Du die Zahnstocher mitessen kannst, hast Du die Rouladen zu lange gekocht!!! :-)[/color]