1. Nexgam Portal
  2. Forum
    1. Unerledigte Themen
    2. Aktive Themen der letzten 24h
  3. Dashboard
  4. Mitglieder
  5. Patreon
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Forum
  • Artikel
  • Seiten
  • Erweiterte Suche
  1. neXGam - Forum
  2. Forum
  3. Channels
  4. PC & Mac

Access Problem

  • Dodgi
  • 12. Januar 2011 um 23:15
  • Dodgi
    Meister
    Beiträge
    2.815
    • 12. Januar 2011 um 23:15
    • #1

    Habe ein Problem mit Access. Also ich muss als Projekt noch eine Datenbank erstellen. Nun habe ich ein "Lager" bei dem ich für jeden Artikel die Stückzahl dahinter stehen habe als Tabelle. Nun habe ich in derselben Tabelle noch einen Feldname "Verfügbar" mit einer Felddatentyp "Ja/Nein". Nun soll, wenn ich die Tabelle öffne (also Ansicht wechsel) überall ein Häckchen sein bei Verfügbar, wo die Stückzahl eben über 0 ist. Das versuche ich schon die ganze Zeit mit eine "wenn( Funktion" in die Gültigkeitsregel...aber das scheint nicht zu gehen...

    Kennt sich jemand damit aus und weiß wie ich das machen muss?

    hallo

    • Zitieren
  • Opeth
    Store-Knecht
    Beiträge
    1.545
    • 13. Januar 2011 um 04:34
    • #2

    Von Access habe ich leider keinen blassen Schimmer, aber wenn die WENN-Funktion so ähnlich wie bei Excel sein sollte, ginge das ja mit
    "=WENN([Feldname]<1;"Nicht Verfügbar"; "Verfügbar") <- Hierbei würde einfach nur gezeigt werden daß bei einer Stückzahl kleiner als 1 nichts da ist. Mit einer bedingten Formatierung könnte man das auch hübsch lösen und farbig markieren lassen.

    Offizielles Mitglied der "D.N.M.H.I.G. - Die Nexgamer mit Haar im Gesicht"

    • Zitieren
  • DeEcOs
    Erleuchteter
    Beiträge
    9.531
    • 13. Januar 2011 um 11:17
    • #3

    Hmm, du kannst ja ne Aktualisierungsabfrage machen, wo du dann bei jedem Artikelt den Wert auf Ja setzt, wenn die Stückzahl > 0 ist.
    Denke das müßte funktionieren. Probier's einfach mal aus.

    Allerdings frage ich mich auch gerade, wie man das jetzt genau mit dem öffnen der Tabelle aufrufen kann. Evtl. musst du dann einfach die weiteren Werte so normal noch anzeigen lassen.

    Hab mich aber Länger auch nicht mehr mit Access beschäftigt. Wenn du so nicht klar kommst, guck ich es mir mal näher an, wenn ich es schaffe. :)

    XBL: DeEcOs84
    PSN: DeEcOs84

    • Zitieren
  • Dodgi
    Meister
    Beiträge
    2.815
    • 13. Januar 2011 um 14:02
    • #4

    So danke erstmal, das mit der wenn Funktion hat nicht geklappt aber werde es nun mal mithilfe einer abfrage versuchen.

    hallo

    • Zitieren
  • DeEcOs
    Erleuchteter
    Beiträge
    9.531
    • 13. Januar 2011 um 21:39
    • #5

    Und, erfolgreich?

    Ich glaube man braucht nicht mal ne Aktualisierungsabfrage, sondern ne normale könnte reichen. Je nachdem, was du haben willst. Wenn du die Verfügbarkeit nur für die Ansicht haben willst, bräuchte man die theoretisch auch gar nicht als Attribut anlegen. Für die Ansicht, kann man es dann ja berechnen. Im guten Datenbankdesign macht man das imo auch nicht, außer vielleicht aus Performancegründen. Aber das wird bei dir ja kaum nen Problem sein. ;)

    Habt ihr auch mehr über Datenbanken erfahren (z.B. Normalisierung)? Man muss da schon anders denken und Sachen anlegen, als man es in Excel tun würde.

    XBL: DeEcOs84
    PSN: DeEcOs84

    • Zitieren
  • Dodgi
    Meister
    Beiträge
    2.815
    • 14. Januar 2011 um 17:25
    • #6

    Also ich bin relativ verzweifelt gerade.
    1. Kann ich nur an der Uni üben, da ich daheim kein Access 2010 habe
    2. Ist das Programm mist, die meiste Zeit suche ich nur Fehler um abspeichern zu können
    3. Krieg ich das erstellen nicht hin, und muss das Projekt bald abgeben.

    Zitat

    Habt ihr auch mehr über Datenbanken erfahren (z.B. Normalisierung)? Man muss da schon anders denken und Sachen anlegen, als man es in Excel tun würde.

    Ja wir hatten ein extra Fach Datenbankmanagement. Aber die meiste Zeit haben wir Probleme und Aufgaben in vorgefertigten Datenbanken gelöst und nun muss man selber erstellen alles. Hab auch extreme Schwierigkeiten mit Primärschlüssel und Beziehungen. Für mich ist das bisher noch nicht nachvollziehbar :(

    hallo

    • Zitieren
  • DeEcOs
    Erleuchteter
    Beiträge
    9.531
    • 14. Januar 2011 um 17:56
    • #7

    Kannst du dir Access nicht über die Uni runterladen? Ich bin der Meinung das gibt es bei uns.

    Access ist eigentlich ganz okay. Aber ne richtige Datenbank ist das auch irgendwie nicht. ;) Glaub dir fehlt einfach noch das richtige Denken. Du darfst beim Anlegen einfach nicht an Excel oder sowas denken. Datenspeicherung und Ansicht sind da quasi zwei ganz verschiedene Dinge. Lies dir z.B. doch mal das durch:
    http://de.wikipedia.org/wiki/Relationale_Datenbank

    Du musst das mit den Beziehungen verstehen, sonst wird das nichts. poste doch mal deine Aufgabe. Vielleicht kann ich es dir dadurch dann ein wenig erklären bzw. schnell was basteln. Je nachdem wie viel Aufwand das wäre....

    Nehmen wir beispielweise mal eine stark vereinfachte Bestellverwaltung:

    Da könnte es z.B. drei Tabellen geben:

    - Kunden
    - Artikel
    - Bestellungen

    Die Tabelle "Kunde" hat z.B. die Attribute (bzw. Spalten):
    - Kundennr
    - Name
    Kundennr. wäre dann hier der Primärschlüssel. Es muss halt jeder Datensatz unterscheid- bzw einzigartig sein. Daher wählt man halt ein Attribut als Primärschlüssel aus. In dem Fall nimmt man die Kundennr, weil den gleichen Namen könnten ja mehrere haben. Wäre jeder Name einzigartig, könnte man den auch als PS nehmen. Hätte man beispielsweise auch noch ne Adresse, könnte man auch nen Schlüssel aus Namen und Adresse bilden. Aber das ergibt z.B. auch wenig Sinn und kann auch probelmatisch verweden. Deswegen führt man halt dann die Kundennr. ein.

    Tabelle Artikel. z.B.:
    - Artikelnr. (PS)
    - Bezeichnung

    Zwischen diesen beiden Tabellen steht ja so bisher keine Beziehung. Aber die Kunden wollen ja Bestellungen tätigen. Daher hat man dann eine dritte Tabelle mit Bestellungen mit den Attributen:
    - Bestellnr (PS)
    - Kundennr (FS)
    - Artikelnr. (FS)

    In dem Fall ist die Bestellnr dafür da, dass jeder Datensatz einzigartig ist. Die Kundennr und Artikelnr sind in diesem Fall dann Fremdschlüssel, weil sie für die Beziehungen zu den Tabellen Kunden und Artikel da sind.
    Das ist jez nen stark vereinfachtes Modell ohne Rücksicht auf Kardinalitäten der Beziehungen, Normalisierung usw. Aber es ist wichtig, dass du das verstehst. Lies am Besten mal dazu: http://de.wikipedia.org/wiki/Entity-Relationship-Modell (oder du googelst noch danach). Es ist halt wichtig, dass du lernst, wie du die Tabellen vernünftig aufbaust. Dadurch modelliert man ja die Tabellen. Auch wenn man bei der Überführung in Tabellen noch ein wenig mehr machen muss. Aber ist gut um grundsätzlich das mit den Beziehungen zu verstehen.

    Auf die gespeicherten Daten macht man dann Abfragen, um dich bestimmte Daten. Das geht z.B. mittels SQL oder in Access gibt's ja auch diesen Abfragedesigner. Dort kann man dann auswählen welche Spalten bzw. Attribute man sich angucken möchte. Man kann darauf dann auch Berechnungen ausführen und temporär Spalten erzeugen, wie z.B. deine Verfügbarkeit. An sich speichert man so etwas nicht, weil man das dann bei der Abfrage kurz berechnen kann, weil man ja den Lagerbestand hat.

    Ich hoffe, dass ist einigermaßen verständlich. Erklären ist nicht unbedingt meine Stärke. ;) Aber bei Fragen kannste mich auch bei Icq oder so anschreiben oder halt hier posten. Aber das kann dann länger dauern....

    XBL: DeEcOs84
    PSN: DeEcOs84

    • Zitieren
  • Dodgi
    Meister
    Beiträge
    2.815
    • 14. Januar 2011 um 18:57
    • #8

    whoa danke :love: das hilft mir echt schon super weiter. Das mit dem Primärschlüssel habe ich nun denke ich verstanden, dass eben nur eines dann zugeordnet werden kann und es nicht für mehrere stehen kann. Zu den beziehungen habe ich jetzt mir mal auf ein Blatt Papier eine Mind Map erstellt und versucht das so etwas zu verbinden, wie ich denke, dass es richtig ist.

    Also erstmal zum nachvollziehen die Aufgabe: Datenbank erstellen, freies Thema. Nicht größer als 25MB, auf richtige Formatierung achten (Formatierung, Integer,Byte, Dezimalstellen usw. alles eben angepasst, das er sehen kann, dass man es verstanden hat)

    Voraussetzung:

    -ER Modell digital (Beziehungen)
    -Tabellen (mind. 3 , möglichst keine 1:1 Beziehungen, Formatierung)
    - Beziehungen -referentielle Integrität
    - Abfragen mind.3
    - Formulare mind. 3 (Hintergrund, Pulldowns, Benutzerführung, Befehlsschaltflächen)
    - Berichte mind. 2 (Zusammenfassung, Sortierung etc.)

    So und ich habe mich nun für ein Projekt entschieden der im Priinzip ein Schrottplatzlager darstellt und wollte eine Datenbank die einem den Bestand anzeigt. habe folgende Tabellen erstellt (dahinter immer die Spalten):

    Marke (Markennr., Automarke)
    Modell (Modellnr., Automodell)
    Ersatzteile (Ersatzteilnummer, Ersatzteil, Verfügbarkeit, Stückzahl)
    Farbe (Ersatzteilnummer, Farbe)
    Lagerdaten (Ersatzteilnummer, Lagerortnummer)
    Lagerort (Lagerortnummer, Beschreibung (Regal 1,...))

    So und nun versuche ich das ER- Modell zu erstellen (Beziehungen), das habe ich nun eingegeben (hoffe richtig). Ersatzteilnummer hat einen Primärschlüssel z.B., da ja jedem Ersatzteil nur eine Nummer einzigartig ist. ch möchte im Prnzip keine Kundendabenbank sondern mehr ein Informationssystem für einen Schrottplatzbetreiber ^^
    Ist das so bisher plausibel?

    hallo

    • Zitieren
  • DeEcOs
    Erleuchteter
    Beiträge
    9.531
    • 14. Januar 2011 um 19:36
    • #9

    Auf'm ersten Blick scheint das richtig auszusehen. Bei der Modellierung gibt es ja oft nicht nur eine Lösung. Farbe könnte man z.B. auch mit bei Ersatzteile mit reinpacken. was auch eigentlich sinnvoller wäre, weil man sich dann bei Abfragen nen teuren Join zwischen zwei Tabellen sparen könnte. Aber falsch ist es so eigentlich nicht.

    Aber eine Sache noch:
    Was ist in der Tabelle Ersatzteile mit der Verfügbarkeit gemeint? Also ob das Teil vorhanden ist oder nicht? Wenn ja, dann schmeiß das raus, weil es redundant ist, da du ja auch die Stückzahl hast.

    Du könntest dann z.B. eine Abfrage machen, wo du alle verfügbaren Teile (sprich Stückzahl > 0) auflistet. Die wäre dann schnell gemacht... :)

    Noch was zu den Schlüsseln:
    Man kann auch einen Primärschlüssel aus verschiedenen Attributen zusammensetzen. In meinem Bestellbeispiel z.B. aus Kundennr, Artikelnr. und Bestelldatum. Muss man man halt immer gucken, was man macht. :)

    Edit:

    Mir ist gerade noch aufgefallen, dass zwischen Automarke und Modell bisher kein Relation besteht. Kannst ja einfach Markennr. als Fremdschlüssel in die Modell-Tabelle packen.

    Auch lustig, was bei euch unter "Datenbankmanagement" fällt. Studierst nichts Informatikverwandtes, oder? ;)

    XBL: DeEcOs84
    PSN: DeEcOs84

    Einmal editiert, zuletzt von DeEcOs (14. Januar 2011 um 19:40)

    • Zitieren
  • Dodgi
    Meister
    Beiträge
    2.815
    • 14. Januar 2011 um 19:52
    • #10

    ok werde das morgen mal fixen. Noch eins, gerade verwirrt mich nochmal eine Kleinigkeit. Also Abfrage ist das, wenn ich nachher eingebe z.B. Marke Audi und dann kommen alle z.B. Modelle von Audi, das setze ich mit der Abfrage fest?
    Wie sieht es aus mit Formularen und Berichten?

    Das erstellen an sich dürfte kein so großes Problem darstellen, nur sich einen Überblick zu verschaffen und die Vorüberlegung bis man weiß, was man für was macht ist das Verwirrende ^^

    in den Vorlesungen, dachte ich, ich könnte es voll gut, da gab es nur so Teilaufgaben--> erstellen sie eine Tabelle, erstellen sie ... und man macht es halt, aber die Zusammenhänge werden dabei nicht klar...

    Zitat

    Auch lustig, was bei euch unter "Datenbankmanagement" fällt. Studierst nichts Informatikverwandtes, oder?

    nene hat mit Umwelt zu tun ^^

    hallo

    • Zitieren
  • DeEcOs
    Erleuchteter
    Beiträge
    9.531
    • 14. Januar 2011 um 20:01
    • #11

    Jein. Abfragen sind halt dafür da auszuwählen, was du sehen willst. Du legst halt erst die Spalten fest, die du anzeigen willst. Deine Abfrage geht über zwei Tabellen, daher musst du die joinen. Ganz grob wäre es so:
    Du willst die Datensätze haben, wo
    Marke = "Audi"
    und Marke.Markennr = Modell.Markennr
    Das vor dem "." steht für die Tabelle. Daher braucht du halt die Fremdschlüssel. Du stellst darüber halt die Verbindung zwischen den Tabellen her. In SQL wüßte ich jez wie die Abfrage genau aussehen würde, aber in Access kann man da ja die grafische Oberfläche nehmen. Hab ich jetzt auch nicht so im Kopf....

    Glaube die Formulare kann kann man sich quasi automatisch zu ner Tabelle erzeugen. Und als Bericht kann man dann auch einfach das Ergebnis einer Abfrage nehmen, glaub ich. Ansonsten einfach mal F1 drücken. So schlecht ist die Hilfe bei den Office Programmen gar nicht...

    XBL: DeEcOs84
    PSN: DeEcOs84

    • Zitieren
  • Dodgi
    Meister
    Beiträge
    2.815
    • 14. Januar 2011 um 22:08
    • #12

    ok auf jedenfall schonmal vielen Dank, werde mir das morgen nochmal in aller Ruhe durchschauen. Ich hoffe ich komme damit mal weiter.

    hallo

    • Zitieren
  • D-eath
    Fortgeschrittener
    Beiträge
    373
    • 14. Januar 2011 um 22:15
    • #13

    SELECT Tabelle1.Spalte, Tabelle2.Spalte2 FROM Tabelle1
    INNER JOIN Tabelle2 ON Tabelle1.PK = Tabelle2.PK
    WHERE Tabelle1.Marke = 'Audi'

    JOINs funktionieren in Access ähnlich, DeEcOs. Man kann nur über den Designer zwei Spalten miteinander verbinden per Drag n' Drop, dann wird der SQL-Code dazu automatisch erzeugt. Die Syntax ist aber eigentlich wie im ISO.

    Naja, whatever. Wie schon gesagt, JOINs sind dazu da, um zwei Tabellen miteinander zu verknüpfen, normalerweise nimmt man hier bei normalisierten Tabellen (mind. 2. NF) einen oder mehrere Primärschlüssel. Grundsätzlich setzt man hier bei Bedarf auch noch Fremdschlüssel, ja. Aber es kommt immer drauf an, was du machen willst.

    • Zitieren
  • DeEcOs
    Erleuchteter
    Beiträge
    9.531
    • 14. Januar 2011 um 22:33
    • #14

    Na ja, aber das ist wirklich nur wenn man Sachen auslesen will. Will man noch irgendwelche Spalten in der Ergebnismenge umbenannt haben usw. ist es wohl für komplett SQL-Unerfahrene besser die grafische Oberfläche zu nutzen. Die ist ja auch recht potent.

    XBL: DeEcOs84
    PSN: DeEcOs84

    • Zitieren
  • D-eath
    Fortgeschrittener
    Beiträge
    373
    • 15. Januar 2011 um 00:34
    • #15

    Falsch. Access sorgt dafür, dass man keine Ahnung hat von dem, was man eigentlich tut - und das ist essenziell. Ähnlich wie Visual Basic. Da fehlt auch jeglicher Plan bzw. das Wissen, was die WinAPI ist und wie Sie funktioniert. :)

    • Zitieren
  • DeEcOs
    Erleuchteter
    Beiträge
    9.531
    • 15. Januar 2011 um 13:11
    • #16

    Jein. Man kann bei Abfragen von Datenbanken ja mathematisch zwischen Domänen- und Tupelkalkül unterscheiden. Das von Access in der grafischen Oberfläche verwendete QbE (http://de.wikipedia.org/wiki/Query_by_Example) basiert auf dem Bereichkalkül und SQL auf dem Tupelkakül (wenn ich mich jetzt nicht täusche). Wie Access jez intern arbeitet, das weiß ich nicht. Man kann ja beides ineinander transformieren.
    Davon ab muss Dodgi wohl gar nicht genau verstehen, wie es intern funktioniert, sondern hauptsache es funktioniert und macht das, was man will. Für jemanden der nicht grob was in Richtung Informatik studiert, spielt das ja auch einfach keine Rolle. Das wurde ja extra anwenderfreundlich gestaltet....
    Nicht so wie beim SQL-Server, wo ich mich gerade die ganze Zeit mir rumärgere, weil sich das Management Studio dazu nicht installieren lässt. Argh....

    XBL: DeEcOs84
    PSN: DeEcOs84

    • Zitieren
  • Dodgi
    Meister
    Beiträge
    2.815
    • 15. Januar 2011 um 13:29
    • #17
    Zitat

    Davon ab muss Dodgi wohl gar nicht genau verstehen, wie es intern funktioniert, sondern hauptsache es funktioniert und macht das, was man will.

    ja genau, habe bei den letzten 2-3 posts auch nichts verstanden o_O

    hallo

    • Zitieren
  • Dodgi
    Meister
    Beiträge
    2.815
    • 17. Januar 2011 um 21:46
    • #18

    so Abfragen hat nun alles funktioniert und beziehungen, aber nun schon das nächste Problem. Wenn ich ein Formular erstelle und dann etwas anderes eingebe z.B. den Lagerort verändere, aktualiesiert sich das Formular nicht sondern zeigt weiterhin die Daten vom ersten Lagerort.

    hallo

    • Zitieren
  • DeEcOs
    Erleuchteter
    Beiträge
    9.531
    • 18. Januar 2011 um 14:50
    • #19

    Na ja, sind nur die Daten in dem Formular veraltet oder auch in den eigentlich Daten? Vielleicht werden die im Formular falsch angezeigt. Aber glaub ich eher nicht.

    Sind die Formulare nur für Felder einer Tabelle oder über mehrere Tabellen? Bei mehreren Tabellen könnte es auch irgendwie an den Beziehungen liegen. Am Besten macht du einfach nur simple Formulare für eine Tabelle (wenn es nicht anders gefordert ist). Ist dann vielleicht die optimalste Benutzerführung, aber was solls.
    So fällt mir jetzt sonst auch nichts ein, da ich auch nicht der Access-Profi bin. Ansonsten musst dir mal die Datei schicken und ich werfe einen Blick rein. Oder du musst Google bemühen. ;) Besonderes letzteres ist wohl erstmal am sinnvollsten....

    XBL: DeEcOs84
    PSN: DeEcOs84

    • Zitieren
  • Dodgi
    Meister
    Beiträge
    2.815
    • 18. Januar 2011 um 15:53
    • #20

    Ja Google hab ich schon probiert aber da kommen eher immer so Codes als Lösung. Ich versuche mich morgen aber nochmal. Ich hasse Access...

    hallo

    • Zitieren
Werbung
  1. Datenschutzerklärung
  2. Impressum
Community-Software: WoltLab Suite™