Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: DerKraken am Februar 22, 2014, 15:30:46

Titel: Formel ändern
Beitrag von: DerKraken am Februar 22, 2014, 15:30:46
Tja, wenn eine Anfrage nicht zum erwarteten Ziel führt, ist es auch keine Lösung seine Beiträge SO zu ändern.
Vielen Dank an 'DerKraken' - die Forumsgemeinde wird's zu schätzen wissen



   Formel zu Komplex?  Neu
Begonnen von mioBoard Access-Hilfe
Antworten: 12
Aufrufe: 1472    Letzter Beitrag Oktober 08, 2010, 19:22:23
von database
   Formel Hilfe
Begonnen von boehnli01Board Tabelle/Abfrage
Antworten: 3
Aufrufe: 1062    Letzter Beitrag Juli 26, 2011, 16:59:21
von boehnli01
   Formel Hilfe  Neu
Begonnen von boehnli01Board Formular
Antworten: 8
Aufrufe: 1394    Letzter Beitrag August 14, 2011, 12:00:48
von boehnli01
   Problem mit formel kopieren!?  Neu
Begonnen von silentwolfBoard Microsoft Excel
Antworten: 1
Aufrufe: 1574    Letzter Beitrag März 01, 2011, 14:09:48
von silentwolf
   WENN-DANN-Formel in Abfrage  Neu
Begonnen von LaraBoard Tabelle/Abfrage
Antworten: 2
Aufrufe: 3699    Letzter Beitrag Mai 09, 2011, 16:03:30
von Lara
   Suche eine Formel wer kann mir da helfen?  Neu
Begonnen von samuraiBoard Microsoft Excel
Antworten: 3
Aufrufe: 853    Letzter Beitrag September 07, 2012, 19:02:13
von samurai
   zuordnung mehrerer Datensätze zu einer ID mit WENN Formel  Neu
Begonnen von xerxesxeBoard Tabelle/Abfrage
Antworten: 3
Aufrufe: 1315    Letzter Beitrag Mai 20, 2011, 10:22:45
von xerxesxe
   Problem mit einer Formel weil immer #WERT ausgegeben wird.  Neu
Begonnen von samuraiBoard Microsoft Excel
Antworten: 2
Aufrufe: 546    Letzter Beitrag Oktober 12, 2012, 15:24:01
von samurai
   Problem beim Aufzeichnen eines Makros einer Formel in Excel 2010  Neu
Begonnen von PergusBoard Microsoft Excel
Antworten: 0
Aufrufe: 554    Letzter Beitrag April 15, 2013, 16:33:50
von Pergus
   BE ändern  Neu
Begonnen von Walter P.
Titel: Re: Formel ändern
Beitrag von: database am Februar 22, 2014, 17:05:58
Hallo,

und wo steht die Formel - in einem Berichtsfeld oder in der zu Grunde liegenden Abfrage?

Wie lautet die Formel jetzt?
Titel: Re: Formel ändern
Beitrag von: Hondo am Februar 22, 2014, 17:36:56
Hallo,
diese ist entweder in einer Abfrage verborgen oder im VBA-Code.
Da wir (noch) nicht hellsehen können musst du nachsehen wo das steht - oder eine gezippte Version der Datenbank hochladen damit wir nachsehen können.

Andreas
Titel: Re: Formel ändern
Beitrag von: DF6GL am Februar 22, 2014, 18:15:03
Hallo,


mach's einfach ...  8)
Titel: Re: Formel ändern
Beitrag von: MzKlMu am Februar 22, 2014, 18:37:14
Hallo,
zu welcher der errechneten Durchschnittszeiten willst Du 10 Minuten addieren?
Titel: Re: Formel ändern
Beitrag von: DF6GL am Februar 22, 2014, 18:44:27
Hallo,


welchen Datentyp haben die "Zeitfelder"?


Wenn "Datum/Uhrzeit" vorliegt, dann kann mit der Dateadd-Funktion eine Zeit(spanne) hinzu addiert werden:

Format(DateAdd("n","10",Avg([ConvTime]))/86400,"nn:ss") AS avgConvTime
Titel: Re: Formel ändern
Beitrag von: DF6GL am Februar 22, 2014, 18:59:34
Hallo,

Total von WAS?

Du musst schon wissen, was die einzelnen Felder inhaltlich bedeuten....

Es kann schon sein, dass eine Total-Zeit im Bericht selber berechnet wird und nicht in der zugrundeliegenden Abfrage.


Ein Beispiel für die Dateadd-Funktion hab ich doch gepostet... 
Titel: Re: Formel ändern
Beitrag von: database am Februar 22, 2014, 19:52:57
Hallo,

hier --> SELECT ID_TV AS Person,dbo_Ident.Prenom+ " " +dbo_Ident.Nom AS Personname, Count(*) AS Totale, Format(DateAdd("n","10",Avg([ConvTime]))/86400,"nn:ss") AS avgConvTime, Format(Avg([WrapUpTime ....

und hier -->  UNION SELECT 'Total:','', count(*), Format(DateAdd("n","10",Avg([ConvTime]))/86400,"nn:ss"), Format(avg(WrapUpTime .....
Titel: Re: Formel ändern
Beitrag von: database am Februar 23, 2014, 08:53:21
Hallo,

aber gehhhh!

du solltest ja die grünen Textstellen nicht ZUSÄTZLICH in dein SQL-Statement übernehmen sondern gegen die Originale austauschen!

ZitatPS: Beim ersten Beispiel hast du etwas geschrieben das nicht grün markiert ist und nicht im Original steht. Oder?
Definitiv NICHT


Hier hast du mal das gesamte Statement, wie es bei dir nach der Änderung aussehen müsste:

SELECT ID_TV AS Person,
    dbo_Ident.Prenom+ " " +dbo_Ident.Nom AS Personname,
    Count(*) AS Totale,
    Format(DateAdd("n","10",Avg([ConvTime]))/86400,"nn:ss") AS avgConvTime,
    Format(Avg([WrapUpTime])/86400,"nn:ss") AS avgWrapupTime,
    Format(Avg([WaitTime])/86400,"nn:ss") AS avgWaitTime,
    Format(Avg([ExternalTime])/86400,"nn:ss") AS avgExternalTime,
    Sum(abandon) AS Abgeworfen
        FROM tmp_spiellist LEFT OUTER JOIN dbo_Ident ON dbo_Ident.Ident = tmp_spiellist.ID_TV
        GROUP BY ID_TV, dbo_Ident.Prenom+ " " +dbo_Ident.Nom
UNION SELECT 'Total:',
    '',
    count(*),
    Format(DateAdd("n","10",Avg([ConvTime]))/86400,"nn:ss"),
    Format(avg(WrapUpTime)/86400,"nn:ss"),
    Format(avg(WaitTime)/86400,"nn:ss"),
    Format(avg(ExternalTime)/86400,"nn:ss"),
    Sum(abandon)
FROM tmp_spiellist;


Da gibt's keine doppelten Aliase und keine unterschiedlichen Spaltenanzahlen.  ;)
Titel: Re: Formel ändern
Beitrag von: Hondo am Februar 23, 2014, 21:32:34
=Format(DatAdd("n";10;Mittelwert([ConvTime]))/86400;"nn:ss")
Titel: Re: Formel ändern
Beitrag von: DF6GL am Februar 24, 2014, 19:40:46
Hallo,

wenn die "Totale" die ungebundenen Felder sind, die im Berichtssfuß platziert sind, dann werden die vermutlich in der Format-Ereignisprozedur des Berichtsfußes mit VBA-Code berechnet.  Schau also im VBA-Editor nach und poste den Code, der dort zu finden ist...
Titel: Re: Formel ändern
Beitrag von: DF6GL am Februar 24, 2014, 20:05:24
Hallo,


ok, hier fügst Du die Formel(n) ein  (der grüne Teil ist evtl. nötig.):


    Else
            Me.totale  = Format(DateAdd("n",10,Cdate(rst![totale]))   '<edit>   Gänsefüße um 10 entfernt
            Me.avgConvTime = rst![avgConvTime]
            Me.avgWrapupTime = rst![avgWrapupTime]
            Me.avgWaitTime = rst![avgWaitTime]
            Me.avgExternalTime = rst![avgExternalTime]
        End If
    End With
Titel: Re: Formel ändern
Beitrag von: bahasu am Februar 27, 2014, 05:36:57
Hi,
Zitat von: DerKraken am Februar 27, 2014, 01:39:47
Format(DateAdd("n","10",Avg([ConvTime]))/86400,"nn:ss") AS

üblicherweise wird die bei
DateAdd(interval, number, date)
zu übergebene Zahl nicht mit "" eingeklammert. Was passiert, wenn Du die "" weglässt?

Habe nun nicht alles gelesen, daher ist der folgende Hinweis bitte mit Nachsicht zu verstehen:
Ich kann mir vorstellen, dass die Schwierigkeiten mit den nicht passenden Zeitintervall-Vorgaben (Minute "n" vorgeben, um Sekunden zu erreichen) dadurch verursacht ist, dass Dein Zeitformat "nn:ss" von "hh:mm:ss" abweicht.

Harald
Titel: Re: Formel ändern
Beitrag von: DF6GL am Februar 27, 2014, 08:18:29
Hallo,

stimmt, die Gänsefüße sind bei meinen letzten Post durch's Kopieren (wieder)hineingerutscht und müssen natürlich entfernt werden :'(


Hab's im Beitrag korrigiert.
Titel: Re: Formel ändern
Beitrag von: DF6GL am Februar 28, 2014, 08:35:07
Hallo,


1)
Es wird die Abfrage totaleViewSpieler geöffnet und deren Ergebnisse auf dem Monitor angezeigt. (Wenn nicht auskommentiert)

Sodann wird mit der Prozedur makeXLSTotale (vermutlich) der Export durchgeführt.

Wie lautet der Code dieser Prozedur?

2)
Es handelt sich hier nicht um eine "Datei", das ist eine (Union-) Abfrage und ist somit auch im Abfragebereich der Navileiste zu finden.


3)

Es scheint sich um ein SQL-Server-Backend zu handeln. Wie heißt die Dateierweiterung der Access-Datei (mdB, accdb, adp ) ?
Ist der SQL-Code (ohne die Gänsefüße um die 10) fehlerfrei gespeichert worden?
Was passiert, wenn direkt auf die Abfrage im Navibereich doppelt geklickt wird?
Titel: Re: Formel ändern
Beitrag von: database am März 09, 2014, 09:36:06
Hallo,

1)
Sehr wahrscheinlich befindet sich diese Prozedur in einem Modul, wenn sie im Code-Teil des Formulars nicht zu finden ist.

Zitat- Die Dateierweiterung ist .mdb. Während es geöffnet ist erstellt sich von selbst im Ordner eine .Ldb-Datei. Diese verschwindet nach dem Schliessen der .mdb Datei.
Das ist ein ganz normaler Vorgang, brauchst deswegen nicht beunruhigt sein.  :)

Zitat- Wenn man auf die Abfrage "totaleViewSpieler" doppelklickt kommen die Ergebnisse der letzten Abfrage in einer Tabelle. (Keine Excel- sondern "Access-Tabelle")
Da es sich um eine Access-Abfrage handelt werden die Ergebnisse dieser Abfrage auch in Form einer Accesstabelle DARGESTELLT.

@Franz
ZitatEs scheint sich um ein SQL-Server-Backend zu handeln
Bin mir auch sicher, dass es das ist, kaum ein Access-Mensch wird seine Tabellen mit dem Präfix dbo_ benennen

Es ist die Frage, ob es sich bei den Tabellen um eingebundene SQL-Server-Tabellen handelt - dann nämlich kann es schon sein, dass die DATEADD - Funktion nicht Access- sondern SQL-Serverkonform geschrieben werden muss.

DATEADD(minute, 10, .....)


Was mich aber auch die ganze Zeit schon brennt...
ZitatIch habe eine Accessdatei von einem bekannten bekommen....
Dann musst du auch den SQL-Server 'geerbt' haben, im privaten Umfeld etwas seltsam (für MICH)
Warum machst du eigentlich aus der ganzen Sache so ein riesen Geheimnis, dass du sogar Abfragenamen in einem Bildchen ausgraust?
Wird die DB kommerziell eingesetzt? Im Umfeld von Sportwetten?
Titel: Re: Formel ändern
Beitrag von: database am März 09, 2014, 11:44:43
hallo,

ZitatMit Sportwetten haben wir nichts am Hut, auch kommerziell sind wir nicht
Nicht falsch verstehen, ich frage das interessehalber, habe FRÜHER, ganz FRÜHER mal in dem Umfeld ein wenig programmiert ... deshalb   8) ::)
Titel: Re: Formel ändern
Beitrag von: database am März 09, 2014, 20:36:05
Dein Problem hat nichts mit meiner früheren Tätigkeit zu tun ...   ::)

Zitat-> Soll ich es demnach mit dem hier versuchen?:
Naja, was hält dich davon ab ... ja, versuch mal

Mal sehen ob ich auf die Schnelle eine SQL Server-Tabelle und ein Frontend dazu zusammenschieben kann - das interessiert mich jetzt schon
Titel: Re: Formel ändern
Beitrag von: database am März 09, 2014, 21:14:59
Hallo,

DateAdd(minute, 10...
ist nur am SQL-Server selbst verwendbar, nicht in einer Access Abfrage.

Bei der Ausführung der Abfrage meckert Access die AVG-Funktion in Kombination mit DateAdd an

Format(DatAdd('n';10;[Zeitfeld]);'hh:nn:ss') funktioniert einwandfrei, zur erfassten Zeit werden die 10 Minuten dazugezählt.

Ist natürlich auch nicht ganz einfach das nachzuvollziehen - welchen Wert enthält denn z.B. ConvTime ? das müsste eigentlich ein Long-Wert sein wenn der durch 86400 dividiert wird - oder ?
Titel: Re: Formel ändern
Beitrag von: DF6GL am März 10, 2014, 07:49:34
Hallo,

es könnte auch sein, dass die AVG-Funktion keinen "echten" Datumswert (bzw. Zeitwert) liefert und Dateadd den gar nicht versteht... Insofern könnte die explizite Umwandlung in einen Datumswert helfen:

Format(DateAdd("n", 10, Cdate(Avg([ConvTime])))/86400,"nn:ss")



Zitatdas müsste eigentlich ein Long-Wert sein wenn der durch 86400 dividiert wird -

Also ich kann auch einen Double-Wert (--> Datumswert) durch einen Long-Wert dividieren ...  :P :D ;)
Titel: Re: Formel ändern
Beitrag von: database am März 10, 2014, 15:12:11
Hallo,
ZitatAlso ich kann auch einen Double-Wert (--> Datumswert) durch einen Long-Wert dividieren
womit du allerdings zweifelsfrei recht hast  ;D ;D
Titel: Re: Formel ändern
Beitrag von: Hondo am April 28, 2014, 09:34:42
Hä? wo sind denn die Antworten des Themenstellers geblieben?