Office: (Office 2013) Datenbank füllen / auslesen

Helfe beim Thema Datenbank füllen / auslesen in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hallo und einen guten Start in die Woche, ich trage mich mit dem Gedanken unter anderem meine Rechnungen und Adressen von Excel - Tabellen in eine... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von sronny, 9. November 2015.

  1. sronny Erfahrener User

    Datenbank füllen / auslesen


    Hallo und einen guten Start in die Woche,

    ich trage mich mit dem Gedanken unter anderem meine Rechnungen und Adressen von Excel - Tabellen in eine Datenbank auszulagern. Da ich mit Datenbanken Null - Erfahrungen lese ich ein Tutorial nach dem anderen und komme nicht weiter. Mein Ziel ist es mal eine MySQL - Datenbank zu verwenden, nutze aber zum üben gerade Access. Mir fehlt derzeit noch das komplette Verständnis hinter der Datenbanklogik. Was ich schon mal gemacht habe, ist mir eine Datenbankstruktur erstellt zu haben- also die einzelnen Tabellen mit den einzelnen Beziehungen. Doch nun steh ich auf dem Schlauch. Da ich mein Rechnungsprogramm in Excel erstellt habe, will ich das jetzt erstmal zur Dateneingabe und Ausgabe weiter verwenden, bis ich mich soweit in VB vorgearbeitet habe, um darin Programme zu erstellen. Doch bis dahin will ich die Datenbankproblematik erstmal in den Griff bekommen.

    Als kleinen Ausschnitt:

    Ich habe eine Tabelle mit Klienten, welche den Namen, Vornamen, Anrede und Geburtstag enthält.
    Desweiteren eine Tabelle, unter welcher die Strasse und die PLZ und der Ort gespeichert wird.
    Eine Tabelle Kostenträger, welche den Namen des Kostenträgers enthält.
    Tabelle Klient und Kostenträger haben in der Adressen-Tabelle einen Fremdschlüssel, damit in dieser Tabelle die Adressen gespeichert werden.

    Soweit ich das nun weiß, wird beim Anlegen eines neuen Klienten / Kostenträgers jeweils eine neue ID erstellt. Diese ID muss ja auch bei der Adresse dann rein (eben der Fremdschlüssel, welcher dann ja beides miteinander verknüpft...)

    Wenn ich jetzt den Klienten anlege, kann ich ja in die selbe Tabelle nicht die Adresse speichern - und wenn ich zusätzlich bei der Speicherung die Adresse in die Tabelle zwei schicke, kenne ich ja die neue KlientenID nicht. Und genau da scheitert mein Verständnis bei der Geschichte. Das Abfragen soll ja dann mittels Join (links, rechts, innen und außen) passieren. Aber soweit bin ich noch nicht, da ich erstmal was in die Tabelle rein haben will.

    Wie ist da der Ablauf, um die jeweiligen Daten in die richtige Tabelle zu schupsen - also Name, Vorname zu Klient und Straße /Ort zu Adresse?

    Wäre echt toll, wenn mir da jemand mal einen Denkanstoss geben könnte - vielleicht sogar mit Beispiel (per VBA). Eine Testdatenbank mit einer Tabelle konnte ich schon mal erstellen...

    Eine zweite Frage zu den Beziehungen: Ich habe bei den Rechnungen den Einsatz- der besteht unter anderem aus einem Start-, einem Einsatz- und einem Endort. Dafür habe ich eine zusätzliche Tabelle angelegt, in welcher die Fahrtziele gespeichert werden sollen -
    Tabelle Fahrtort: enthält den Namen und eine Beziehung zu Adressen (s.o.)
    Dafür weigert sich Access mir eine 1:n Beziehung herzustellen - also ein Fahrtort kann in mehreren Einsätzen vorkommen (gilt auch für das Fahrtenbuch). Aber bei einem Einsatz gibt es eben einen Start- und Einsatzort und nach dem Einsatz der Endort (ist oftmals der Startort). Beim Fahrtenbuch greife ich ja auch für den Start - und Zielort auch auf die Tabelle Fahrtort zu, also auf eine Liste von Fahrtzielen....

    Könnt ihr mir da etwas Starthilfe geben, damit ich das ganze etwas verstehe? Das wäre Spitze. Und wie gesagt vielleicht sogar mit Beispiel in VBA (Verarbeitungsprogramm ist Excel 2013)...Komplett auf Access möchte ich nicht umsteigen, weil ich später auf VB und Java (für Android) umsteigen will (daher auch Access nur um erstmal DB kennenzulernen ohne die ganze Serverarchitektur für xxSQL einrichten zu müssen)...


    Danke und einen hübschen Abend euch allen
     
  2. Frank5 User
    Hallo sronny,

    hier ein paar Ideen:
    Die Aufteilung würde ich überdenken. Tendenz wäre, das in eine Tabelle zu packen (praktischer Ansatz) oder richtig normalisieren, dann gehört die Straße aber nicht in die selbe Tabelle wie der Ort (theoretischer Ansatz).

    Wenn du trotz der Anmerkung oben so aufteilst, bekommt die Tabelle Klient und die Tabelle Kostenträger ein Feld (Spalte) mit der Datensatznummer der Tabelle Adressen.

    Zuerst speicherst du die 1-Seite der Beziehung, dann die N-Seite. Heißt, die Adresse müsste zuerst gespeichert werden, dann der Klient, dem diese Adresse zugeordnet wird. Das ist von der Eingabe ungewöhnlich, da dein Datenmodell ungewöhnlich ist.

    Unabhängig vom Datenmodell kann dir Access dieses Problem ohne VBA lösen, Stichwort: Unterformulare.
    Trotz deines Wunsches kann ich dir nur empfehlen, dir mindestes einmal, das Vorgehen in Access anzusehen. Anleitung fiindest du dazu massig im Netz. Wenn dir die Funktionsweise klar ist, kommt im nächsten Schritt die Umsetzung in VBA/VB, die das "nachbaut". Einen Beispielcode versteht man nicht, wenn man die Grundlagen nicht kennt. Das ist keine Kritik, sondern ein gut gemeinter Rat, denn bei
    kommt mir der Eindruck auf, das das Datenmodell nicht passt! Siehe oben. Nach meiner Erfahrung ist das Datenmodell aber entscheidend, ist es gut, kann eine Datenbank viele Aufgaben mit wenig Aufwand erledigen, passt es nicht, programmiert man etliche Zeilen, um das zu biegen.

    Sieh dir das Thema trotzdem mal an, das hilft enorm beim Verständnis deiner Fragestellung und gibt dir Ansätze für eine andere Tabellenaufteilung.

    Was du damit meinst, ist mir noch nicht klar.

    Aber:
    klingt für mich nach folgendem Aufbau:
    Eine Tabelle für die Fahrtziele, kann auch die Tabelle mit den Adressen sein, falls der Aufbau so bleibt.
    Eine weitere Tabelle für den Einsatz mit einem Feld für die Nr des Startorts, einem Feld für die Nr des Einsatzorts und einem Feld für die Nr des Endorts.

    Die Tabelle "Rechnungen" hätte bei mir noch andere Informationen, je nachdem, was man damit machen möchte. (evtl. mehrere Positionen zu einer Rechnung, Material, Dienstleistungen, Mengen ...). Alles sollte man davon abhängig machen, was man damit später machen soll. Im Gegensatz zu Excel, das man nachher immer noch leicht "umbauen" kann, sollte das Datenmodell einer Datenbank gut überlegt sein. Man kann das zwar auch nachträglich ändern, das macht dann aber weit mehr Arbeit.

    Ich hoffe, ich konnte dir damit ein paar hilfreiche Denkanstöße liefern, die dir den Einstieg erleichtern. Mir fehlt leider die Zeit, alle Folgefragen zu beantworten (und die werden kommen ...), aber hier im Forum sind ja viele, die da mithelfen.

    Viele Grüße und viel Erfolg

    Frank
     
  3. sronny Erfahrener User
    Hallo Frank- wow, ich hätte gar nicht mehr damit gerechnet, dass jemand antwortet. Nach vielen Stunden und gefühlt hunderten Seiten (Buch / Internet) habe ich das glaube ganz gut mittlerweile hinbekommen. Die Anfrage stand zu Beginn, als ich mich damit befasst habe. Ist jetzt alles ganz brav normalisiert.

    Eine Sache hätte ich vielleicht noch:

    Tabelle Klient:

    Name, Vorname, IDKlient

    Tabelle KLAnschrift
    IDKLAnschrift
    IDAdresse
    IDKlient

    Tabelle Adresse:
    IDAdresse
    Strasse
    PLZ

    Tabelle Ort:
    PLZ
    Ort

    Habe alle in Beziehungen gesetzt. Nun Hab ich bspw mehrere Klienten mit der selben Anschrift. Als ich einen Klient davon gelöscht habe wurde Anschrift, Adresse, Ort gelöscht. Die Folge: die anderen Klienten mit der selben Adresse stehen auf der Wiese. Ist das normal? Dachte das so ein DB-System schaut, ob andere IDs da noch Zugriff haben. Hab das jetzt alles per Hand programmiert (also Abfrage beim Löschen ob noch andere Klienten mit der Adresse verbunden sind. Mit diesem Erlebnis finde ich dort den Schwachpunkt der Normalisierung.

    Ok. Hab das alles sicher auch noch nicht verstanden, aber derzeit funktioniert es so wie es sein soll. War so ein spontanes "in zwei Monaten" - muss alles auf DB umgestellt sein. Musste mich total neu mit DB auseinandersetzten.

    Frank, ich danke dir auf alle Fälle für deine Antwort...
     
  4. Frank5 User

    Datenbank füllen / auslesen

    Hallo sronny,

    Das ist kein Schwachpunkt, sondern abhängig davon, was du bei Aktualisierungs- und Löschweitergabe eingestellt hast.

    Viele Grüße

    Frank
     
  5. sronny Erfahrener User
    Na halt einfach referentielle Integrietät, Aktualisierungsweitergabe und Löschweitergabe -> bzw. jetzt eben wieder gelöscht und erledige das alles in Eigenregie...
     
Thema:

Datenbank füllen / auslesen

Die Seite wird geladen...
  1. Datenbank füllen / auslesen - Similar Threads - Datenbank füllen auslesen

  2. Datenbank bleibt gesperrt - laccdb wird nicht gelöscht

    in Microsoft Access Hilfe
    Datenbank bleibt gesperrt - laccdb wird nicht gelöscht: Hallo zusammen, ich betreue eine Datenbank mit getrenntem Back- und Frontend, die in einem Firmennetzwerk auf dem Netzlaufwerk liegt. Ich entwickle sie lokal weiter, ohne vor Ort zu sein, wobei...
  3. LostFocus der Datenbank?

    in Microsoft Access Hilfe
    LostFocus der Datenbank?: Moin, gibt es das LostFocus-Event auch für die Datenbank, z.B. wenn man vom Formular zu Minesweeper wechselt? Oder entzieht Windows dem verlassenen Task sämtliche Aufmerksamkeit? Gruß Doming
  4. Problem Datenstruktur Mitglieds-Datenbank

    in Microsoft Access Hilfe
    Problem Datenstruktur Mitglieds-Datenbank: Hallo Leute, Ich habe eine Frage zu einer Vereins-Mitglieder-Datenbank, die ich erstelle. Die Vereinsmitglieder sind in einer Tabelle erfasst, also Nachname, Vorname, usw. Und es gibt einen...
  5. Auslesen Windowsbenutzer in einer Datenbank

    in Microsoft Access Hilfe
    Auslesen Windowsbenutzer in einer Datenbank: Hallo zusammen, wie kann ich auslesen, welcher Windows Benutzer gerade aktuell in einer Datenbank ist? Geht das? Danke Matthias
  6. Datenbank "Ausfahrtenerfassung" Rudern

    in Microsoft Access Hilfe
    Datenbank "Ausfahrtenerfassung" Rudern: Guten Abend zusammen Ich habe mich entschlossen unsere Papierversion der der Ausfahrtenerfassung unseres Ruderclubs zu aktualisieren. Ich habe also zwei neue Tabellen erstellt. T_FAHRTENBUCH und...
  7. Einfache Datenbank zum Suchen und Öffnen von Dokumentdateien

    in Microsoft Access Hilfe
    Einfache Datenbank zum Suchen und Öffnen von Dokumentdateien: Hallo Office-Gemeinde, ich bin komplett neu hier, Newbie im Bereich Access-Datenbanken, und möchte mich an einem kleinen Projekt versuchen - in der Hoffnung, dass das so überhaupt realisierbar...
  8. Datenbank über Maske füllen ohne VBA

    in Microsoft Excel Hilfe
    Datenbank über Maske füllen ohne VBA: Hi, ich habe die nächste Sorge: ich muss eine Art Datenbank aufbauen. Eigentlich wäre es einfach, wenn ich meine Daten über eine automatische Maske aus den Entwicklertools eingeben würde und die...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden