Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

problema con DB access

Hai problemi con i file Zip, vuoi formattare l'HD, non sai come funziona FireFox? O magari ti serve proprio quel programmino di cui non ricordi il nome! Ecco il forum dove poter risolvere i tuoi problemi.

Moderatori: Dylan666, hydra, gahan

problema con DB access

Postdi ciscu » 24/05/03 09:47

Saluti a tutti
Ho un problema con access che non riesco a risolvere,
devo convertire in una query i record di un campo che contengono valori di tipo testo ma recano anche scritte delle date
esempio
[successivo 12/02/03]
[nessuna scadenza ]
[successivo 25/03/03]

quello di cui ho bisogno è creare un nuovo campo che elimini la parte testuale e visualizzi solamente la data (premetto che tutti i record dai quali vorrei estrapolare la data sono sempre preceduti dalla scritta successivo )
in parte la questione la ho risolta usando la funzione Right$ riuscendo quindi ad estrapolare solamente la data , ma il vero problema è che successivamente dovrei creare un nuovo campo dove calcolarmi i giorni trascorsi dalla data ricavata alla data corrente
cosa che usando la funzione date() – [nome campo] dovrebbe essere possibile, invece il risultato è una bella scritta errore su tutti i record.
l'errore credo sia dovuto perché il programma non riconosce il tipo di formato del campo come formato data e di conseguenza non fa la sottrazione tra le due date
purtroppo le mie conoscenze limitate non mi permettono di trovare una soluzione ( sempre che sia possibile)
se qualcuno ha qualche idea gli sarei veramente molto grato

vorrei premettere che non sarebbe necessario aggiungere questi due campi su una query ,ma andrebbe benissimo anche su una maschera o un report

aggiungo ancora una cosina
i dati arrivano da un database esterno che risiede su un server quindi la soluzione forse più logica che è quella di dividere il campo in oggetto (quello con scritto successivo e data ) in due campi uno per la data e uno per la descrizione non mi è possibile perchè non ho le autorizzazioni necessarie( e non credo me le daranno mai J)del database di origine

Spero di essere riuscito a spiegarmi sufficientemente
Ringrazio tutti
ciscu
ciscu
Newbie
 
Post: 7
Iscritto il: 24/05/03 09:36

Sponsor
 

Postdi Triumph Of Steel » 24/05/03 11:05

secondo me il problema sta nel fatto che la data non viene riconosciuta perchè non è una data, ma una stringa...

l'unica cosa è salvare la data estrapolata ( e ci sei riuscito ), e registrarla in un campo del DB "DATA"... allora si che poi riesci a fare le sottrazioni...
Avatar utente
Triumph Of Steel
Moderatore
 
Post: 7852
Iscritto il: 22/08/01 01:00

Postdi piercing » 24/05/03 11:30

la funzione che devi utilizzare è questa:

Giorni: DateDiff("g";CDate(Right([flddate];8));Now())

che in pratica ti da il numero di Giorni tra la data odierna e quella definita nel campo flddate.

E'ovviamente migliorabile in funzione di ciò che devi fare... ma così funziona sicuramente (e l'ho anche provata).

Ti consiglio di fare una RTrim del campo flddate per essere sicuro che la data si trovi esattamente alla fine del campo di testo e non ci siano spazi vuoti.

Ti consiglio infine di non fare tutto con un singolo passaggio, ma di aggiungere un campo data in tabella, fare una query di aggiornamento inserendo le date estratte per poi fare la differenza.

Solo in questo modo puoi correggere manualmente quei casi strani in cui, magari, le data sono state scritte come tu non ti aspetti...

Ciao...
Avatar utente
piercing
Moderatore
 
Post: 7569
Iscritto il: 10/04/02 10:34
Località: Roma

Postdi piercing » 24/05/03 11:31

Maledetto Edit!!

Codice: Seleziona tutto
Giorni: DateDiff("g";CDate(Right([flddate];);Now())
Avatar utente
piercing
Moderatore
 
Post: 7569
Iscritto il: 10/04/02 10:34
Località: Roma

Postdi ciscu » 24/05/03 14:46

Ragazzi non ho parole per ringraziarvi :) :) :) :)
con la funzione CDate e Right converto nel formato giusto la data che estrapolo
in un altro campo con DateDiff mi calcolo i giorni trascorsi
l’espressione che mi ha descritto piercing è sicuramente più pratica (elimina un passaggio)
tuttavia mi serve visualizzare anche un campo che contenga solamente la data (più per esigenza dimostrativa che applicativa)
ho aggiunto una IIf per riportare i valori che non contenevano date ,cosi da eliminare la scritta errore che compariva in quei record che non potevano essere convertiti
grazie ancora senza il vostro aiuto non credo ce l’avrei fatta
Saluti
ciscu
ciscu
Newbie
 
Post: 7
Iscritto il: 24/05/03 09:36


Torna a Software Windows


Topic correlati a "problema con DB access":

Problema Windows 10
Autore: asso1998
Forum: Software Windows
Risposte: 1

Chi c’è in linea

Visitano il forum: Nessuno e 15 ospiti