Discussion:
Formel umsetzen von Excel in Access Abfrage
(zu alt für eine Antwort)
Leuenberger Christian
2009-10-28 07:22:50 UTC
Permalink
Für die weiter Verarbeitung in Access muss ich einen Wert umrechnen.

In Excel funktioniert die Formel
Wie kann ich sie in Access einsetzen, die Function Suchen wird nicht
erkannt.

xx_Zeit: 1-Rechts([Ereignis Zeit Von];Länge([Ereignis Zeit
Von])-Suchen(".";[Ereignis Zeit Von];1)+1)

Arbeite mit Access XP

Gruss
Christian
Thomas Möller
2009-10-28 07:32:35 UTC
Permalink
Hallo Christian,
Post by Leuenberger Christian
Für die weiter Verarbeitung in Access muss ich einen Wert umrechnen.
In Excel funktioniert die Formel
Wie kann ich sie in Access einsetzen, die Function Suchen wird nicht
erkannt.
xx_Zeit: 1-Rechts([Ereignis Zeit Von];Länge([Ereignis Zeit
Von])-Suchen(".";[Ereignis Zeit Von];1)+1)
übersetz die Funktionen mal wie folgt:

Rechts => Right
Länge => Len
Suchen => Instr


HTH
--
Thomas

Homepage: www.Team-Moeller.de
Leuenberger Christian
2009-10-28 07:45:55 UTC
Permalink
Suchen => Instr wird in der Abfrage nicht erkannt
Die anderen werden gehen.

Oder gibt es eine andere Möglichkeit?

Gruss
Christian
Post by Thomas Möller
Hallo Christian,
Post by Leuenberger Christian
Für die weiter Verarbeitung in Access muss ich einen Wert umrechnen.
In Excel funktioniert die Formel
Wie kann ich sie in Access einsetzen, die Function Suchen wird nicht
erkannt.
xx_Zeit: 1-Rechts([Ereignis Zeit Von];Länge([Ereignis Zeit
Von])-Suchen(".";[Ereignis Zeit Von];1)+1)
Rechts => Right
Länge => Len
Suchen => Instr
HTH
Thomas Möller
2009-10-28 07:56:00 UTC
Permalink
Hallo Christian,
Post by Leuenberger Christian
Post by Thomas Möller
Post by Leuenberger Christian
Wie kann ich sie in Access einsetzen, die Function Suchen wird nicht
erkannt.
xx_Zeit: 1-Rechts([Ereignis Zeit Von];Länge([Ereignis Zeit
Von])-Suchen(".";[Ereignis Zeit Von];1)+1)
Rechts => Right
Länge => Len
Suchen => Instr
Suchen => Instr wird in der Abfrage nicht erkannt
Die anderen werden gehen.
IIRC ist die Funktion "InStr" seit Access 2002 vorhanden.

Woran erkennst Du, dass die Funktion nicht erkannt wird?
Gibt es eine Fehlermeldung?

Tausch mal bitte die Reihenfolge der ersten beiden Parameter. Ich denke,
Du möchtest den ersten Punkt in einem Datum finden. Dann sollte der
Aufruf wie folgt lauten:

Suchen([Ereignis Zeit Von];".";1)


HTH
--
Thomas

Homepage: www.Team-Moeller.de
Karl Donaubauer
2009-10-28 08:00:35 UTC
Permalink
Hallo, Thomas!
Post by Thomas Möller
...
IIRC ist die Funktion "InStr" seit Access 2002 vorhanden.
Naa, seit Access 1.0. :-)

Vielleicht meinst du InStrRev, das wie ein paar andere Stringfunktionen
erst mit A00 hinzu kam.
--
Servus
Karl
********* Ich beantworte keine Access-Fragen per Email. *********
Access-FAQ: http://www.donkarl.com + Anmeldung und Info zur
Access-Entwickler-Konferenz (AEK12), Oktober 2009, Nürnberg
Leuenberger Christian
2009-10-28 08:15:00 UTC
Permalink
Also InStrRev wird nicht wie alle anderen ins deutsche Übersetzt,
darum nehme ich mal an das die Abfrage sie nicht kennt.

Ausgabe ergibt #Fehler

Gruss
Christian
Post by Thomas Möller
Hallo Christian,
Post by Leuenberger Christian
Post by Thomas Möller
Post by Leuenberger Christian
Wie kann ich sie in Access einsetzen, die Function Suchen wird nicht
erkannt.
xx_Zeit: 1-Rechts([Ereignis Zeit Von];Länge([Ereignis Zeit
Von])-Suchen(".";[Ereignis Zeit Von];1)+1)
Rechts => Right
Länge => Len
Suchen => Instr
Suchen => Instr wird in der Abfrage nicht erkannt
Die anderen werden gehen.
IIRC ist die Funktion "InStr" seit Access 2002 vorhanden.
Woran erkennst Du, dass die Funktion nicht erkannt wird?
Gibt es eine Fehlermeldung?
Tausch mal bitte die Reihenfolge der ersten beiden Parameter. Ich denke,
Du möchtest den ersten Punkt in einem Datum finden. Dann sollte der
Suchen([Ereignis Zeit Von];".";1)
HTH
Karl Donaubauer
2009-10-28 08:30:56 UTC
Permalink
Post by Leuenberger Christian
Post by Thomas Möller
Post by Leuenberger Christian
Post by Thomas Möller
Post by Leuenberger Christian
Wie kann ich sie in Access einsetzen, die Function Suchen wird
nicht erkannt.
xx_Zeit: 1-Rechts([Ereignis Zeit Von];Länge([Ereignis Zeit
Von])-Suchen(".";[Ereignis Zeit Von];1)+1)
Rechts => Right
Länge => Len
Suchen => Instr
Suchen => Instr wird in der Abfrage nicht erkannt
Die anderen werden gehen.
IIRC ist die Funktion "InStr" seit Access 2002 vorhanden.
Woran erkennst Du, dass die Funktion nicht erkannt wird?
Gibt es eine Fehlermeldung?
Tausch mal bitte die Reihenfolge der ersten beiden Parameter. Ich
denke, Du möchtest den ersten Punkt in einem Datum finden. Dann
Suchen([Ereignis Zeit Von];".";1)
...
Also InStrRev wird nicht wie alle anderen ins deutsche Übersetzt,
darum nehme ich mal an das die Abfrage sie nicht kennt.
Ausgabe ergibt #Fehler
Du bringst jetzt die Funktionen etwas durcheinander.
Thomas empfahl dir Instr(), das in allen Access-Versionen und
Einsatzvarianten funktioniert. Wenn es bei dir nicht geht, dann
setzt du es wahrscheinlich falsch ein.

Mehr kann man nicht dazu sagen, wenn du nicht genau beschreibst,
wo (d.h. an welcher Stelle in welchem Objekt) und wie du es verwendest,
am besten per Kopieren/Einfügen in deine Beiträge.
--
Servus
Karl
********* Ich beantworte keine Access-Fragen per Email. *********
Access-FAQ: http://www.donkarl.com + Anmeldung und Info zur
Access-Entwickler-Konferenz (AEK12), Oktober 2009, Nürnberg
Thomas Möller
2009-10-28 08:34:06 UTC
Permalink
Hallo Christian,
Post by Leuenberger Christian
Post by Thomas Möller
Post by Leuenberger Christian
Post by Thomas Möller
Post by Leuenberger Christian
Wie kann ich sie in Access einsetzen, die Function Suchen wird
nicht erkannt.
xx_Zeit: 1-Rechts([Ereignis Zeit Von];Länge([Ereignis Zeit
Von])-Suchen(".";[Ereignis Zeit Von];1)+1)
Rechts => Right
Länge => Len
Suchen => Instr
Suchen => Instr wird in der Abfrage nicht erkannt
Die anderen werden gehen.
IIRC ist die Funktion "InStr" seit Access 2002 vorhanden.
Woran erkennst Du, dass die Funktion nicht erkannt wird?
Gibt es eine Fehlermeldung?
Also InStrRev wird nicht wie alle anderen ins deutsche Übersetzt,
darum nehme ich mal an das die Abfrage sie nicht kennt.
die Funktion "InstrRev" hat Karl ins Spiel gebracht. Ich hatte Dir die
Funktion "InStr" empfohlen.

Ist das jetzt ein Übertragungsfehler oder hast Du tatsächlich die
Funktion InStrRev verwendet?

Probier doch mal, den Ausdruck Stück für Stück in einzelnen Spalten
zusammenzubauen. Dazu gibst Du in eine Spalte mal folgenden Ausdruck ein:

PosPunkt: InStr(1;[Ereignis Zeit Von];".";1)


ich habe hier zusätzlich als erstes den Parameter für den Start der
Suche eingegeben. Sonst erhalte ich als Ergebnis immer 0.
Post by Leuenberger Christian
Post by Thomas Möller
Tausch mal bitte die Reihenfolge der ersten beiden Parameter. Ich
denke, Du möchtest den ersten Punkt in einem Datum finden. Dann sollte
Suchen([Ereignis Zeit Von];".";1)
Ausgabe ergibt #Fehler
Ich erhalte auch die Ausgabe "#Fehler" wenn ich die Parameter nicht wie
vorgeschlagen tausche. Schau Dir doch bitte mal die Beschreibung zur
Funktion InStr in der Hilfe näher an.


HTH
--
Thomas

Homepage: www.Team-Moeller.de
Leuenberger Christian
2009-10-28 09:18:18 UTC
Permalink
Habe Versuchsweise eine neue Tabelle angelegt und Abfrage:
1-Rechts([Ereignis Zeit Von];Länge([Ereignis Zeit
Von])-InStr(1;[Ereignis Zeit Von];".";1)+1)
Ergebniss i.o

Beim Import von Excel #Fehler
In Excel hat das Feld [Ereignis Zeit Von] folgendes Format
Datum/Uhrzeit
hh\:nn

Ich vermute stark das Problem von hier kommt.

Gruss
Christian
Post by Thomas Möller
Hallo Christian,
Post by Leuenberger Christian
Post by Thomas Möller
Post by Leuenberger Christian
Post by Thomas Möller
Post by Leuenberger Christian
Wie kann ich sie in Access einsetzen, die Function Suchen wird
nicht erkannt.
xx_Zeit: 1-Rechts([Ereignis Zeit Von];Länge([Ereignis Zeit
Von])-Suchen(".";[Ereignis Zeit Von];1)+1)
Rechts => Right
Länge => Len
Suchen => Instr
Suchen => Instr wird in der Abfrage nicht erkannt
Die anderen werden gehen.
IIRC ist die Funktion "InStr" seit Access 2002 vorhanden.
Woran erkennst Du, dass die Funktion nicht erkannt wird?
Gibt es eine Fehlermeldung?
Also InStrRev wird nicht wie alle anderen ins deutsche Übersetzt,
darum nehme ich mal an das die Abfrage sie nicht kennt.
die Funktion "InstrRev" hat Karl ins Spiel gebracht. Ich hatte Dir die
Funktion "InStr" empfohlen.
Ist das jetzt ein Übertragungsfehler oder hast Du tatsächlich die
Funktion InStrRev verwendet?
Probier doch mal, den Ausdruck Stück für Stück in einzelnen Spalten
PosPunkt: InStr(1;[Ereignis Zeit Von];".";1)
ich habe hier zusätzlich als erstes den Parameter für den Start der
Suche eingegeben. Sonst erhalte ich als Ergebnis immer 0.
Post by Leuenberger Christian
Post by Thomas Möller
Tausch mal bitte die Reihenfolge der ersten beiden Parameter. Ich
denke, Du möchtest den ersten Punkt in einem Datum finden. Dann
Suchen([Ereignis Zeit Von];".";1)
Ausgabe ergibt #Fehler
Ich erhalte auch die Ausgabe "#Fehler" wenn ich die Parameter nicht wie
vorgeschlagen tausche. Schau Dir doch bitte mal die Beschreibung zur
Funktion InStr in der Hilfe näher an.
HTH
Karl Donaubauer
2009-10-28 07:49:09 UTC
Permalink
Post by Leuenberger Christian
Für die weiter Verarbeitung in Access muss ich einen Wert umrechnen.
In Excel funktioniert die Formel
Wie kann ich sie in Access einsetzen, die Function Suchen wird nicht
erkannt.
xx_Zeit: 1-Rechts([Ereignis Zeit Von];Länge([Ereignis Zeit
Von])-Suchen(".";[Ereignis Zeit Von];1)+1)
Arbeite mit Access XP
Falls das ein Feld vom Typ Datum/Uhrzeit ist, dann lasse die
Stringbastelei bleiben und verwende stattdessen die dafür
vorgesehenen Datumsfunktionen. In diesem Fall DateAdd (s. <F1>).

Wenn du damit nicht weiterkommst, dann verrate, was du hier um
1 hochzählen willst. Minuten oder Sekunden oder etwas anderes?
--
Servus
Karl
********* Ich beantworte keine Access-Fragen per Email. *********
Access-FAQ: http://www.donkarl.com + Anmeldung und Info zur
Access-Entwickler-Konferenz (AEK12), Oktober 2009, Nürnberg
Leuenberger Christian
2009-10-28 08:08:14 UTC
Permalink
Es handelt sich um einen Import aus Excel

http://www.microsoft.com/communities/newsgroups/en-us/default.aspx?dg=microsoft.public.de.excel&tid=6cd15451-8db4-49c5-b416-328c617e8e1a&cat=de_DE_51272177-a45e-4eb0-84a1-79af866036b7&lang=de&cr=DE&sloc=&p=1

Hier ist das ganze Problem beschrieben,

Vielleicht gibt es auch eine andere Lösung.

Gruss
Christian
Post by Karl Donaubauer
Post by Leuenberger Christian
Für die weiter Verarbeitung in Access muss ich einen Wert umrechnen.
In Excel funktioniert die Formel
Wie kann ich sie in Access einsetzen, die Function Suchen wird nicht
erkannt.
xx_Zeit: 1-Rechts([Ereignis Zeit Von];Länge([Ereignis Zeit
Von])-Suchen(".";[Ereignis Zeit Von];1)+1)
Arbeite mit Access XP
Falls das ein Feld vom Typ Datum/Uhrzeit ist, dann lasse die
Stringbastelei bleiben und verwende stattdessen die dafür
vorgesehenen Datumsfunktionen. In diesem Fall DateAdd (s. <F1>).
Wenn du damit nicht weiterkommst, dann verrate, was du hier um
1 hochzählen willst. Minuten oder Sekunden oder etwas anderes?
Karl Donaubauer
2009-10-28 09:09:04 UTC
Permalink
Post by Leuenberger Christian
Post by Leuenberger Christian
In Excel funktioniert die Formel
Wie kann ich sie in Access einsetzen, die Function Suchen wird
nicht erkannt.
xx_Zeit: 1-Rechts([Ereignis Zeit Von];Länge([Ereignis Zeit
Von])-Suchen(".";[Ereignis Zeit Von];1)+1)
...
Es handelt sich um einen Import aus Excel
http://www.microsoft.com/communities/newsgroups/en-us/default.aspx?dg=microsoft.public.de.excel&tid=6cd15451-8db4-49c5-b416-328c617e8e1a&cat=de_DE_51272177-a45e-4eb0-84a1-79af866036b7&lang=de&cr=DE&sloc=&p=1
Hier ist das ganze Problem beschrieben,
...
Falls es um ein berechnetes Feld in einer Abfrage geht, dann könnte
es so funktionieren:

xx_Zeit: 1-Rechts([Ereignis Zeit Von];Länge([Ereignis Zeit
Von])-Instr(1;[Ereignis Zeit Von];".")+1)

Wenn nicht, dann gib mal einen konkreten Wert bekannt, den
du mit dem Ausdruck behandeln willst und welches Ergebnis du dir
vorstellst. Deine Excel-Diskussion gibt darüber nur bedingt Auskunft.
--
Servus
Karl
********* Ich beantworte keine Access-Fragen per Email. *********
Access-FAQ: http://www.donkarl.com + Anmeldung und Info zur
Access-Entwickler-Konferenz (AEK12), Oktober 2009, Nürnberg
Leuenberger Christian
2009-10-28 09:29:45 UTC
Permalink
Wie schon in der Excel Diskussion gesagt wird, muss ich die Zeit
anzeigen. Sie kommt in einen negativen Format und zeigt den die
verbleibende Zeit des Tages an.
Die verbleibende Zeit ist nach dem Punkt.
Ich muss also die Stellen vor dem Punkt eliminieren.
Das ganze wird dann von 1 subtrahiert und habe die gewünschte Zeit.

Beim Import von Excel #Fehler
In Excel hat das Feld [Ereignis Zeit Von] folgendes Format
Datum/Uhrzeit
hh\:nn

Ich vermute stark das Problem von hier kommt.
Gruss
Christian
Post by Karl Donaubauer
Post by Leuenberger Christian
Post by Leuenberger Christian
In Excel funktioniert die Formel
Wie kann ich sie in Access einsetzen, die Function Suchen wird
nicht erkannt.
xx_Zeit: 1-Rechts([Ereignis Zeit Von];Länge([Ereignis Zeit
Von])-Suchen(".";[Ereignis Zeit Von];1)+1)
...
Es handelt sich um einen Import aus Excel
http://www.microsoft.com/communities/newsgroups/en-us/default.aspx?dg=microsoft.public.de.excel&tid=6cd15451-8db4-49c5-b416-328c617e8e1a&cat=de_DE_51272177-a45e-4eb0-84a1-79af866036b7&lang=de&cr=DE&sloc=&p=1
Hier ist das ganze Problem beschrieben,
...
Falls es um ein berechnetes Feld in einer Abfrage geht, dann könnte
xx_Zeit: 1-Rechts([Ereignis Zeit Von];Länge([Ereignis Zeit
Von])-Instr(1;[Ereignis Zeit Von];".")+1)
Wenn nicht, dann gib mal einen konkreten Wert bekannt, den
du mit dem Ausdruck behandeln willst und welches Ergebnis du dir
vorstellst. Deine Excel-Diskussion gibt darüber nur bedingt Auskunft.
Karl Donaubauer
2009-10-28 10:03:06 UTC
Permalink
Post by Leuenberger Christian
Post by Karl Donaubauer
Post by Leuenberger Christian
Post by Leuenberger Christian
In Excel funktioniert die Formel
Wie kann ich sie in Access einsetzen, die Function Suchen wird
nicht erkannt.
xx_Zeit: 1-Rechts([Ereignis Zeit Von];Länge([Ereignis Zeit
Von])-Suchen(".";[Ereignis Zeit Von];1)+1)
...
Es handelt sich um einen Import aus Excel
http://www.microsoft.com/communities/newsgroups/en-us/default.aspx?dg=microsoft.public.de.excel&tid=6cd15451-8db4-49c5-b416-328c617e8e1a&cat=de_DE_51272177-a45e-4eb0-84a1-79af866036b7&lang=de&cr=DE&sloc=&p=1
Hier ist das ganze Problem beschrieben,
...
Falls es um ein berechnetes Feld in einer Abfrage geht, dann könnte
xx_Zeit: 1-Rechts([Ereignis Zeit Von];Länge([Ereignis Zeit
Von])-Instr(1;[Ereignis Zeit Von];".")+1)
Wenn nicht, dann gib mal einen konkreten Wert bekannt, den
du mit dem Ausdruck behandeln willst und welches Ergebnis du dir
vorstellst. Deine Excel-Diskussion gibt darüber nur bedingt
Auskunft.
...
Wie schon in der Excel Diskussion gesagt wird, muss ich die Zeit
anzeigen. Sie kommt in einen negativen Format und zeigt den die
verbleibende Zeit des Tages an.
Die verbleibende Zeit ist nach dem Punkt.
Ich muss also die Stellen vor dem Punkt eliminieren.
Das ganze wird dann von 1 subtrahiert und habe die gewünschte Zeit.
Beim Import von Excel #Fehler
In Excel hat das Feld [Ereignis Zeit Von] folgendes Format
Datum/Uhrzeit
hh\:nn
Ich vermute stark das Problem von hier kommt.
Meine Nachfragen gingen nicht dahin, dass du die Excel-Diskussion
wiederholst, sondern ein paar konkrete Angaben lieferst. Letzter Versuch:

- In welchem Access-Objekt versuchst du diese Formel?
- Wie sieht dein Formelversuch jetzt genau aus?
- Was ist [Ereignis Zeit Von]? Ein Feld in einer eingebundenen
Excel-Tabelle? Ein berechnetes Feld in einer Abfrage? Oder was?
- Nenne einen konkreten Wert, den du siehst oder noch besser wirklich
vorliegen hast und umwandeln willst.
- Nenne das konkrete dazu gewünschte Ergebnis, das aus diesem
Wert entstehen soll.
- Keine Umschreibungen oder Interpretationen sondern Objekttypen,
Namen und ein echtes Beispiel.

Solange du nicht solche konkreten Aussagen machst, ist das
ein fruchtloses Herumgestochere.
--
Servus
Karl
********* Ich beantworte keine Access-Fragen per Email. *********
Access-FAQ: http://www.donkarl.com + Anmeldung und Info zur
Access-Entwickler-Konferenz (AEK12), Oktober 2009, Nürnberg
Leuenberger Christian
2009-10-28 10:24:25 UTC
Permalink
Post by Karl Donaubauer
Post by Leuenberger Christian
Post by Karl Donaubauer
Post by Leuenberger Christian
Post by Leuenberger Christian
In Excel funktioniert die Formel
Wie kann ich sie in Access einsetzen, die Function Suchen wird
nicht erkannt.
xx_Zeit: 1-Rechts([Ereignis Zeit Von];Länge([Ereignis Zeit
Von])-Suchen(".";[Ereignis Zeit Von];1)+1)
...
Es handelt sich um einen Import aus Excel
http://www.microsoft.com/communities/newsgroups/en-us/default.aspx?dg=microsoft.public.de.excel&tid=6cd15451-8db4-49c5-b416-328c617e8e1a&cat=de_DE_51272177-a45e-4eb0-84a1-79af866036b7&lang=de&cr=DE&sloc=&p=1
Hier ist das ganze Problem beschrieben,
...
Falls es um ein berechnetes Feld in einer Abfrage geht, dann könnte
xx_Zeit: 1-Rechts([Ereignis Zeit Von];Länge([Ereignis Zeit
Von])-Instr(1;[Ereignis Zeit Von];".")+1)
Wenn nicht, dann gib mal einen konkreten Wert bekannt, den
du mit dem Ausdruck behandeln willst und welches Ergebnis du dir
vorstellst. Deine Excel-Diskussion gibt darüber nur bedingt
Auskunft.
...
Wie schon in der Excel Diskussion gesagt wird, muss ich die Zeit
anzeigen. Sie kommt in einen negativen Format und zeigt den die
verbleibende Zeit des Tages an.
Die verbleibende Zeit ist nach dem Punkt.
Ich muss also die Stellen vor dem Punkt eliminieren.
Das ganze wird dann von 1 subtrahiert und habe die gewünschte Zeit.
Beim Import von Excel #Fehler
In Excel hat das Feld [Ereignis Zeit Von] folgendes Format
Datum/Uhrzeit
hh\:nn
Ich vermute stark das Problem von hier kommt.
Meine Nachfragen gingen nicht dahin, dass du die Excel-Diskussion
- In welchem Access-Objekt versuchst du diese Formel?
Abfrage (Anfügeabfrage)
Post by Karl Donaubauer
- Wie sieht dein Formelversuch jetzt genau aus?
XX_Zeit: 1-Rechts(Abs(Nz([Ereignis Zeit Von];0));Länge(Abs(Nz([Ereignis
Zeit Von];0)))-InStr(Abs(Nz([Ereignis Zeit Von];0));".";1)+1)
Post by Karl Donaubauer
- Was ist [Ereignis Zeit Von]? Ein Feld in einer eingebundenen
Excel-Tabelle? Ein berechnetes Feld in einer Abfrage? Oder was?
Eingebunde Exceltabelle
Post by Karl Donaubauer
- Nenne einen konkreten Wert, den du siehst oder noch besser wirklich
vorliegen hast und umwandeln willst.
-693993.881944444 im Excel File
00:00 in Access in der eingebunden Excel Tabelle
Post by Karl Donaubauer
- Nenne das konkrete dazu gewünschte Ergebnis, das aus diesem
Wert entstehen soll.
02:50
Post by Karl Donaubauer
- Keine Umschreibungen oder Interpretationen sondern Objekttypen,
Namen und ein echtes Beispiel.
Excel (Entwurfansicht in Access:Datum/Uhrzeit: hh\:nn
Access Tabelle:Zeit, 24Std: 00:00;0;_
Post by Karl Donaubauer
Solange du nicht solche konkreten Aussagen machst, ist das
ein fruchtloses Herumgestochere.
Thomas Möller
2009-10-28 10:50:40 UTC
Permalink
Hallo Christian,
Post by Leuenberger Christian
Post by Karl Donaubauer
- In welchem Access-Objekt versuchst du diese Formel?
Abfrage (Anfügeabfrage)
Post by Karl Donaubauer
- Wie sieht dein Formelversuch jetzt genau aus?
XX_Zeit: 1-Rechts(Abs(Nz([Ereignis Zeit Von];0));Länge(Abs(Nz([Ereignis
Zeit Von];0)))-InStr(Abs(Nz([Ereignis Zeit Von];0));".";1)+1)
Post by Karl Donaubauer
- Was ist [Ereignis Zeit Von]? Ein Feld in einer eingebundenen
Excel-Tabelle? Ein berechnetes Feld in einer Abfrage? Oder was?
Eingebunde Exceltabelle
Post by Karl Donaubauer
- Nenne einen konkreten Wert, den du siehst oder noch besser wirklich
vorliegen hast und umwandeln willst.
-693993.881944444 im Excel File
00:00 in Access in der eingebunden Excel Tabelle
Post by Karl Donaubauer
- Nenne das konkrete dazu gewünschte Ergebnis, das aus diesem
Wert entstehen soll.
02:50
Post by Karl Donaubauer
- Keine Umschreibungen oder Interpretationen sondern Objekttypen,
Namen und ein echtes Beispiel.
Excel (Entwurfansicht in Access:Datum/Uhrzeit: hh\:nn
Access Tabelle:Zeit, 24Std: 00:00;0;_
basierend auf diesen Angaben sollte Dich folgende Formel zum Ziel führen:

XX_Zeit: Format((1-([Ereignis Zeit Von]-Int([Ereignis Zeit
Von]))),"hh:nn:ss")



HTH
--
Thomas

Homepage: www.Team-Moeller.de
Leuenberger Christian
2009-10-28 11:16:20 UTC
Permalink
Besten Dank für die Hilfe

XX_Zeit: Format((([Ereignis Zeit Von]-Int([Ereignis Zeit Von])));"hh:nn:ss")

Mit dieser Formel wird die Zeit korrekt angezeigt

Gruss
Christian
Post by Thomas Möller
Hallo Christian,
Post by Leuenberger Christian
Post by Karl Donaubauer
- In welchem Access-Objekt versuchst du diese Formel?
Abfrage (Anfügeabfrage)
Post by Karl Donaubauer
- Wie sieht dein Formelversuch jetzt genau aus?
XX_Zeit: 1-Rechts(Abs(Nz([Ereignis Zeit
Von];0));Länge(Abs(Nz([Ereignis Zeit Von];0)))-InStr(Abs(Nz([Ereignis
Zeit Von];0));".";1)+1)
Post by Karl Donaubauer
- Was ist [Ereignis Zeit Von]? Ein Feld in einer eingebundenen
Excel-Tabelle? Ein berechnetes Feld in einer Abfrage? Oder was?
Eingebunde Exceltabelle
Post by Karl Donaubauer
- Nenne einen konkreten Wert, den du siehst oder noch besser wirklich
vorliegen hast und umwandeln willst.
-693993.881944444 im Excel File
00:00 in Access in der eingebunden Excel Tabelle
Post by Karl Donaubauer
- Nenne das konkrete dazu gewünschte Ergebnis, das aus diesem
Wert entstehen soll.
02:50
Post by Karl Donaubauer
- Keine Umschreibungen oder Interpretationen sondern Objekttypen,
Namen und ein echtes Beispiel.
Excel (Entwurfansicht in Access:Datum/Uhrzeit: hh\:nn
Access Tabelle:Zeit, 24Std: 00:00;0;_
XX_Zeit: Format((1-([Ereignis Zeit Von]-Int([Ereignis Zeit
Von]))),"hh:nn:ss")
HTH
Klaus Oberdalhoff
2009-10-29 01:46:06 UTC
Permalink
Hi,

Aha, es ist mal wieder Zeit für mein Datums-bla bla

============

In Access werden die Datumsfelder intern definitv als Zahl Typ Double
gespeichert, wobei der Vorkomma-Anteil (positiv wie negativ) die Anzahl der
Tage seit dem 30.12.1899 bedeuten und der Nachkommateil die "Fraction" des
Tages, d.h. die Uhrzeit. (0,5 = 12 Uhr) Zur Anzeige des Datums rechnet
Access intern das Datum immer um... (D.h. es wird IMMER ein "Zeitpunkt"
gespeichert)

Wenn "NUR" die Uhrzeit abgespeichert wird, ist die Tagesanzahl
(Vorkommateil) gleich 0 und umgekehrt, bei Datum ohne Uhrzeit ist der
Nachkommaanteil immer 0, d.h. Mitternacht. ...

Zweistellig angezeigt wird das Jahr des Datums deswegen, weil Access
standardmäßig (wenn kein Extra-"Format" gesetzt wurde) zur Anzeige des
Datums den Wert, der in der Systemsteuerung unter "Ländereinstellungen" Tab
Datum unter "Kurzes Datumsformat" eingestellt ist, verwendet.

Für diese Umrechnung gibt es diverse accessinterne Datums- und
Uhrzeitfunktionen (siehe Onlinehilfe), als da beispielsweise wären:

DateSerial
TimeSerial
Year
Month
Day
DateDiff
DateAdd
DatePart
Format (Parameter firstFourDays und vbMonday nicht vergessen)
Now
Weekday (Parameter vbMonday nicht vergessen)

=================================


Aber ich bräuchte eine Funktion, die zu einem bestimmten Datum ausrechnet,
in welche KW dieses Datum fällt.


Das geht immer mit dem Format-Statement (siehe Online-Hilfe)

=================================


Aber ich bräuchte das Datum in einem SQL-String

Für SQL musst du immer das Datum in einen "String" umwandeln.
Hier helfen zwei kleine Funktionen weiter, die der KnowHow.mdb (siehe
Signatur) entnommen wurde

Wenn der Uhrzeit-Teil (wie bei der Funktion SQLDatum) fehlt, wird immer
Mitternacht (0 <Null> Uhr 0 <Null> Minuten und 0 <Null> Sekunden)
angenommen, wenn der UhrzeitTeil benötigt wird, so muss die Funktion
DateTimeForSQL verwendet werden. (Siehe auch Access-FAQ
http://www.donkarl.com Punkt 3.13)

Function SQLDatum(Datumx) As String
'Macht aus irgendeinem gültigen Datum einen String #yyyy-mm-dd# (ISO-Norm
Datum)
If IsDate(Datumx) Then
SQLDatum = Format(CDate(Datumx), "\#yyyy\-mm\-dd\#", vbMonday,
vbFirstFourDays)
Else
SQLDatum = ""
End If
End Function

Function DateTimeForSQL(dteDate) As String
'Datum incl. Uhrzeit für SQL und INI-Files als String

' DateTimeForSQL = Format(CDate(dteDate), "\#yyyy\-mm\-dd h:nn:ss AM/PM
\#", vbMonday, vbFirstFourDays)
DateTimeForSQL = Format(CDate(dteDate), "\#yyyy\-mm\-dd hh:nn:ss\#",
vbMonday, vbFirstFourDays)

End Function

=================================


Ist es richtig, dass die erste Kalenderwoche immer die erste Woche im Jahr
mit mindestens 4 Tagen ist?
Wann fängt die Kalenderwoche an? Montag, oder Sonntag?


Das ist weltweit nicht einheitlich geregelt.

Für WestEuropa (d.h. zumindest für alle Staaten der EG sowie der Schweiz)
gilt irgendeine ISO-Norm seit den 1970-er Jahren des letzten Jahrtausends


Diese ISO-Norm besagt, daß für alle Staaten, die dieser Norm "beigetreten"
sind, gilt, daß die WochenNr mit der Nummer 1 (In Worten: "eins") die Woche
ist, die vier Tage hat, bzw. (was das Gleiche ist) die den Donnerstag
beinhaltet (vbFirstFourDays). In dieser ISO-Norm ist auch festgelegt, daß
der erste Tag der Woche der Montag (und nicht wie davor der Sonntag) ist.
(vbMonday) Der erste Tag der Woche ist vorallem für Kalenderhersteller
wichtig, da in dieser Norm auch drinsteht, daß der erste Tag der Woche als
erstes in der Kalendertageaufstellung stehen sollte. (also Mo Di Mi ... und
nicht So Mo Di ...)

In den USA gilt beides NICHT, dort ist immer die Woche die Nr 1 (in
Worten:eins), die den ersten Januar beinhaltet und der erste Tag der Woche
ist der Sonntag.

Wie es die anderen Staaten (die z.Tl. noch nach einem ganz anderen Kalender
!!! rechnen wie China oder Israel oder so) halten, ist mir nicht bekannt.
Auch für Rußland und Indien etc. weiß ich es nicht. Wenn du also für deine
Applikation das richtige tun willst, hast du folgende Möglichkeiten:

Du verwendest beim Format immer den Parameter adUseSystem oder du fragst es
explizit in deinem Programm ab oder du weißt, in welcher "Hemisphäre" dein
Programm verwendet wird und verwendest diese Einstellung fix. (ich verwende
z.B. in der KnowHow die europäische Norm fix)

Die in dem anderen Posting gezeigte Methode:


KW = Format(Datum,"ww",2,3)

ist definitiv für Europa und USA falsch, entweder

Europäisch, aber besser Konstantennamen verwenden, also
KW = Format(Datum,"ww", vbMonday, VbFirstFourDays)
KW = Format(Datum,"ww",2,2)


oder in den USA, d.h. amerikanisch:


KW = Format(Datum,"ww", VbSunday, VbFirstJan1)
KW = Format(Datum,"ww", 1, 1)
KW = Format(Datum,"ww") - Kurzform da default


oder Systemeinstellung verwenden:


KW = Format(Datum,"ww", vbUseSystem, vbUseSystem)
KW = Format(Datum,"ww", 0, 0)


===========================================
ACHTUNG: vbUseSystem ist NICHT die Defaulteinstellung, sondern 1,1 !!!
===========================================

Aus dem gleichen Grund ist bei den Pivot-(Kreuztabellen)-Formularen in
Access (ab Acc 2003) Vorsicht geboten, da die dort angebotene Wochen-
Pivotierung sich IMMER auf die AMERIKANISCHE Wochennummer bezieht und
daher in Westeuropa UNBRAUCHBAR ist. MS ist dieser Fehler bekannt, er
wird aber weder in Access 2003 noch im kommenden Access 2007 behoben
werden.

Ebenso findet sich in der KnowHow (oder als neuere Version ein Extrakt
in der Datei ObdKalender.zip bei www.freeaccess.de) ein komplettes
Kalendermodul, mit dem man auch eigene Feier- und Werktagsberechnungen
vornehmen kann. (Beschreibung dazu im Inneren des Moduls
mdlSonstigesDatumUhrzeit)

In diese Gruppe gehört die UmkehrFunktion Fkt_KWMon aus dem Modul
mdlSonstigesDatumUhrzeit, mit deren Hilfe man den Montag einer
(europäischen) Kalenderwoche berechnen kann, das ich aus der Access-FAQ
entlehnt habe ...
--
mit freundlichen Grüßen aus Nürnberg

Klaus Oberdalhoff

Ich beantworte keine NG-Fragen und -Nachfragen per Mail!
Newbie-Info: http://www.doerbandt.de/Access/Newbie.htm
KnowHow-mdb: http://www.freeaccess.de
Sofern Access 200x bitte beachten:
http://www.freeaccess.de/MS-Access-Artikel.asp?ID=99

Ich unterstütze SQL PASS Deutschland e.V. (http://www.sqlpass.de)
als Regionalverantwortlicher (Franken)
Nächstes Treffen in Nürnberg am 13.10.2009
Loading...