Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Tabellenstruktur

Begonnen von Lala7, Februar 26, 2011, 17:27:57

⏪ vorheriges - nächstes ⏩

Lala7

Ich brauche für die Arbeit eine Datenbank für Telearbeitsarbeitsplätze. Dafür habe ich eine Tabelle erstellt mit Stammdaten, eine für finanzintere Daten, eine für Vertragsdaten und eine für Beträge. Als Primärschlüssel habe ich überall einen PersonalID erstellt. Und jetzt weiß ich nicht weiter. Ich bekomme von den Leuten ihre Abrechnungen. Manchmal monatsweise, manchmal halbjährlich. Das ist nicht so ganz das Problem, weil das kann man mit dem Nachschlageassistenten bewerkstelligen. Ich möchte gerne ein Formular erstellen, wo ich mit einer Registerkarte arbeiten möchte. Auf der ersten Seite halt die Stammdaten, die zweite sollte die Finanzdaten stehen, auf der 3. Seite die Vertragsdaten und auf der 4. Seite möchte ich gern jeden Monat halt die Beträge eintragen. Aber eben für jeden Mitarbeiter einzeln. Und auf der letzten Seite soll dann eine Zusammenfassung stehen, was in dem aktuellen Jahr bisher ausgegeben wurde und was in den vorhergehenden Jahren ausgegeben wurde. Ich krieg das irgendwie nicht hin mit den Beträgen. Ich hab keine Ahnung wie ich das anstellen könnte, dass ich quasi ein Datenblatt da habe, wo ich den Monat angeben und den Betrag eintragen kann. Ich hoff ich hab das so halbwegs anständig beschrieben. Und auch das zusammenrechnen klappt nicht so ganz. Wenn ich das über ne Abfrage mache, zeigt es mir den Gesamtbetrag von allen Mitarbeitern an, aber nicht von dem einzelnen. Für jeden noch so kleinen Vorschlag bin ich sehr dankbar, weil ich jetzt schon seit 3 Wochen daran sitze und nicht weiterkomme

database

Hallo, willkommen im Forum!

Bevor du dir jetzt große Gedanken über deine Formulare machst solltest du das Fundament fertig haben.
Mir erscheint nach deiner Schilderung das Tabellenkozept ziemlich marode zu sein!

Daher mal folgende Fragen, di du beantworten solltest:
Was speicherst du wie in den Stammdaten?
Was verstehst du unter einer Tabelle für finanzinterne Daten - welche Felder sind in dieser Tabelle?
Welche Felder befinden sich in der Tabelle für Vertragsdaten?
Und welche Felder beherbergt die Tabelle für Beträge?

ZitatAls Primärschlüssel habe ich überall einen PersonalID erstellt
....jagt mir die Gänsehaut bis in die Socken  ;D :D
Was hat z.B. ein Primärschlüssel namens PersonalID in der Tabelle Betraege zu suchen?

Zitatweil das kann man mit dem Nachschlageassistenten bewerkstelligen
Nix da - Finger weg von Nachschlagespalten, das ist reines Gift, verschleiert nur den RICHTIGEN Blick auf die Tabellenbeziehung!
Daten werden nicht in Tabellen eingegeben sondern gelangen ausschließlich über Formulare in die Tabellen!
Um dort etwas nachzuschlagen bedient man sich eines Kombifeldes.

ZitatWenn ich das über ne Abfrage mache, zeigt es mir den Gesamtbetrag von allen Mitarbeitern an, aber nicht von dem einzelnen
Naja, wahrscheinlich solltest du der Abfrage mitteilen, dass die Beträge eines bestimmten Mitarbeiters zu summieren sind.
Weil die Abfrage ja nicht erahnen kann was du ein- oder ausschließen willst, erhältst du die Summe von allen.

ZitatIch hab keine Ahnung wie ich das anstellen könnte ...
Eben - und genau dafür sind wir hier ... um dir zu helfen.
Also beginnen wir ganz von vorne und versuchen mal ein funktionierendes Datenmodell auf die Beine zu stellen.  ;)

Lala7

#2
Zitat
Hallo, willkommen im Forum!

Bevor du dir jetzt große Gedanken über deine Formulare machst solltest du das Fundament fertig haben.
Mir erscheint nach deiner Schilderung das Tabellenkozept ziemlich marode zu sein!
Dies befürchte ich auch.

Daher mal folgende Fragen, di du beantworten solltest:

ZitatWas speicherst du wie in den Stammdaten?
PersonalID: Zahl
Nachname: Text
Vorname:  Text
Anschrift: Memo
Telefonnummer: Text
Org-Einheit: Text
Anmerkung: Memo
Status: Nachschlageassistent (gut, weiß ich jetzt, dass das nicht sehr gut ist) soll enthalten, ob der Vertrag offen ist, gekündigt oder abgeschlossen
Email-Adresse: Hyperlink (damit sich das dann gleich im Outlook öffnen kann)

ZitatWas verstehst du unter einer Tabelle für finanzinterne Daten - welche Felder sind in dieser Tabelle?
Finanzinterne Daten sind bei uns aus welchen "Töpfen" quasi diese Beträge bezahlt werden. Aus Projekten oder aus anderen Quellen halt.
PersonalID: Zahl
Finanzposition: Text
Finanzstelle: Text
Kostenstelle: Text
Vorgangsnummer: Text (jeder Mitarbeiter erhält eine eigene, die ich für die Abrechnung im Einkauf benötige)

ZitatWelche Felder befinden sich in der Tabelle für Vertragsdaten?
PersonalID: Zahl
Vertragsbeginn: Datum
Vertragsende: Datum
Benutzung: Nachschlageassistent - Wieviel von den Telefonrechnungen abgerechnet werden, variiert von 25%, 50%, 75% und 100%

ZitatUnd welche Felder beherbergt die Tabelle für Beträge?
PersonalID: Zahl
Beträge: Währung
Monat: Nachschlageassistent - Da muss ich halt angeben, für welche Monate diese Rechnungen sind. Manche machen monatlich eine Abrechnung, manche einmal jährlich, manche vierteljährlich etc. Sehr unterschiedlich also.

ZitatWas hat z.B. ein Primärschlüssel namens PersonalID in der Tabelle Betraege zu suchen?
Aus deiner Antwort entnehme ich, dass der da gar nichts zu suchen hat :)...Ich wußte halt nicht wie ich die einzelnen Beträge dem jeweiligen Mitarbeiter zuordnen kann.

ZitatNix da - Finger weg von Nachschlagespalten, das ist reines Gift, verschleiert nur den RICHTIGEN Blick auf die Tabellenbeziehung!
Daten werden nicht in Tabellen eingegeben sondern gelangen ausschließlich über Formulare in die Tabellen!
Um dort etwas nachzuschlagen bedient man sich eines Kombifeldes.
Okay, dann lösch ich die komplett raus

ZitatNaja, wahrscheinlich solltest du der Abfrage mitteilen, dass die Beträge eines bestimmten Mitarbeiters zu summieren sind.
Weil die Abfrage ja nicht erahnen kann was du ein- oder ausschließen willst, erhältst du die Summe von allen.

Das ist mir klar, aber das ist halt das Problem, dass ich eben nicht weiß wie und es ist echt nett, dass ich hier Hilfe finde. Ich weiß, dass das viel Arbeit ist, aber da das jetzt endlich richtig gemacht werden soll, bin ich sehr lernbereit. Lese auch viel und suche viel im Web rum, aber da ich schon am Tabellen einrichten scheitere, nützt mir das wohl dann auch noch nicht viel lol.

Es soll halt dann wie gesagt so sein, dass ich dann halt die Beträge eintragen kann, dann auch von dem Jahr eine Gesamtsumme bilde, auch von den vorhergehenden Jahren soll das dann nachgetragen werden und es sollen natürlich auch neue Mitarbeiter eingefügt werden. Aber das steht ganz am Schluss, das weiß ich schon mal :)...

Bin mir auch noch nicht sicher, ob ich noch eine Tabelle benötige für Rechnungsdetails, wo ich aussuchen kann, ob die Person mit oder ohne MwSt abrechnet oder ob das anders gelöst werden kann.

database

Hallo,

nun gut, ich weiß jetzt welche Tabellen du bislang versucht hast zu basteln.
Was mir jetzt noch fehlt ist der Zusammenhang dieser ganzen Geshichte.
Um eine Datenbank effizient zu bauen, muss man wissen, wofür.
Ich brauche daher noch ein paar Infos:

Thema - worum dreht es sich allgemein? Ich ersehe aus deinen Schilderungen eigentlich nur, dass es bei dir ausschließlich Ausgaben gibt - wovon lebst du?  :o
Abläufe - wie spielen Verträge mit Personen aus den Stammdaten zusammen? Sind das Verträge, die nach Zustandekommen da gespeichert werden?
Gibt es zu diesen Verträgen Vertragsnummern und ist es notwendig Vertragsnehmer zu berücksichtigen (z.B. Kundennummern)
Beträge: Stehen die in Zusammenhang mit den Verträgen?
Was ist eine Org-Einheit in den Stammdaten?
Welche Personen betrifft die Tabelle Stammdaten - sind das Kunden, Mitarbeiter, Lieferanten oder wer?
Was hat es mit den Telefonrechnungen auf sich, wie habe ich das zu verstehen - werden 25% von einer Telefonrechnung abgezogen oder was ist das?

Kannst du mit bitte erklären worum es sich bei dieser ganzen Tätigkeit handelt, damit ich mir ein Bild über den Zusammenhang der Informationen machen kann.
Und was auch in solchen Fällen von imenser Wichtigkeit ist, ich brauche eine Beschreibung eines Geschäftsvorganges, der in der Datenbank abgebildet werden soll.
Je detaillierter das gemacht wird umso höher liegt die Erst-Trefferquote beim Erstellen des Datenmodells.

Wenn ich von dir die benötigten Infos habe, kann ich ein Datenmodell erstellen, dass ich dir dann hier reinstelle.
Das schaust dir an und liest meine Erklärungen dazu. Wenn alles passt kann man daran gehen ein paar Testdaten einzutragen und danach die Formulare etc. zu erstellen.
Alles klar?

Lala7

Okay, danke erstmal für die Mühe, die du dir machst. Find ich Klasse.
Es geht um die Abrechnungen unserer Mitarbeiter, die Telearbeitsplätze haben. Das heißt, die führen zu Hause Tätigkeiten aus, die Sie per Internet an uns dann übermitteln. Deswegen dürfen diese Mitarbeiter entweder einen Teil oder eben 100%, wenn es einen Zweitanschluss gibt, Ihrer Telefonabrechnung bei uns abrechnen und bekommen diesen erstattet. Ich hatte das alles erst in Excel, aber da es immer mehr Mitarbeiter werden, wurde dies einfach zu viel für Excel und zu unübersichtlich.
Jemand beantragt einen Telearbeitsplatz und wenn der genehmigt wurde, bekomme ich die Verträge zugeschickt, aus denen ich mir all die Daten wie in den Tabellen angegeben, herausnehme. Das soll alles dann eingegeben werden. Vertragsnummern gibt es da nicht. Man könnte die Vorgangsnummer als Vertragsnummer ansehen, da jeder eine eigene Vorgangsnummer erhält. Aber die wird in SAP durch unseren Einkauf erstellt. Wenn ich eine Rechnung bekomme, such ich den Namen raus, trag die Beträge bei uns ein und schreibe diese Vorgangsnummer dann auf die Rechnung und dadurch kann der Einkauf das in SAP verbuchen. Kundennummern gibt es da nicht. Eine Org-Einheit ist das Referat, wo derjenige arbeitet. Da ab und zu Anfragen kommen, wieviel wurde für Telearbeit für dieses Referat ausgegeben, muss das halt da irgendwie mit rein. Wir haben halt sehr viele Referate.
Die Beträge stehen dann im Zusammenhang mit den Beträgen, weil wie gesagt, die Telefonabrechnung der einzelnen Mitarbeiter abgerechnet werden und diese halt ganz genau der einzelnen Person zugeordnet werden muss. Am Jahresende muss ich dann einen Ausdruck erstellen, wieviel jeder einzelne Person ausgezahlt wurde.
Die Stammdaten beziehen sich halt auf Mitarbeiter im Hause. Da trag ich halt die Heimanschrift etc. ein, da wir dies ab und zu benötigen.
Diese Prozente sind halt unterschiedlich, da manche wie gesagt einen Zweitanschluss, der nur dienstlich genutzt wird, besitzen oder die Stundenanzahl, die sie zu Hause arbeiten, unterschiedlich sind. Das ist in den Verträgen festgelegt, die ich erhalte.  Manche können halt 100% abrechnen, andere wiederum bekommen nur 25%, 50% oder 75% von den Telefonkosten erstattet.
Gut, versuch ich mal zu erklären wie sowas abläuft. Jemand kann bestimmte Tätigkeiten von zu Hause aus erledigen. Meistens sind das Kollegen, die von weiter her kommen oder die schwerbehindert sind oder halt wo die familiäre Situation nicht so optimal ist, d. h. sie pflegen einen Familieangehörigen, möchten aber arbeiten und können dies so erledigen. Da wird dann zu Hause ein Telearbeitsplatz eingerichtet, wo sie zu bestimmten Zeiten arbeiten müssen. Das kann mal 1 Tag in der Woche sein, manche machen dies 3 Tage oder andere wiederum kommen auf die Arbeit, arbeiten da halbtags und fahren dann heim und arbeiten da weiter, können aber zeitglich ihre Kinder betreuen. Diese Telearbeit muss von unserer Personalabteilung genehmigt werden. Ist dies der Fall, bekomme ich dann die Verträge zugeschickt. Ich kopiere mir alles und schicke die dann zurück zum Sachbearbeiter.  Von unserer Beschaffungsabteilung bekomme ich dann die Vorgangsnummer, die man halt als interne Kundennummer benutzen könnte. Diese notiere ich mir zu dem dazugehörigen Mitarbeiter. Der schickt mir dann seine Telefonrechnung und er bekommt dann einen Teilbetrag oder halt alles erstattet, da er seinen Anschluss dienstlich mitbenutzt.  Ich notiere mir die Beträge und schreibe die Vorgangsnummer mit Bearbeitungsdatum drauf und gebe das dann weiter. Wenn dann mal Rückfragen sind, kann ich sagen, dass ich an dem Datum die Rechnung vorliegen hatte.  Und zum Jahresende muss ich halt dann für jeden einzelnen einen Gesamtkostenausdruck erstellen.
Mein Chef meinte, wenn man das mit Access hinbekommen könnte, dann kann man das auch noch auf andere Bereiche ausweiten, wie z. B. Festnetzverwaltung und vor allem unsere Mobilfunkverwaltung. Aber da ich Telearbeit am leichtestens fand, hab ich es halt damit versucht, um erstmal zu verstehen wie das überhaupt laufen könnte.

Falls noch Fragen bestehen, einfach fragen. Versuche das so verständlich wie möglich zu beantworten. Aber nochmals danke für deine Hilfe.

database

Hallo,

ich habe nun nach deinen Angaben ein Datenmodell erstellt.
Dabei sind mir noch drei Fragen eingefallen:

Sind Finanzposition, Finanzstelle und Kostenstelle nicht aus Listen auswählbar?

Das Datenmodell befindet sich im Anhang.
Vielleicht wundert dich, dass nirgends ein Auszahlungsbetrag zu finden ist -  das ist normal, da der Auszahlungsbetrag eine errechnete Größe ist und daher nicht in einer Tabelle gespeichert wird.
Der Auszahlungsbetrag errechnet sich aus dem %-Satz hinter Benutzung und der Höhe der Telefonrechnung.
Beide Beträge sind in der DB einzutragen und somit kann zu JEDEM Zeitpunkt der Auszahlungsbetrag errechnet werden.

Du hast geschrieben, dass es viele Referate gibt - daher werden die in einer Nachschlagetabelle erfasst und später im Formular aus einem Kombifeld ausgewählt (nachgeschlagen)
Ebenso verfährt man mit den Werten der Benutzung.
Die Information zu Benutzung steht mit der Tabelle tblVertrag in Beziehung, da sie Vertragsbestandteil ist.
Die Telefonrechnung und das Auszahlungsdatum habe ich in die Tabelle tblFinanz gestellt.
Nach deinen Aussagen sind dort die 'Töpfe' der Auszahlungsstelle zu finden, daher lag es nahe dort auch die Beträge zu behandeln.
Email ... in meinemn Tabellen gibt es keine Hyperlinks - das wird auf Formularebene mit einem VBA-Einzeiler erledigt.

Schau dir das mal im Beziehungsfenster an und wenn du Fragen dazu hast - stell' sie ruhig.
Wenn dir aber alles klar ist, dann gib einfach mal ein paar Spieldaten in die Tabelen ein (3-4 Datensätze) und
lade dann die DB wieder hoch (komprimieren/reparieren und dann zippen vor dem Hochladen)



[Anhang gelöscht durch Administrator]

Lala7

Diese Finanzstelle, Finanzposition und Kostenstelle sind so unendliche viele, dass ich nicht alle kenne. Habe da auch keine genaue Anzahl wieviele es gibt. Jedes Referat hat da unendlich viele und da es auch noch Projekte gibt, gibt es da auch wieder zig von.

Gut mit dem Auszahlungsbetrag habe ich glaube verstanden. Das heißt, ich gebe den Gesamtbetrag der Rechnung ein und durch die % errechnet mir das quasi den Anteil, der bezahlt wird.

Gut die Referate sind nicht so das Problem. Das ist lösbar, sind zwar viele, aber jetzt nicht so viele, dass man die nicht erfassen könnte. Das würde ich dann morgen auf der Arbeit in Angriff nehmen. Ebenso die Benutzung. Das sind ja nur 4 Beträge. Das wüsste ich auch, wie man das ins Formular einbindet.

Genau, Finanzstelle, Finanzposition und Kostenstelle sind diese "Töpfe" quasi, aus denen das Geld herkommt. Da passt das auch mit den Beträgen. Leuchtet ein.

Gut mit der EMail wusste ich nicht, dass man das so auch lösen kann, aber gut, wieder was gelernt. :) Bin halt totaler Neuling was das betrifft.

Was muss ich mir unter PersonalID_FK, Benutzungs_FK und Referat_FK vorstellen? Das ist mir bisher das einzige, was unklar ist.

database

Hallo,

ZitatDiese Finanzstelle, Finanzposition und Kostenstelle sind so unendliche viele
egal, dann schreibst du sie eben bei Anfall ins Formular rein - dachte nur, dass man die vllt. auch in einer Nachschlagetabelle erfassen könnte.

ZitatDas heißt, ich gebe den Gesamtbetrag der Rechnung ein und durch die % errechnet mir das quasi den Anteil, der bezahlt wird
Richtig, das kann nun auf Formularebene beim Eingeben angezeigt und eben bei der Anforderung eines Reports in der Abfrage der Datenherkunft berechnet werden.

ZitatGut die Referate sind nicht so das Problem
Du musst nicht alle auf einmal erfassen, das kann man auch per VBA lösen.
Gib einfach mal ein paar ein, die wichtigsten, die immer wieder und recht häufig auftachen.
Den Rest kann man dann 'Bei Nicht In Liste' automatisch erfassen, damit sie beim Nächsten Bedarf in der Liste erscheinen

ZitatWas muss ich mir unter PersonalID_FK, Benutzungs_FK und Referat_FK vorstellen
FK ist eine Abkürzung, ein Synonym, von mir gewählt um in Tabellen den Fremdschlüssel einer Beziehung zu kennzeichnen (FK steht dabei für ForeignKey)
Es ist oftmals sehr von Vorteil (z.B. in Abfragen), wenn Primärschlüssel und Fremdschlüssel nicht den gleichen Nam,en tragen.

OK, wenn dann soweit alles geklärt ist und du dich mit dem Datenmodell auskennst, kannst ja mal 3-4 Speildatensätze pro Tabelle erfassen und wie beschrieben die Datei wieder hochladen.
Ich werde dann die wichtigsten Abfragen erstellen und dir ein Formularbeispiel zur Verfügung stellen.

Ich darf dann an der Stelle einen dringenden Appell an dich richten:
Access ist kein kleines Progrämmchen, das mal so eben nebenbei zu benutzen ist.
Access ist eine Entwicklungsumgebung für kleine relationale Datenbanken im Desktop- und Mehrbenutzerumfeld.
Wenn du mehr mit Access lösen willst musst du dich eingehend mit den Regeln und Gesetzmässigkeiten der Datenbankentwicklung auseinander setzen!
Auch was die Bedienung und das Verständnis für die Entwicklungswerkzeuge von Access anbelangt MUSS man sich tiefergehende Kenntnis verschaffen um damit effizient arbeiten zu können.

;)

Lala7

#8
Guten Abend,

Zitategal, dann schreibst du sie eben bei Anfall ins Formular rein - dachte nur, dass man die vllt. auch in einer Nachschlagetabelle erfassen könnte.

Ich kann höchstens mal nachschauen, welche Finanzstellen, Finanzpositionen und Kostenstellen am meisten genutzt werden. Finanzstelle gibt es glaub nicht ganz so viele. Aber Finanzpositionen eben. Da könnte man für die Finanzstellen doch irgendwie einpflegen. Ich werde mal schauen, was bisher da so angefallen ist.

ZitatRichtig, das kann nun auf Formularebene beim Eingeben angezeigt und eben bei der Anforderung eines Reports in der Abfrage der Datenherkunft berechnet werden.

Dann habe ich das schon mal verstanden. So langsam krieg ich die Zusammenhänge hin.
ZitatDu musst nicht alle auf einmal erfassen, das kann man auch per VBA lösen. Gib einfach mal ein paar ein, die wichtigsten, die immer wieder und recht häufig auftachen.
Den Rest kann man dann 'Bei Nicht In Liste' automatisch erfassen, damit sie beim Nächsten Bedarf in der Liste erscheinen
Gut, werde aber trotzdem mal ne Aufstellung machen von denen, die am meisten betroffen sind. Ein paar Abteilungen fallen da schon weg.

ZitatFK ist eine Abkürzung, ein Synonym, von mir gewählt um in Tabellen den Fremdschlüssel einer Beziehung zu kennzeichnen (FK steht dabei für ForeignKey)
Es ist oftmals sehr von Vorteil (z.B. in Abfragen), wenn Primärschlüssel und Fremdschlüssel nicht den gleichen Namen tragen.

Gut, das ist für mich auch einleuchtend. Das wäre also dann gleichzusetzen mit PersonalID = PersonalID_FK. Also in einer Tabelle ist es einfach ein Feld, was aber nicht Primärschlüssel ist, dafür aber in einer anderen Tabelle.

Ich werde morgen ein paar Daten eingeben und dann wieder hochladen.

ZitatIch darf dann an der Stelle einen dringenden Appell an dich richten:
Access ist kein kleines Progrämmchen, das mal so eben nebenbei zu benutzen ist.
Access ist eine Entwicklungsumgebung für kleine relationale Datenbanken im Desktop- und Mehrbenutzerumfeld.
Wenn du mehr mit Access lösen willst musst du dich eingehend mit den Regeln und Gesetzmässigkeiten der Datenbankentwicklung auseinander setzen!
Auch was die Bedienung und das Verständnis für die Entwicklungswerkzeuge von Access anbelangt MUSS man sich tiefergehende Kenntnis verschaffen um damit effizient arbeiten zu können.
;)

Nee nee, das versteh ich auch und ich bin von Access fasziniert, was das alles kann. Unsere große Telefonanlage läuft darüber. Ich weiß schon, dass das ein riesiges Ding ist und viel kann, aber dass man das auch beehrschen muss. Ich habe mir auch schon Bücher besorgt, von den Grundlagen angefangen bis hin zu diesem Entwicklerhandbuch Access 2007 und werde diese auch durcharbeiten. Zumindest erstmal die Grundlagen, denn die sollte man schon verstehen. Das ist mir klar. Bin aber gewillt, dies zu lernen.  

database

Hi,

ZitatGut, das ist für mich auch einleuchtend. Das wäre also dann gleichzusetzen mit PersonalID = PersonalID_FK. ...

Nur so einfach ist das gar nicht, das spielen schon wichtige Dinge zusammen!

Am Leichtesten zu verstehen ist das Zusammenspiel von Primärschlüssel und Fremdschlüssel wenn man das Ganze auf einen Einkaufswagen umlegt.

Der Einkaufswagen hat einen Primärschlüssel und alle Waren, die da rein gelegt weden erhalten diesen Primärschlüssel als Fremdschlüssel aufgeklebt.
liegen nun die Waren aller Einkaufswagen auf einem langen Förderband ist durch den Fremdschlüssel feststellbar, zu welchem Einkaufswagen sie gehören.
Dadurch ist es auch möglich eine exakte Abrechnung zu erstellen, da es nicht passieren kann, dass auch nur eine Ware aus einem anderen Einkaufswagen in den aktuellen wandert
oder wenn alle Waren eines Einkaufswagens abgerufen werden eine Ware nicht dabei wäre.

Schau dir zum Thema Beziehungen und Normalisierung mal die Links 1 und 1a in der Signatur von DF6GL an!

ZitatDa könnte man für die Finanzstellen doch irgendwie einpflegen
Wenn das der Fall sein sollte, muss das Datenmodell entsprechend abgeändert werden, dann müssen diese Finanzstellen in eine eigene
Tabelle wandern und per Fremdschlüssel zur Tabelle tblFinanzen in Beziehung gesetzt werden!

Lala7

#10
Hallöchen,
Zitat
Nur so einfach ist das gar nicht, das spielen schon wichtige Dinge zusammen!

Am Leichtesten zu verstehen ist das Zusammenspiel von Primärschlüssel und Fremdschlüssel wenn man das Ganze auf einen Einkaufswagen umlegt.

Der Einkaufswagen hat einen Primärschlüssel und alle Waren, die da rein gelegt weden erhalten diesen Primärschlüssel als Fremdschlüssel aufgeklebt.
liegen nun die Waren aller Einkaufswagen auf einem langen Förderband ist durch den Fremdschlüssel feststellbar, zu welchem Einkaufswagen sie gehören.
Dadurch ist es auch möglich eine exakte Abrechnung zu erstellen, da es nicht passieren kann, dass auch nur eine Ware aus einem anderen Einkaufswagen in den aktuellen wandert
oder wenn alle Waren eines Einkaufswagens abgerufen werden eine Ware nicht dabei wäre.
Gut jetzt hab ich das glaube richtig verstanden. Das Beispiel mit dem Wagen ist wirklich gut.

ZitatSchau dir zum Thema Beziehungen und Normalisierung mal die Links 1 und 1a in der Signatur von DF6GL an!
Habe ich mir gleich ausgedruckt und das ist auch wirklich gut beschrieben.
ZitatWenn das der Fall sein sollte, muss das Datenmodell entsprechend abgeändert werden, dann müssen diese Finanzstellen in eine eigene Tabelle wandern und per Fremdschlüssel zur Tabelle tblFinanzen in Beziehung gesetzt werden!
Ich hab das mal versucht. Ich hoffe es stimmt, was ich da gemacht habe. Wenn ja, dann habe ich das auch verstanden.


[Anhang gelöscht durch Administrator]

Lala7

Eins ist mir aufgefallen. Wenn ich eine Beziehung habe, lautet die immer auf Zahl. Damit kann man diese 1:n Beziehung herstellen. Aber z. B. Finanzstelle ist keine reine Zahl, sondern eine Kombination aus Buchstaben und Zahlen. Das ist bei vielem so, wie auch beim Referat. Und wenn ich dann da ein Beispiel anklicken will, meckert er quasi immer, dass der Datentyp nicht übereinstimmt, was ja auch richtig ist, weil Zahl angegeben ist, aber eine Buchstaben-Zahlen-Kombi eingetragen werden soll. Bin noch nicht dahinter gekommen wie ich das ändern könnte.

database

Hall,

ZitatIch hab das mal versucht. Ich hoffe es stimmt, was ich da gemacht habe. Wenn ja, dann habe ich das auch verstanden.
Ja, ja, das passt schon so  ;)

ZitatAber z. B. Finanzstelle ist keine reine Zahl, sondern eine Kombination aus Buchstaben und Zahlen
Die Beziehung zwischen zwei Tabellen wird auch IMMER über die Schlüsselspalten erstellt.
Der Primärschlüssel - also die 1 - Seite der Beziehung ist als Autowert ausgeführt.
Wird in eine der Wertespalten was eingegeben, erhält die Schlüsselspalte einen Zahlenwert, der einer Long-Integer-Zahl entspricht.

Die Beziehung ist nur dann herstellbar, wenn die 'Gegenseite' also die n - Seite einer Beziehung ebenfalls als Long Integer-Zahl (Fremdschlüssel)  ausgebildet ist.

Werden nun auf der n - Seite daten erfasst steht in der Fremdschlüsselspalte IMMER ein Zahl und zwar die, welche auf der 1 - Seite der Beziehung dem Primärschlüssel des zugeordneten Datensatzes entspricht.

Um auf meinen Einkaufswagen zurückzukommen -  Wenn ich alle Waren auswähle, die im Fremdschlüssel 15 stehen haben, dann kommen diese Waren allesamt aus dem Einkaufswagen 15. So einfach ist das!

ZitatUnd wenn ich dann da ein Beispiel anklicken will, meckert er quasi immer, dass der Datentyp nicht übereinstimmt, was ja auch richtig ist, weil Zahl angegeben ist, aber eine Buchstaben-Zahlen-Kombi eingetragen werden soll.
Ich nehme an, du hast versucht auf der n-Seite der Beziehung die Referatsbezeichnung einzugeben und nicht den Primärschlüssel des betreffenden Referats.

Das ist auch ein Grund, warum wir immer wieder davor warnen, Daten in die Tabellen direkt einzugeben.
Über Formulare wird diese Eingabe dann automatishc mit den richtigen Werten in die richtigen Spalten veranlasst.

HTH

Lala7

Hallöchen,

ZitatJa, ja, das passt schon so  ;)
Sehr schön :)

ZitatDie Beziehung zwischen zwei Tabellen wird auch IMMER über die Schlüsselspalten erstellt.
Der Primärschlüssel - also die 1 - Seite der Beziehung ist als Autowert ausgeführt.
Wird in eine der Wertespalten was eingegeben, erhält die Schlüsselspalte einen Zahlenwert, der einer Long-Integer-Zahl entspricht.

Die Beziehung ist nur dann herstellbar, wenn die 'Gegenseite' also die n - Seite einer Beziehung ebenfalls als Long Integer-Zahl (Fremdschlüssel)  ausgebildet ist.

Werden nun auf der n - Seite daten erfasst steht in der Fremdschlüsselspalte IMMER ein Zahl und zwar die, welche auf der 1 - Seite der Beziehung dem Primärschlüssel des zugeordneten Datensatzes entspricht.

Um auf meinen Einkaufswagen zurückzukommen -  Wenn ich alle Waren auswähle, die im Fremdschlüssel 15 stehen haben, dann kommen diese Waren allesamt aus dem Einkaufswagen 15. So einfach ist das!
Kaum zu glauben, aber wahr, auch das hab ich verstanden. Hab da auch mal bissel rumprobiert und das soweit hinbekommen, dass da nicht mehr gemeckert wird. Habe im Entwurf bei Nachschlagen dann eingetragen unter Datensatzherkunft: SELECT Referat, ReferatID FROM tblReferat und Gebunden Spalte 2 angegeben und siehe da, es hat funktioniert. Ich hoff, das war auch richtig so lol.
Heißt das jetzt, dass ich anfangen kann ein Formular zu erstellen oder gibt es da noch mehr zu beachten? Oder müssen vorher irgendwelche Abfragen erstellt werden? Z. B. für die Beträge? Eigentlich ja, weil wir ja nur eine Teilsumme davon haben möchten.

database

Hallo auch,

ZitatHabe im Entwurf bei Nachschlagen dann eingetragen  ...
Nimm das wieder raus! KEINE Nachschlagefelder auf Tabellenebene erstellen!

Wenn du noch ein wenig Geduld hast, stell ich dir am Abend eine Datei rein, in der schon ein paar Formulare vorhanden sind.
Da hast du dann auch die Möglichkeit die grundlegendsten Funktionalitäten nachzusehen.
Wird aber erst gegen 21:00 sein - früher bin ich nicht zu Hause  :-\