September 19, 2021, 07:41:21

Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!


Mehrere Spalten durch eine Auswahl ausfüllen lassen (Fahrtenbuch)

Begonnen von StudentX, Juni 02, 2021, 23:42:50

⏪ vorheriges - nächstes ⏩

StudentX

Hallo bin neu mit Access und suche seit drei Tagen nach einer Antwort.

Ich erstelle gerade ein Fahrtenbuch (versuche es zumindest).
Eine Tabelle namens "Kundenstamm" beinhaltet Namen, Anschrift und Streckenlänge.
Zweite Tabelle "Fahrtenbuch" soll nun mit Datum und Kundennummer automatisch mehrere Spalten aus der Tabelle "Kundenstamm" ausfüllen. Zudem eben auch automatisch die Kilometer der Wegstrecke einfügen. sodass eigtl. Täglich nur das Datum und die Kunden gewählt werden müssen.

Laut diesem Forum ist das Schwachsinn und nicht zweck von Access (da Daten Doppelt vorkommen), mir scheint es jedoch sinnvoll. Manche Kunden haben mehrere Anschriften, ein Name alleine reicht mir nicht. Auch habe ich nicht alle Kundennummern im Kopf, gleichzeitig Kundennummer und Name zu sehen, ist von Vorteil.

Mit einem Nachschlagen Feld und der Formel & " " & sollte wohl eine Notlösung gehen.
Aber erstens funktioniert diese Formel nicht bei mir und zweitens ist es nicht ganz so meine Vorstellung.

Vielen Dank für eurer Verständnis eines Anfängers  :) .

MzKlMu

Hallo,
es ist auf keinen Fall sinnvoll das so zu machen. Du brauchst eine weitere Tabelle für die verschiedenen Anschriften der Kunden. In der Fahrtentabelle wird dann nur das Datum und der Fremdschlüssel zur Adresse des Kunden gespeichert. Dann wird eine Adresse per Kombi gewählt. Der Kunde ergibt sich über den Fremdschlüssel von Adresse zu Kunde automatisch.
Über eine Abfrage mit den 3 Tabellen (Kunde, Adressen, Fahrten) können alle Felder aus den 3 Tabelle angezeigt werden ohne redundante Speicherung.

Was ist eigentlich mit den Fahrzielen?
Und von wo bis wo geht die Entfernung?
Gruß
Klaus

StudentX

Vielen Dank für die schnelle Antwort und das zu später Stunde.

Zitat von: MzKlMu am Juni 02, 2021, 23:59:55...
In der Fahrtentabelle wird dann nur das Datum und der Fremdschlüssel zur Adresse des Kunden gespeichert. Dann wird eine Adresse per Kombi gewählt. Der Kunde ergibt sich über den Fremdschlüssel von Adresse zu Kunde automatisch.
Über eine Abfrage mit den 3 Tabellen (Kunde, Adressen, Fahrten) können alle Felder aus den 3 Tabelle angezeigt werden ohne redundante Speicherung.
...

Womöglich habe ich eine Denkfehler, es scheint mir aber sehr umständlich in mehreren Kombifelder herum zu klicken.
Ich sehe natürlich im Kombifeld meinen Kunden, aber muss trotzdem zB drei mal klicken, für drei Spalten (wie zB. Name, Ort und Entfernung).
Lieber wäre mir, dass Access diese drei Spalten automatisch füllt, wenn ich in der ersten Spalte (auch ein Kombifeld) die Kundenummer wähle.

Ich sehe gerade, dass dieses Forum keinen Bilderserver hat, ist das richtig so, oder habe ich was übersehen?

Zitat von: MzKlMu am Juni 02, 2021, 23:59:55Was ist eigentlich mit den Fahrzielen?
Und von wo bis wo geht die Entfernung?

Das sollte natürlich folgen. Bin erstmal mit den Basics beschäftigt.

Wie meinst du "von wo bis wo"?
Soll Deutschlandweit sein.

Beaker s.a.

@StudentX
ZitatIch sehe natürlich im Kombifeld meinen Kunden, aber muss trotzdem zB drei mal klicken, für drei Spalten (wie zB. Name, Ort und Entfernung).
Lieber wäre mir, dass Access diese drei Spalten automatisch füllt,
Welche Spalten? Etwa in der Fahrtentabelle?
Das wäre falsch. In dieser Tabelle muss es ein Feld vom Typ Zahl(LongInteger)
geben, in das der Primärschlüssel (PK) der Adresstabelle kommt. Das Kombi
bekommt als DS-Herkunft eine Anfrage zur Anzeige/Auswahl des Kundennamens
und der Adressdaten
(Luftcode)
ZitatSELECT A.AdressID, K.KName, A.PLZ, A.Ort, A.Strasse
FROM Adressen As A
    INNER JOIN Kunden As K
    ON A.KundenID_F = K.KundenID
Das Kombi wird an die erste Spalte gebunden, - Spaltenbreite = 0cm.
Das war's.

gruss ekkehard
--
Beaker s.a., der lieber an seinem eigenen Projekt arbeiten würde/sollte, aber irgendwie immer gerne seinen Senf dazu gibt ;-)
S.M.I².L.E.

Beaker s.a.

Es gibt natürlich auch die Möglichkeit mit zwei Kombis an den
Fremdschlüssel zu kommen. Das zweite ist dann abhängig vom 1.
1. Kombi (jetzt ungebunden) auf Basis der Kundentabelle
2. zeigt in Abhängigkeit vom ersten (siehe hier) die Adressen des Kunden an.
--
Beaker s.a., der lieber an seinem eigenen Projekt arbeiten würde/sollte, aber irgendwie immer gerne seinen Senf dazu gibt ;-)
S.M.I².L.E.

StudentX

Juni 03, 2021, 14:25:15 #5 Letzte Bearbeitung: Juni 03, 2021, 14:30:38 von StudentX
Zitat von: Beaker s.a. am Juni 03, 2021, 13:58:20...
Welche Spalten? Etwa in der Fahrtentabelle?
...

Ja, deswegen wollte ich ein Bild anfügen, wie in Beitrag #3 auf:
https://www.access-o-mania.de/forum/index.php?topic=21837.0
hier hat jemand scheinbar eine JPG direkt über das Forum hochgeladen, bei mir geht es nicht, es will eine URL.


Ich versuche mal mein Anliegen etwas mit Worten zu Beschreiben. Mir ist aufgefallen, dass hier im Forum öfter nach meinem Problem gefragt wurde, aber keine richtige Antwort kam.

Anscheinend verstehen Anfänger Access nicht. Und die Fachleute den Anfänger nicht ;-).

Evtl. hilft dies:
Ich möchte ein Fahrtenbuch erstellen, wo ich das Datum eintrage und zB per Dropdown einen Kunden wähle. Damit ich und auch der Finanzbeamte später nachvollziehen kann, um welchen Kunden es sich genau handelt und wir nicht in Kundenakten nach Kd-Nr. wälzen müssen, wäre es von Vorteil gleich auch den Ort und evtl. die Straße (weil zB ein Kunde mehrere Anschriften hat) mit rein zu nehmen.
Zudem soll auch die Entfernung in eine Spalte reingenommen werden. Diese kann aber bei Bedarf korrigiert werden - wegen Umwege aus welchen Gründen auch immer, vielleicht sollte noch ein Feld Bemerkung dazu kommen.

Zur Zeit nutze ich Excel für mein Kleingewerbe, wollte aber schon länger auf Access über Schwänken. Ich denke es sei für diesen Zweck besser geeignet. Später soll zB auch ein Lagerbestand folgen etc. Habe auch gesehen, dass Access hervorragend für die Rechnungserstellung ist.

Positiv gefällt mir jetzt schon die Übersicht. Es ist für eine Buchführung einfacher strukturiert. Man kann einfach mal die Liste nach Namen oder aber auch nach Datum und Kd-Nr. sortieren. Das ist bei Excel immer was komplizierter. Auch das umherspringen in der Zeilen ist einfacher, bei Excel zerschießt man schnell etwas. Ich glaube auch Vorteile beim Drucken zu erhalten.

... so, hoffentlich ist mein Anliegen nun etwas klarer geworden.

Grüße

MzKlMu

Hallo,
Zitat von: undefinedDas sollte natürlich folgen. Bin erstmal mit den Basics beschäftigt.
Das wird so nix, eine Datenbank wird immer gleich in ihrerer Gesamtheit entworfen. In einer Datenabnk kann man nicht so ohne weiteres ergänzen wenn man etwas später machen will.
Das siehst Du schon bei dem Feld "Entfernung". Wie hast Du Dir das gedacht ?
Man kann doch die Entfenung nicht beim Kunden speichern.
Du fährst z.B. den Kunden Meier von A nach B das sind 12km, beim nächsten Mal fährst Du den gleichen Kunden aber von C nach D und das sind dann 16km.
Du braucht also eine Tabelle mit allen Adressen (Start und Zieladresse) und einem Fremdschlüssel zum Kunden.
Dann braucht es eine weitere Tabelle die Startadresse und Zieladresse des jeweiligen Kunden kombiniert. In diese Tabelle kommt dann die Entfernung.


Wenn Du jetzt eine Fahrt erfasst, so werden nur die beiden Adressen per Kombi gewählt und gespeichert. Der Kunde ist dazu völlig bedeutungslos. Der ergibt sich automatisch, da sowohl Start als auch Ziel dem Kunden über Fremdschlaüüsel (FS) zugeordnet sind. Erst wenn Start und Ziel festgelegt sind hast Du auch die Entfernung.
Über Abfrage kannst Du dann alle Daten einer Fahrt darstellen, den Kunden die Adressen und die Entfernung und redundante Speicherung, alles im Klartext. Mit Ausnahme der Entferung, die wird redundant gespeichert, da Du diese ggf. anpassen musst.

Ich glaube, Du hast die Anforderung/Aufgabe ziemlich unterschätzt.
Du solltest Dich auch mal mit den Grundlagen beschäftigen.

https://www.access-tutorial.de/

PS1:
Wird das ein reales Projekt, oder ist das eine Studienaufgabe ?

PS2:
Um Bilder anzuhängen klicke ganz unten im Antwortfenster auf "Attachments and other options", dann kannst du Bilder hochladen. Wobei Bilder meist relativ nutzlos sind.
Gruß
Klaus

StudentX

Zitat von: MzKlMu am Juni 03, 2021, 14:36:07...
PS1:
Wird das ein reales Projekt, oder ist das eine Studienaufgabe ?
...

War anfangs real gedacht, ihr habt (und meine Recherche der letzten Tage hat) mich nun verunsichert. Habe das Kleingewerbe schon länger und arbeite mit Excel in einer Datei mit unterschiedlichen Blättern. In einem Blatt ist der Kundenstamm und in den Restlichen die Monate und Jahre. Das hin- und herspringen zwischen den Blättern ist aber lästig, ebenso ist es nicht sehr Benutzerfreundlich.
Habe gehofft, dass es per Access "schöner" wird.

Zitat von: MzKlMu am Juni 03, 2021, 14:36:07...
PS2:
Im Bilder anzuhängen klicke ganz unten im Antwortfenster auf "Attachments and other options", dann kannst du Bilder hochladen. Wobei Bilder meist relativ nutzlos sind.

Ah ja danke, das gibt es nur in der "Antwort", nicht in der "schnell Antwort" beim Zitieren.

Zitat von: MzKlMu am Juni 03, 2021, 14:36:07...
Das siehst Du schon bei dem Feld "Entfernung". Wie hast Du Dir das gedacht ?
Man kann doch die Entfenung nicht beim Kunden speichern.
...

Als Kleingewerbetreibender mache ich sehr wenig und dann auch nur einen Kunden am Tag. Momentan reicht mir das. Falls es doch mal Differenzen zum Stammbuch gibt, so wird es korrigiert und in der Bemerkung vermerkt.
Solche Ereignisse könnte man ja auch als weitere Zeile manuell erfassen.

Zitat von: MzKlMu am Juni 03, 2021, 14:36:07...
Ich glaube, Du hast die Anforderung/Aufgabe ziemlich unterschätzt.

Gut möglich, gekaufte Software ist leider immer nicht zufriedenstellend. Hatte da schon einiges durch:
- Keine Kompatibilität zum Microsoft Surface und seiner seltenen 3:2 Auflösung.
- zu umfangreich für Kleinunternehmer (zu überladen)
- oder zu wenig Funktionen
- keine Exportmöglichkeiten
- ect.

Zitat von: MzKlMu am Juni 03, 2021, 14:36:07...
Du solltest Dich auch mal mit den Grundlagen beschäftigen.

https://www.access-tutorial.de/
...

Soeben gemacht, das hilft schon weiter.
Alles klar, natürlich brauche ich keine doppelten Daten in Tabellen, nun verstehe ich (für einen Noob sieht alles in Access wie eine Tabelle aus, sorry).

Versuche nun eine Abfrage für die Fahrten zu erstellen. Habe noch nicht ganz den unterschied zwischen Formular und Abfrage verstanden. Laut Deinem Tut sollte die Abfrage der Endnutzer nicht sehen. Kann ich dann nicht gleich mit Formularen ohne Abfrage arbeiten?

MzKlMu

Hallo,
ZitatKann ich dann nicht gleich mit Formularen ohne Abfrage arbeiten?
Nein, ein Formular braucht eine Datenquelle/Datenherkunft. Und das ist im Regelfall eine Abfrage. Man kann auch die Tabelle direkt verwende, aber sobald ein Sortierung oder Filterung ina Spiel kommt ist zwingend eine Abfrage zu verwenden.

Das mit der Entfernung siehst Du zu einfach, was willst Du als Entfernung eintragen, wenn es keine Zieladresse gibt ?
Gruß
Klaus

Beaker s.a.

Zitatwenn es keine Zieladresse gibt ?
Die gibt es doch, es gibt nur keine Startadresse wenn er nicht
vom Firmensitz aus da hinfährt sondern vorher woanders gewesen
ist.
--
Beaker s.a., der lieber an seinem eigenen Projekt arbeiten würde/sollte, aber irgendwie immer gerne seinen Senf dazu gibt ;-)
S.M.I².L.E.

StudentX

Zitat von: MzKlMu am Juni 03, 2021, 17:14:39...
Das mit der Entfernung siehst Du zu einfach, was willst Du als Entfernung eintragen, wenn es keine Zieladresse gibt ?

Schon möglich, mein Gedanke:
Als Entfernung die abgelesene Distanz am Tachometer und als Kunden zB "Sonderfahrt" oder so.


Schade um eure Mühe wäre es jetzt abzubrechen, wie gesagt, ich denke schon seit Jahren darüber nach. Irgendwann muss/will ich zu Access wechseln. Zumindest würde ich es gern probieren.

Mein aktueller Ansatz:
Tabelle 1: Kundenstamm
mit:
 - Primärschlüssel "Kundennummer"
 - "Vorname"
 - "Nachname"
 - "Straße und Hausnummer"
 - "PLZ"
 - "Ort"
 - "Normstrecke (Hin- und Rückweg)"


Tabelle 2: Fahrten
mit:
 - Primärschlüssel "Lfd"
 - "Kunde" (als Kombifeld, beim ausklappen sehe ich dann auch die Anschrift und die Normkilometer, ausgegeben wird zB der Nachname
 - "Tatsächlich gefahrene Strecke" hier kann ich nun die Kilometer eintragen (entweder wie vorgeschlagen, oder wie tatsächlich abgelesen)



Nun soll eine Abfrage mit allen Druckerforderlichen Daten folgen. Probiert habe ich die Daten aus beiden Tabellen zu nutzen. Leider kommt dann nach dem Ausführen gar nichts. Nur wenn ich Daten aus einer Tabelle lösche, werden auch Werte angezeigt. Irgendwo habe ich einen Denkfehler.

Im nächsten Schritt würde ich dann diese Abfrage nach Monat sortieren und die Kilometer summieren.
Anschließend als Bericht druckfertig einrichten.

Wie findet ihr das?

MzKlMu

Hallo,
da der Kunde mehrere Anschriften hat, braucht es für die Anschriften eine extra Tabelle, oder wie sonst willst Du weitere Anschriften zum gleichen Kunden erfassen? In die Anschriftentabelle kommt kommt dann der Fremdschlüssel zum Kunden.
Was ist die Normstrecke (von wo nach wo) ? Es ist mir immer noch unklar was Startadresse und was Zieladresse ist.
Wo kommt die Kundennummer her, liegt die schon vor und wie sieht die aus ?
In die Fahrtentabelle kommt der Primärschlüssel zur Anschrift (nicht zum Kunden) als Fremdschlüssel.
In Tabellen werden keine Kombifelder angelegt, die gibt es nur in Formularen und haben dort die gleiche Funktionalität.
Gruß
Klaus

StudentX

Zitat von: MzKlMu am Juni 03, 2021, 19:09:51...
oder wie sonst willst Du weitere Anschriften zum gleichen Kunden erfassen?
...

Vielleicht ist folgende Lösung für die Zukunft eher ungeeignet, aber momentan habe ich das mit Indizes gelöst.
Kunde XY hat zB die Kundennummer 5. Nach weiteren zig Kunden hat nun Kunde 5 eine weitere Adresse, dann wird dieser unter der Kundennummer 5a, 5b usw. gespeichert. So bleibt die Tabelle übersichtlich, da auch nach Jahren alle Anschriften nach Kunden sortiert bleiben (weiß nur nicht, ob Access damit umgehen kann, meckern tut es nicht.

Zitat von: MzKlMu am Juni 03, 2021, 19:09:51...
Was ist die Normstrecke (von wo nach wo) ? Es ist mir immer noch unklar was Startadresse und was Zieladresse ist.
...

Von meinem Betrieb zum Kunden und zurück. So kann ich einfach wiederkehrende Fahrten verbuchen. Sonderfahrten müssen halt manuell gepflegt werden.

Zitat von: MzKlMu am Juni 03, 2021, 19:09:51...
Wo kommt die Kundennummer her, liegt die schon vor und wie sieht die aus ?

Ja, habe Kundennummer schon in meiner Exceltabelle gepflegt, habe aber notfalls kein Problem eine neue Nummerierung anzufangen.

MzKlMu

Juni 03, 2021, 19:38:55 #13 Letzte Bearbeitung: Juni 03, 2021, 20:04:23 von MzKlMu
Hallo,
Du willst doch sicherlich eine Datenbank die auch für die Zukunft gerüstet ist. Das Vorhaben mit der Kundennummer (5, 5a) ist für Access völlig unbrauchbar. Du brauchst eine extra Tabelle für die Anschriften.
Für die Kundennummer solltest Du in der Kundentabelle einen Autowert verwenden, der auch gleichzeitig Primärschlüssel wird. Auch dann ist die Sortierung völlig problemlos.

Ich sehe da folgende Tabellen (PS=Primärschlüssel, FS=Fremdschlüssel)

Kunden
- Kundennummer (Autowert, PS)
- Nachname
- Vorname
- Ggf. weitere Felder zum Kunden

Anschriften
AnschriftID (Autowert, PS)
- Kundennummer_F (FS zum Kunden)
- StraßeHausNr
- PLZ
- Ort
- NormEntfernung

Fahrten
- FahrtID (Autowert, PS)
- AnschriftID_F (FS zur Anschrift)
- FahrDatum
- GefahreneKM (wird mit Normentfernung vorbelegt)

Damit hast Du alles abgedeckt. Mit den bis jetzt vorliegenden Infos.
Gruß
Klaus

StudentX

Herzlichen Dank,
habe es wie von dir vorgeschlagen ausgeführt und es sieht schon mal ok aus.

Danach habe ich eine Abfrage erstellt, wo ich alle für mich relevanten Daten in einem Fenster ausgeben lasse.

Aus dieser Abfrage wurde nun ein Formular erzeugt und es funktioniert soweit. Jedoch stört mich dass immer nur ein Datensatz pro Seite gezeigt wird und man durch die Seiten zappen muss.

In folgendem Tutorium ( https://www.youtube.com/watch?v=L-phP3R7UFg ) bin ich durch den Formular-Assistenten auf eine tabellarische Anordnung gestoßen, das gefällt mir viel besser, jedoch werden dann Unterformulare für jede Tabelle erstellt.

Ein einziges tabellarisches Formular aus mehreren Tabellen ist mir heute nicht gelungen. Geht das?
Im Anhang ein Bild, damit ihr versteht was ich meine.

Sie dürfen in diesem Board keine Dateianhänge sehen.