Sottrazione campo ora

di Anonimizzato16249 il
7 risposte
Ciao a tutti, devo poter fare la sottrazione di n ore su un campo di un report.
L'obiettivo e avere nel report la data dell'ordine e di fianco a questa ora un campo calcolato che è l'orda dell'ordine meno tre ore.

ho provato così ma non funziona
=DateDiff(“h”, [ora_ritiro])-3
HELP

7 Risposte

  • Usa la Funzione DateADD che è più adatta...:
    
    Function DateAdd(Interval As String, Number As Double, Date)
        Membro di VBA.DateTime
    Da usare così
    
    =DateAdd(“h”,-3, [ora_ritiro])
    Questa è la prova, attenzione al formato...
    
    ?Dateadd("h",3,"15:00:02")
    18:00:02
    ?Dateadd("h",-3,"15:00:02")
    12:00:02 
     
  • Mm mi viene fuori questo messaggio :

    Errore di sintassi nell'espressione della query 'First([DateAdd(“h”,-3, [ora_ritiro])])',

    io ho inserito nel campo del report sotto Origine di controllo
    DateAdd(“h”,-3, [ora_ritiro])
    senza = perchè se lo inserisco mi compare errore di sintassi nell'espressione, operando o operatore mancante, carattere o virgola non valida oppure testo immesso non racchiuso tra vingolette

    come formato del campo ho messo Ora breve 24h
  • asnaldo ha scritto:


    Errore di sintassi nell'espressione della query 'First([DateAdd(“h”,-3, [ora_ritiro])])',

    io ho inserito nel campo del report sotto Origine di controllo
    DateAdd(“h”,-3, [ora_ritiro])
    senza = perchè se lo inserisco mi compare errore di sintassi nell'espressione, operando o operatore mancante, carattere o virgola non valida oppure testo immesso non racchiuso tra vingolette
    E' sempre la solita questione di dove uno opera, se da interfaccia grafica in italiano o da codice. In quelle situazioni sostituisci la virgola di separazione degli argomenti con il puntoevirgola.
    Perché ora compare anche un First? Nel primo post non c'era.
  • Uso access 2013 e sono in struttura report ti allego immagine per capire meglio
    se inserisco
    =DateAdd(“h”;-3;[ora_ritiro])
    il programma in automatico me lo trasforma in
    =DateAdd([“h”];-3;[ora_ritiro])

    e quando lo eseguo mi comprare un messaggio che chiede “h”, non gli scrivo niente e dò ok e nel campo mi compare #Tipo!
    Allegati:
    16249_718067c71be92cdc7fa377f28456aea4.jpg
    16249_718067c71be92cdc7fa377f28456aea4.jpg
  • Prova con l'apice semplice (') al posto dell'apice doppio (")
  • asnaldo ha scritto:


    uso access 2013 e sono in struttura report ti allego immagine per capire meglio
    se inserisco
    =DateAdd(“h”;-3;[ora_ritiro])
    il programma in automatico me lo trasforma in
    =DateAdd([“h”];-3;[ora_ritiro])

    e quando lo eseguo mi comprare un messaggio che chiede “h”, non gli scrivo niente e dò ok e nel campo mi compare #Tipo!

    gibra ha scritto:


    Prova con l'apice semplice (') al posto dell'apice doppio (")
    Su A2010 non ho alcun problema di trasformazione forzata con aggiunta della parentesi quadra automatica, sia che scriva con l'apice semplice, sia con l'apice doppio. Scrivo la funzione e quella rimane. Non saprei.
  • OLE FUNZIONA CON QUESTO CODICE :
    
    =DateAdd("h";-3;[ora_ritiro])

Devi accedere o registrarti per scrivere nel forum
7 risposte