Neuigkeiten:

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

Mobiles Hauptmenü

Über Abfrage Formel in Excel einsetzen (Export)

Begonnen von DiedrichsHW, Mai 22, 2014, 13:03:18

⏪ vorheriges - nächstes ⏩

DiedrichsHW

Ich habe eine Abfrage, womit ich Daten nach Excel übertrage. Nun wäre es praktisch, wenn in der Excel-Tabelle neben dem Geburtstag auch das aktuelle Alter stünde.
Dazu gebe ich diese Formel in eine Spalte ein:
Alter: =WENN(ISTLEER(INDIREKT(ADRESSE(ZEILE();SPALTE()+1)));"*?";WENN(ISTFEHLER(DATEDIF(INDIREKT(ADRESSE(ZEILE();SPALTE()+1));HEUTE();"Y"));"J?";(DATEDIF(INDIREKT(ADRESSE(ZEILE();SPALTE()+1));HEUTE();"Y"))))

In Excel funktioniert die Formel
Wenn ich die Formel so in die Abfrage setzte, wie oben geht es nicht, weil das Abfrageformular den Wert prüft ud als fahs deklariert.

Setzte ich es Ausführungszeichnung (Alter: "= wenn....") geht es auch nicht
Bei Hochkomma (Alter: '= wenn....') geht es halb gut. In Excel erscheint der Wert korrekt rechnet aber nicht. Wenn ich ich in Excel das Zell-Format wechsele ändert sich nichts. Jedoch, wenn ich in der nach Excel exportierten Zelle nur das Gleichheitszeichen austausche (lösche und neu einsetze) rechnet Excel richtig.

Mit dem Wert soll später in Excel gerechnet werden

1) Was kann ich tun?
2) Die Formel wird noch erweitert und dann sollen über wenn dann unterschiedlich benutzerbedingt formatiert sein. Ich brauch dann "Einheiten" an der Zahl, z.B. 22g oder 22a, die weiterhin rechen sollen.

DF6GL

Hallo,

vergiss Excel , wenn Du Access benutzt.

Schreib in einer Abfrage-Spalte (im Abfrageentwurf)  die Formel hinein, die Du hier
http://www.donkarl.com/?FAQ2.7
findest.
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

DiedrichsHW

Das ist eine prinzipielle Sache. Einige Anwender sollen mit Excel arbeiten. (Datenschutz- und Sicherheitsgründe). Also will ich bequem bestimmte Datensätze nach Excel auswerfen

Danke für Deine Antwort. Der Link führt zu einer guten Sammlung.

Meine Frage zu 1) war was muss ich tun, damit Excel die Formel, die je funktioniert und richtig übertragen wir auch als Formel erkennt (vermutlich den Excel es sei Text).

Frage 2) Habe ich nachgeschoben

MzKlMu

Hallo,
Zu 1)
wo ist das Problem, verwende in Access die Access Formel und in Exceld die Excel Formel.
Also für den Export nach Excel:
Alter: DatDiff("YYYY";[Geburtsdatum];Datum()) + (Format(Datum(); "mmdd") < Format([Datumsfeld]; "mmdd"))
Eventuell YYYY gegen JJJJ und DD gegen TT tauschen.

Zu 2)
Das ist im Prinzip bereits fasch. An eine Zahl hängt man keine Buchstaben. Mit Buchstaben ist es keine Zahl mehr und muss mit Konvertierungsfunktionen behandelt werden.
Die Buchstaben gehören in eine eigen Spalte der Tabelle.
Ein Datenbankfeld sollte grundsätzlich nur eine Info beinhalten (Atomare Inhalte = 1.Normalform)
Gruß Klaus

MaggieMay

Hallo,
Zitat von: DiedrichsHW am Mai 22, 2014, 13:03:18In Excel funktioniert die Formel
Klar, sind ja auch Excel-Funktionen. Aber Access kann damit nichts anfangen, da musst du den Ausdruck schon in "Access-Sprache" übesetzen.
Zitat
Ich brauch dann "Einheiten" an der Zahl, z.B. 22g oder 22a, die weiterhin rechen sollen.
Mit 22g oder 22a lässt sich schlecht rechnen, das sollte dir eigentlich klar sein.

...upp, da war ich mal wieder zu langsam  ???
Freundliche Grüße
MaggieMay

DiedrichsHW

1) Das Problem ist dass Excel den String, der von Access kommt nicht als Formel interpretiert.

2) Es gibt in Excel die Möglichkeit über benutzerdefiniertere Formatierung, Zahlen mit Buchstaben zu kennzeichnen, z.B. "m²" "m" "Einheit", da ist alles möglich. nun möchte ich das über eine Wenn dann Formel variieren und such den Befehl "bedingte Formatieren" im Formelformat und nicht in Menüversion.
Ich widerspreche mit 22g lässt es sich gut rechnen, weil es als Einheit formatiert ist. Man kann ja auch mit farbigen Ziffern rechnen. Das ist eine "Format"- Sache.

MzKlMu

#6
Hallo,
willst Du die Formel exportieren, oder das Ergebnis ?
Wozu die Formel ? Wozu überhaupt das Alter exportieren.
Sowohl in Excel als auch in Access kann man ja das Alter jeweils rechen.

Du kannst über das Eingabeformat (nicht Format) dafür sorgen, dass die Einheit mit gespeichert wird, aber das geht nur mit dem Datentyp Text, damit ist die Zahl zum Rechnen verloren.
Die Einheiten sind in einer separaten Tabelle zu führen und als Fremdschlüssel in der Datentabelle zu speichern. Die Einheit als Anhängsel der Zahl zu formatieren halte ich für den falschen Weg. Wenn Du es doch willst, musst Du in der Abfrage zum Export den Formatbefehl anwenden.


PS1:
Die bedingte Formatierung als VBA (=Formel) ist ein ziemlicher Lernaufwand und relativ kompliziert.
PS2:
Alter als Feldname (oder Variable) ist zu vermeiden, da es einen gleichlautenden SQL Befehl gibt.

PS3:
Warum beschäftigst Du 2 Foren?
http://www.ms-office-forum.net/forum/showthread.php?t=309273
In beiden Foren ist das unerwünscht (siehe Regeln) und führt eher zu weniger Antworten als mehr. Viele klinken sich bei Grossposting aus.
Gruß Klaus

DiedrichsHW

Das mit zwei Foren, war am Anfang um schnell eine Antwort zu erhalten und wegen Unerfahrenheit. Nun geht im andren Forum gerade um "Function". Ferner muss ich probieren wo ich mich für die Zukunft wohler fühle, also vergleichen. Kannst Du mir da raten?

Zweitens habe ich im Augenblick das Gefühl, dass wir etwas aneinander vorbeireden. Vielleicht versterbst Du meine Sprache nicht so gut, weil ich unfachmännisch Rede.


Ich arbeite an einer hochflexiblen Excel-Tabelle und wollte sie gerne fertig aus Access heraus gebähren. Es geht gut und hängt nun nur am Übertragen der Formel.
Wenn letzeres nicht geht muss ich über eine VBA-Sache das in Excel dann generieren.
Ich neige zum Prinzipiellen und Perfekten und hätte gerne Excel fix und fertig aus Access mit einigen Formelspalten erzeugt.


MaggieMay

Wenn das so ist, musst du dich für eine VBA-Lösung entscheiden.

Aber:
- Wie oft wird diese Tabelle denn erstellt?
- Warum muss die Excel-Tabelle Formeln enthalten, warum genügen nicht die damit berechneten Werte?
Freundliche Grüße
MaggieMay

DiedrichsHW

Es ist nicht für mich, sondern Mitglieder unseres Vereins sollen gefilterte Listen im Excel-Format bekommen (nicht alles wegen Datenschutz).
Die Listen werden von der zentralen Datenbank ab und dazu aktualisiert / verschickt.
Der Excel-Anwender soll natürlich immer das aktuelle Alter sehen, also muss die Formel in Excel stehen.
Ich hätte gerne eine hoch flexible Excel-Tabelle aus Access erzeugt ohne ohne nochmals in Excel eine VBA-Routine laufen zu lassen. Die Altersspalte von Hand einzubauen ist bei der Vielzahl der Exporte zu aufwändig.

Wen Ihr Experten keine Antwort habt muss ich wohl doch mit VBA frisierte Excel-Tabellen vorgeben, was auch umständlich ist.

Es gibt da noch weitere Umstände, was man hier aus Platzgründen nicht alles erläutern kann.

DF6GL

Hallo,

abschliessend:


ZitatIch hätte gerne eine hoch flexible Excel-Tabelle aus Access erzeugt

wie Anne Berg es schon sagte, da muss Automation von Excel herhalten ...

Ich befürchte aber, es wird schwierig , wenn Du nichts mit "Public Function .. " anfangen kannst.  Deshalb rate ich zum Durcharbeiten eines VBA-Grundlagen-Tutorials für Access UND für Excel..
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

MaggieMay

Zitatohne ohne nochmals in Excel eine VBA-Routine laufen zu lassen
Mir scheint da liegt ein Missverständnis vor. Hier denkt niemand (außer dir?) daran, die VBA-Nachbesserungen in Excel vorzunehmen. Du kannst die Tabelle wie gewünscht komplett aus Access heraus erzeugen, nur nicht mit einem einfachen Export-Befehl, sondern per Automatisierung von Excel via VBA.

Nachtrag:
Zitatwie Anne Berg es schon sagte
häh... ???
Freundliche Grüße
MaggieMay

DiedrichsHW

 :) Vielen Dank!
A) Ihr habt mir wesentlich geholfen.
Ich löse dann mein Problem über Excel-VBA.

B) Mit VBA habe ich nur mittlere Erfahrung.
Aber mein Verwaltungssystem für unseren Verein funktioniert gut und die hochflexiblen Excel-Ableger auch. Alle enthalten sehr viele VBA-Routinen.
Durch die Autodidaktik habe ich spezielles Wissen neben vielen Lücken. Sorry und danke.

MaggieMay

ZitatIch löse dann mein Problem über Excel-VBA.
da war ich wohl nicht deutlich genug:
Zitatsondern per Automatisierung von Excel - aus Access heraus - via VBA.
Freundliche Grüße
MaggieMay

DiedrichsHW

Danke, nochmals für den Hinweis.
Aber alles (auch Tabellengestallung) über VBA zu machen ist auch aufwändig, das geht über Export aus Abfrage gut.
Oder:
In SQL direkt muss ich gucken wie es geht. Oft geht dann die graphische Oberfläche nicht mehr. Ist aber ein Versuch Wert.

Vielleicht kann ich in die Graphische Abfrage eine Beug zu einem Modul machen.

Was empfiehlst Du?