Neuigkeiten:

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

Mobiles Hauptmenü

Exportfunktion mit auswählbaren Feldern

Begonnen von OPS, Juni 15, 2010, 09:48:49

⏪ vorheriges - nächstes ⏩

OPS

Dieses Problem spielt ein bisschen in Formulare und Abfragen hinein, vielleicht auch VBA.

Folgendes:
In meiner DB gibt es zahleiche untereinander verknüpfte Tabellen. Ich möchte die in der Datenbank enthaltenen Daten in eine gemeinsame Exceldatei exportieren.
Mit allen Daten funktioniert es ganz gut, ich erstelle eine "globale" Abfrage die alle Daten sammelt und über ein Makro exportiert, allerdings sind das nicht weniger als 60 verschiedene relevante Felder in einem komplexen Datensatz (FKs gar nicht mitgerechnet).

Ich möchte dem Anwender eine Möglichkeit geben, dass er sich eine begrenzte Anzahl Felder aussucht nach denen dann exportiert wird. Wobei er frei in der Wahl ist.

Zu diesem Problem gibt es sicherlich mehrere Lösungen.
Mir fällt da zum Beispiel ein:
Eine wäre es, verschiedene Abfragen mit häufigen Zusammenstellungen zu erstellen, aber der Benutzer soll frei sein in seiner Wahl.
Jemand könnte vor dem Export die Abfrage einstellen, aber der Benutzer soll keinen Zugang haben zum Back End.
Sicherlich gibt es auch irgendwelche VBA-Lösungen aber für etwas so komplexes fehlt mir noch die Erfahrung.

Gibt es hierzu eine einfache Lösung auf der Basis von Fomularen, Abfragen, Makros und/oder einfachen VBA-Skripten?

Ein verständliches Beispiel zur Veranschaulichung:
In einer DB für Autos hat ein Auto 60 verschiedene Felder, aber der Mechaniker möchte jetzt einen Export in dem nur die letzte Reperatur, die Reifenart und der Besitzer drin stehen. Der Kunde möchte nur technische Daten abfragen, der Verkäufer will etwas wissen über Preise, Lieferdatum...
Wie realisiert der DB-Designer eine frei Wahlmöglichkeit für jeden Anwender?

database

Hallo,

also eine 'einfache' Lösung fällt mir dazu eigentlich keine ein - vielleicht kennt jemand div. Zusatztools, die sich für so eine Aufgabenstellung verwenden lassen.

ZitatSicherlich gibt es auch irgendwelche VBA-Lösungen
... und genau hier meine ich das Hauptgewicht zu sehen.
Theoretisch könnte ein Formular, welches dem Benutzer ermöglicht die entsprechenden Felder auszuwählen (z.B. mittels Checkboxen), die Grundlage für eine komplexe VBA-Funktion darstellen, mit Hilfe der ein passender SQL-String zusammengesetzt wird.
Dieser String kann dann gegen die DB geschickt und das ermittelte Ergebnis an Excel übergeben werden.

ZitatWie realisiert der DB-Designer eine frei Wahlmöglichkeit für jeden Anwender?
Hmmm... eigentlich gar nicht, da dieses nicht die Aufgabe des DB-Designers ist sondern die des Programmierers des Frontends. ;D
Ist aber nicht ergebnisrelevant ;) - ich würde sagen - wenn mit 'freier' Wahlmöglichkeit dann in einer von mir beschriebenen Form oder mit fix vorgegebenen Abfragen so wie du es auch schon angesprochen hast.
Bei der 'FIX-Lösung' käme der Vorteil zum Tragen, dass der Export nach Excel entfallen könnte, da zu fix definierten Abfragen auch fix definierte Access-Berichte gut passen würden.

Ich gehe davon aus, dass sich die Art und der Umfang der abzufragenden Daten eigentlich relativ leicht ermitteln lassen wird und somit auch die 'FIX-Lösung' recht brauchbar sein KANN.
Dem Benutzer in einer komplexen Datenumgebung VOLLKOMMEN freie Auswahlmöglichkeit zu geben ist m.E. nicht unbedingt das Gelbe vom Ei

Grüße

Peter


OPS

Das ist leider nicht meine Entscheidung.
Für meine DB ist die Exportierbarkeit von und Importierbarkeit nach Excel ein indiskutables Muss.

Aber vielleicht kann ich mich mit meinen Mitarbeitern auf eine Lösung einigen, bei der ich eine Menge an vordefinierten Abfragen habe. Es gibt einfach Kombinationen die man öfter braucht als andere...

Mir ist eben noch etwas eingefallen!
Mit einem Makro erlaube ich dem Benutzer den Entwurf einer Abfrage zu öffnen, dort kann er dann selbst alles ein- und ausklicken das er haben möchte. Er führt das Makro aus und kriegt dann das was er will...

DF6GL

Hallo,

mhmm, und warum bist Du nun nicht mit dem Vorschlag von database zufrieden, bei dem er sagt:

"Theoretisch könnte ein Formular, welches dem ....  "  ??

Die Auswahl der Felder könnte auch (dynamisch) mittels Kombis erfolgen und für den Zusammenbau des Strings benutzt werden.

Auf www.dbwiki.de gab es mal eine Suchformular-DB, die Ähnliches für die (spätere) Filterung eines Formulares verwendete. Leider ist diese Seite z. Z. nicht erreichbar.


database

Hallo,

ZitatMir ist eben noch etwas eingefallen
...und das vergiß mal besser gleich wieder! :)

Wenn du eine vordefinierte Abfrage hast, sind dort eine Menge Felder angehakt, die DU zuerst mal anzeigen läßt.
Wenn du nun einen Benutzer da drauf los läßt und der ein paar von den Häkchen wegnimmt, weil er der Meinung ist er bräuchte die Felder nicht und speichert danach die Abfrage (Access wird ihn dazu beim Schließen der Abfrage auffordern) dann sind die Felder für den nächsten Benutzer nicht mehr sichtbar bzw müsste der dann die fehlenden Felder aus den Tabellen wieder in den Abfrageentwurf reinziehen.

Da kannst dann die Abfragen gleich den Benutzer sebst machen lassen indem du ein Manual bereitstellst.

Du wirst für diese Aufgabe kaum um VBA und die Lösung mit statischen / dynamischen Auswahlmöglichkeiten in einem Formular herumkommen. :-\
ZitatFür meine DB ist die Exportierbarkeit von und Importierbarkeit nach Excel ein indiskutables Muss
...wird durch die oben erwähnte Lösung nicht verhindert :)

OPS

Ahh Mist! Wenn man da "anzeigen" wegklickt, wird das Feld aus der Abfrage entfernt! Wusste ich vorher nicht.

Das Problem bei mit einem VBA-Skript ist der höhere Aufwand bei meinen VBA-Kenntnissen.

Ich werde weiterhin gemäß DF6GLs Vorschlag nachsehen ob diese Wiki-Seite wieder online ist.

Bis dahin konzentriere ich mich auf andere Probleme.

Danke für eure Hilfe