Skip to forum
Access Profi gesuch...
 
Benachrichtigungen
Alles löschen

Access Profi gesucht

21 Beiträge
7 Benutzer
0 Reactions
1,644 Ansichten
WuerfelRudi
Joined: 05.07.2005

Hallo,

habe eine MS Access-db mit vielen Tabellen. In den Tabellen sind Kunden,Kontakte,Kommunikationsdaten, Aufträge usw. abgespeichert. Wollte jetzt eine Abfrage machen um bestimmte Daten in Ecxel->csv zu exportieren. Jetzt funktioniert meine Abfrage nicht. Es werden die Datensätze x-fach angezeigt. Es sollte für jeden Kunden pro Auftrag eine Zeile mit allen benötigten Info´s erstellt werden. Wenn ich es aber richtig durchblicke, erzeugt Access für jeden Auftrag und jede Änderung immer wieder eine Zeile. So habe ich dann für Kunden die z.B. 100 Aufträge haben - 5600 Datensätze in der Abfrage. Kann mir da jemand weiterhelfen ? Würde bei erfolgreicher Arbeit natürlich was donaten.

Danke,
Rudi.


Antwort
Zitat
20 replies
Lammkeule
Joined: 29.03.2006

Ich glaub wenn du einfach deine Datenbankstruktur und deine bisherige Abfrage postest sollte man recht schnell auf die richtige Abfrage kommen.


Antwort
Zitat
TheoTuppes
Joined: 25.10.2008

Original von Lammkeule
Ich glaub wenn du einfach deine Datenbankstruktur und deine bisherige Abfrage postest sollte man recht schnell auf die richtige Abfrage kommen.

Genau das!

Ohne liegt erst einmal einfach nur die wenig hilfreiche Vermutung nahe:
- fehlendes "group by" bei der Verwendung einer aggregate function
- fehlerhafter join
(in dieser Reihenfolge)


Antwort
Zitat
WuerfelRudi
Joined: 05.07.2005

Wie soll ich das posten ? Wie macht man das verständlich ?


Antwort
Zitat
TheoTuppes
Joined: 25.10.2008

Kopier als erstes mal die Abfrage hier rein, vielleicht lassen sich das schon die ersten Erkenntnisse draus ziehen.


Antwort
Zitat
WuerfelRudi
Joined: 05.07.2005

Guten Morgen,

so habe mal Bilder gemacht.
Abfrage
Tabelle Stamm
Tabelle Personen
Dropbox Logo Download (2014-06-26+07.46.50.jp)

g" rel="nofollow ugc" target="_blank">Tabelle Verträge
Ergebnis Abfrage

In der Tabelle Stamm ist der Vertragspartner mit Daten enthalten. In der Tabelle Personen alle Personen die zum Haushalt zählen. In der Tabelle Verträge dann die zugeordneten Verträge. Jetzt hat dieser Kunde 11 Verträge, in der Abfrage wird er allerdings mit 22 ausgeworfen. Bei Kunden mit Kindern vervielfacht sich die Geschichte. Was ist falsch ?

Danke,
Rudi.


Antwort
Zitat
EilatOne
Joined: 11.11.2010

hab dir mal ne freundschaftsanfrage gesendet

aber kurz gesagt: du mußt die verbindungen zwischen den tabellen rechtsklicken und da entsprechend auswählen was genau du sehen willst

am besten du nimmst erstmal nur deine 2 wichtigsten tabellen in die abfrage und spielst damit rum solange bis du das gewünschte ergebnis erhältst, dann müßtest du auch verstehen wie das funktioniert je nachdem was du ausgewählt hast bzw. wie die verbindung zwischen den beiden tabellen festgelegt ist


Antwort
Zitat
EilatOne
Joined: 11.11.2010

mal kurz für die anderen, hab mit ihm nämlich telefoniert und von ihm ne anonymisierte datenbank erhalten

in der tabelle stamm gibts mehrere ausgangsdatensätze

zu jedem datensatz in der tabelle stamm gibts 1 oder mehrere datensätze in der tabelle personen

zu jeder person kann es 1 oder mehrere datensätze in der tabelle kommunikationswege geben

die tabelle verträge enthält wiederum datensätze die aber direkt mit einem datensatz in der tabelle stamm verknüpft sind, d.h. zu jedem stamm kann es 1 oder mehrere verträge geben

was er will ist quasi einen datensatz je datensatz in tblstamm der dann alle damit verbundenen daten enthält

was meiner meinung nach nicht möglich ist bzw. in theoretisch endlos vielen spalten resultiert und von keiner software auf regulärem weg weiterverarbeitet werden kann

stamm 1:n personen 1:n kommunikationswege usw.
und dabei nicht zu vergessen die verträge die ja da auch irgendwie mit reinsollen aber lt. gespräch nur mit stamm in verbindung stehen

imo also nicht möglich ... lasse mich aber gerne eines besseren belehren

gehen tuts dabei darum die daten aus einer softwarelösung in eine andere zu bringen ...

zwei möglichkeiten gibts: abstriche bei den zu importierenden daten zu machen oder eine spezielle schnittstelle zu programmieren die dann mit diesen daten entsprechend klarkommt bzw. etwas zu programmieren das die daten in ein verwendbares/importierbares format bringt (aber auch das wird imo nicht ganz ohne datenverlust möglich sein)


Antwort
Zitat
Santalino2
Joined: 08.06.2007

Original von WuerfelRudi
Guten Morgen,

so habe mal Bilder gemacht.
Abfrage
Tabelle Stamm
Tabelle Personen
Dropbox Logo Download (2014-06-26+07.46.50.jp)

g" rel="nofollow ugc" target="_blank">Tabelle Verträge
Ergebnis Abfrage

In der Tabelle Stamm ist der Vertragspartner mit Daten enthalten. In der Tabelle Personen alle Personen die zum Haushalt zählen. In der Tabelle Verträge dann die zugeordneten Verträge. Jetzt hat dieser Kunde 11 Verträge, in der Abfrage wird er allerdings mit 22 ausgeworfen. Bei Kunden mit Kindern vervielfacht sich die Geschichte. Was ist falsch ?

Danke,
Rudi.

Mir ist nicht ganz klar was dein Ziel ist und wie die gewünschte Ausgabe erfolgen soll (wenn zu einer Vertragsnummer z. B. 2 verschiedene Personen zugeordnet sind, hast du halt 2 Datensätze...das ist ja der Sinn von Datenbanken...und bin unsicher ob ich EilatOne richtig verstanden habe, willst du quasi wirklich diese Normalisierung rückgängig machen und alle Daten in einem Datensatz speichern? Kann mir nicht vorstellen, dass man sowas in der Praxis wirklich braucht, aber wenn doch, ok, dann mußte du halt genau definieren wie die ganzen neuen Felder heißen sollen z. B. "Vorname_Kontaktperson2", Nachnachme_Kontaktperson2", "Vorname-Kontaktperson3" usw. und dort dann die Daten reinstellen (geht in Access aber nur über vba, jedenfalls fällt mir spontan dafür keine andere einfache Lösung ein, sowas macht und braucht normalerweise einfach niemand^^)

Wie gesagt, evtl. habe ich das jetzt aber auch falsch verstanden. Wenn dein beschriebenes Problem mit den 11 und 22 nur die Duplikate sind, dann ists einfach zu lösen, du gehst in Abfrage-Entwurfsansicht, klickst auf Eigenschaften und stellst "Keine Duplikate" auf "Ja".


Antwort
Zitat
WuerfelRudi
Joined: 05.07.2005

Hallo,

benötige die Daten um sie zu exportieren. Habe heute mit einem der Entwickler unserer alten Software gesprochen. Er meinte das wäre gar kein Problem innerhalb von 5 Minuten mit ein paar Mausklick´s die entsprechenden Daten zu exportieren.
Kann man so was in Access2010 auch mit SQL-Abfragen machen ?

Rudi.


Antwort
Zitat
Santalino2
Joined: 08.06.2007

Ok, dann hat sich das ja erledigt (einfach den alten Entwickler in 5 Minuten machen lassen).


Antwort
Zitat
WuerfelRudi
Joined: 05.07.2005

Natürlich leider nicht, der Kontakt war per Email. Er hat sich dann natürlich nicht mehr gemeldet (da kann ich erst am Montag wieder nachfassen). Kann man das denn als SQL Abfrage machen ?

Rudi.


Antwort
Zitat
3nJ0yIT
Joined: 06.07.2011

Prinzipiell sind alle Access-Abfragen auch SQL-Abfragen... mach die einfach mal in der SQL-Ansicht auf ;)

Wo gibt es denn noch Probleme? Bin ziemlich fit in Access mit all seinen Variationen der Datenanbindung, Auswertung etc. pp.

Edit: Hab gerade gelesen was EilatOne geschrieben hat. Liest sich etwas als wenn die Datenstruktur nicht wirklich optimal ist...

Ich hoffe mal nicht sowas was ich gerade an der Arbeit erlebe (Migration von dbase auf MS SQL Server)...


Antwort
Zitat
WuerfelRudi
Joined: 05.07.2005

Na ja ich kann leider nicht beurteilen was mir der Programmierer schrieb. Das Problem ist wohl durch EilatOne erklärt. Da hat sich nichts geändert.

Hier mal Auszug aus der einer Mail des Entwicklers von heute:
"Da wir die Daten ja selbst erst kürzlich von der alten version Access in die völlig neuen Strukturen der neuen Version SQL-Server übernommen haben, kann ich Ihnen versichern, dass das kein Hexenwerk ist ;-) Je nachdem was Sie brauchen hat man sich eine Abfrage in 5 Minuten zusammen geklickt. "

Rudi.


Antwort
Zitat
Santalino2
Joined: 08.06.2007

Naja ok, die Entwickler-Aussage, liest sich schon anders, er sagt ja nur ist abhängig was du brauchst und das manches in 5 Minuten geht. Nur die von EilatOne beschriebene Ausgabe geht mit Sicherheit länger, letztendlich ists abhängig um wieviel Daten es sich handelt und wie viele neue Felder dafür benötigt werden...), der Gesamtaufwand dafür sind aber eher Tage als Stunden.


Antwort
Zitat
WuerfelRudi
Joined: 05.07.2005

Scheinbar ist das ja für mich als Laie gar nicht zu bewerkstelligen.
Werde Montag noch mal den Entwickler anrufen und auch mit der IT-Abteilung des neuen Unternehmens sprechen. Evtl. kann man das ja in viele Schritte unterteilen.
Mal sehen. Ich bedanke mich erstmal für eure Einschätzung und Hilfe.

Rudi.


Antwort
Zitat

Klingt bestimmt klugscheißermäßig, aber probiers mal mit dem 4:12 Minuten-Video

und/oder teste dein Vorhaben erst einmal nur mit einem kleinen Bruchteil
deiner Daten. Mache ich bei VBA's als Laie auch.
Erst in einer BspDatei mit wenigen, aber dem Umfang der eigentlichen Sache zuträglichen Bsp.Daten schreiben und dann auf den Zweck anpassen/für den Zweck umschreiben.

:)

und das folgende Videokönnte dir zur Lösungsfindung ebenfalls weiterhelfen.


Antwort
Zitat
Santalino2
Joined: 08.06.2007

Er braucht keine einfache Abfrage, sondern die Daten in komplett anderer Struktur. Da können dann 50, 100 oder noch mehr neue Felder entstehen. Schon alleine eine richtige Definition/Beschreibung der neuen Felder und wo welche Daten gezogen werden sollen dauert da x Stunden. Danach mußte diese Logik für jedes Feld programmieren und testen (es reichen paar vertauschte Feldnamen und du hast Datenmüll erzeugt und wenn Daten von verschiedenen Kunden falsch zusammengewürfelt wurden und es nicht auffällt kann das später extreme Folgefehler verursachen (z. B. unberechtige Kündigungen oder Mahnungen usw.).

Ich kenne das von einem großen Konzern, da wurden vor solchen Systemänderungen Projektgruppen mit x Fachleuten gegründet, die 1/2 Jahr vorher damit angefangen haben sich damit zu beschäftigen um diese Umstellphase, Datenmigration, Dokumentation und Tests sauber hinzubekommen (und wo Projektleiter dann alle 14 Tage vor einem Lenkungsausschuß (wo auch Geschäftsführer dabei war) antreten und aktuellen Status darlegen mußte...).

Ok, bei kleineren Firmen kann das evtl. schon etwas lockerer laufen, aber trotzdem würde ich keinem empfehlen mal kurz einen 5 Minuten YouTube Abfragen-Anfänger-Kurs anzuschauen und ihn dann ermuntern das mal kurz selbst zu erledigen. Nix für ungut, aber das wird nicht klappen (und die gewünschte Ausgabe ist wie gesagt mit einfachen Abfragen nicht lösbar...). Ok, genug geschrieben und er will ja auch Entwickler/IT-Abteilung anrufen, das ist jedenfals der richtige Weg, die sollen dafür verschiedene Vorschläge/Lösungen erarbeiten und ihm dann präsentieren (und bin relativ sicher dass die Fachleute dann andere Lösung finden werden als alle Daten in einem Mega-Datensatz mit 1000 Feldern zu bündeln...da muß es einfach andere Möglichkeiten geben, ansonsten würde ich jedenfalls schon leicht an dem neuen System oder den dortigen Fachleuten zweifeln^^).


Antwort
Zitat

schon wieder ein Doppelpost.. der 3. bereits. Mhh komisch, komisch.


Antwort
Zitat

@Rudi
darf ich raten, bin aber Laie.

ID_Stamm
ID_Person_Stamm
ID_Vertrag_Stamm

sind stets gleich. Und die falsche Einflussnahme eines dieser _Stämme versaut dir die Abfrage.

1.
wenn
1 ID_STamm
2 Personen_Stämme beinhaltet,
ihm 11 Aufträge zugeordnet sind,

dann bei Abfrage 22 gelistet werden, obwohl du nur 11 wolltest,
hast du falsch verknüpft.

Dann müsstest/solltest du "ID_Stamm" mit "ID_Vertrag" verknüpfen.

Und/Oder darauf achten, dass dir ID_Person_Stamm/ID_Vertrag_Stamm nicht dazwischenfunken

2.
Wenn
du den jeweiligen Vertrag der jeweiligen Person /den jeweiligen Familienmitgliedern zuordnen
und mit den gewünschten in Excel überführen willst

Dann müsstest/solltest du ID_Person mit ID_Vertrag verknüpfen, aber zwecks Übersichtlichkeit unter ID_Stamm führen - und auch hier darf dir ID_Person_Stamm/ID_Vertrag_Stamm nicht dazwischenfunken.

Spoiler

hoffe, dass war richtig/hilfreich und ontopic =)

-------


Antwort
Zitat