Vai al contenuto
PLC Forum


Vb Net 2005 + Access 2003 - Le date in access vengono invertite


morgana555

Messaggi consigliati

Salve a tutti,avrei un problema!

Sto sviluppando un applicazione in cui da un'interfaccia che ho creato in visual basic 2005.net,vado a visualizzare o modificare i dati contenuti in un data base

access 2003,in pratica un applicazione gestionale.Nel momento in cui inserisco,con una insert,una data,questa viene inserita nel db correttamente.Ciò non succede nel momento in cui con la stessa data voglio aggiornare una scadenza con un'update del tipo:

Update apparati set scad_manutenzione = #" & indata & "# + 180 where matricola

= ' " & matricola & " ' "

indata è la variabile contenente la data inserita con la insert,matricola è la variabile contenente la matricola dell'apparato manutenzionato,apparati è il nome della tabella e scad_manutenzione è il nome del campo da aggiornare.

Il problema sta nel fatto che la data viene inserita nel data base,ma con il giorno ed il mese invertiti(Es. 01/09/2011 diventa 09/01/2011)

Aggiungo che ho provato ad utilizzare la seguente funzione ma il problema permane:

Update apparati set scad_manutenzione = #" & Format(indata,"#\yyyy\-mm\-dd\#") & "# + 180 where matricola= ' " & matricola & " ' " .

Spero di essere stato il più chiaro possibile e vi ringrazio in anticipo per un'eventuale soluzione,un saluto by Tommy!!! wallbash.gifrolleyes.gif

Link al commento
Condividi su altri siti


rolleyes.gif Se hai usato un campo del tipo Date, dovevi forzare la formattazione della stringa in Access al momento della creazione, scegliendo il formato dd/mm/yyyy...
Link al commento
Condividi su altri siti

Scusami GiRock,ma intendi al momento della creazione del db?E se sì:

cosa intendi per forzare?e nel caso,non sarebbe possibile farlo adesso,dal

momento che i dati inseriti nel db sono solo di prova e quindi potrebbero tranquillamente essere cancellati? blink.gif

Link al commento
Condividi su altri siti

Nelle proprietà del campo in Access, dovresti sicuramente avere la maschera di formattazione quando scegli il tipo Date con dei presets selezionabili...

biggrin.gif Basterà scegliere il formato di tuo gusto ed il gioco è fatto...

Link al commento
Condividi su altri siti

Scusami GiRock se ti rispondo solo ora ma ho avuto da fare.

Il problema non riguarda la scelta del formato data in visualizzazione struttura.

Il fatto è che in access,quando si deve aggiornare un campo date,

se la query la si inserisce all'interno(di access) nell'ambiente preposto per

inserire il codice sql, la data deve essere inserita in questo modo:

#anno/mese/giorno# per ottenere il risultato voluto,cioè per es.:

(Update lavori set scadenza = #2011/02/09# + 11)sarà = a 20/02/2011

e quest'ultima data verrà inserita nel campo scadenza.

Il problema sorge nel momento in cui si vuole far sì che sia l'utente utilizzatore di

un'interfaccia visual basic.net 2005 ad inserire le date.Quindi,escludendo il fatto che sia l'utente a dover inserire le date invertite,cercavo un modo,

una funzione,un oggetto che inserito nel codice vb,inverta le date inserite dall'utente.Scusami se mi sono dilungato e spero di essere stato il più chiaro possibile,by!!! blink.gif

Link al commento
Condividi su altri siti

Per la mia conoscenza riguardante la funzione Format potresti forzare il tipo con CDate per vedere se risovi, altrimenti se devi sommare i giorni alla Data, c'è sempre DateAdd in VB con la sintassi: DateAdd(Data, cosa(giorni, mesi, anni), numero da aggiungere), es. DateAdd("09/02/2011", "d", 180) rispettando sicuramente il formato inserito precedentemente...

cool.gif Se poi non risolvi ancora, ci faremo venire in mente qualche altra soluzione...

Link al commento
Condividi su altri siti

  • 2 weeks later...

Ciao GiRock,scusa il tempismo ma come al solito non sto al pc sempre!

Ho provato ad utilizzare sia dateadd che non mi risolve il problema,

sia cdate, che provandolo ho capito che serve a convertire un campo stringa

in data,ed anche in questo caso non mi risolve il problema dato che la variabile

indata l'ho dichiarata di tipo Date.Morale della favola credo che mi servirebbe semplicemente invertire la data contenuta nella variabile indata,

da dd/mm/yyyy a yyyy/mm/dd.Questo perchè la variabile ndata a sua volta

viene inserita in una query sql e di conseguenza access legge la data al contrario(formato anglosassone)!!!

Scusami se ogni volta scrivo un papiro,ma lo faccio per cercare di essere il più chiaro possibile..saluti..tom!!

Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...