Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it L'avatar di LMondi
    Registrato dal
    Sep 2004
    Messaggi
    1,291

    VB6-Selezione records in base anno da BD Access.

    Vorrei eseguire una selezione di records in base all'anno di appartenenza, avendo una data del tipo: 5 Dicembre 2005, quindi non formattata ed a inserimento manuale da parte dell'utente.
    A Vs. parere l'operazione è fattibile, o conviene invece modificare l'inserimento della data, imponendo il formato all'atto della digitazione, secondo quanto chiaramente illustrato da Boolean e da Oregon in questo post http://forum.html.it/forum/showthrea...hreadid=933994
    Se volessi acquisire il solo anno (in blue)e poi fare un confronto fra stringhe, il risultato potrebbe determinare inconvenienti nella selezione dei records dal DB ?
    Grazie per i Vs. pareri.
    LM

  2. #2
    salva la data in un campo di tipo data,
    imponendo quindi l'inserimento di giorno, mese ed anno

    poi estrai i record con una query del tipo

    codice:
    SELECT ...... FROM ....... WHERE Year(campo_data) = anno
    prude il dito, lui sdraiato
    ha giocato a guardie e ladri col ladro sbagliato

  3. #3
    Utente di HTML.it L'avatar di LMondi
    Registrato dal
    Sep 2004
    Messaggi
    1,291
    GudFella grazie per la risposta.
    Si deve però considerare che questo tipo di formato è un pò, come dire, ostico per il normale utente ... ,dato che esce dallo schema usuale per noi latini.
    LM

  4. #4
    Originariamente inviato da LMondi
    GudFella grazie per la risposta.
    Si deve però considerare che questo tipo di formato è un pò, come dire, ostico per il normale utente ... ,dato che esce dallo schema usuale per noi latini.
    fai salvare all'utente la data nel formato europeo giorno - mese - anno
    nel momento in cui lo salvi lo converti nel formato americano anno - mese - giorno
    prude il dito, lui sdraiato
    ha giocato a guardie e ladri col ladro sbagliato

  5. #5
    Utente di HTML.it L'avatar di LMondi
    Registrato dal
    Sep 2004
    Messaggi
    1,291
    Sì, penso che farò in questo modo.
    LM

  6. #6
    Utente di HTML.it L'avatar di LMondi
    Registrato dal
    Sep 2004
    Messaggi
    1,291
    Scusate se riprendo questo post.
    Come accennato ho provveduto alla trasformazione della data da digitare in una Txt nel formato 15/1/2003, poi con la funzione indicata da Boolean:
    ' Trasforma nel formato #mm/dd/yyyy# la Data digitata:
    sDataDig = FrmInfo.txtPP(1).Text
    sDataDB = DateConv(sDataDig)

    nella variabile stringa sDataDB ottengo il formato "#1/15/2006#"
    Ho cambiato il tipo di dati nel relativo Campo del DB in Data/ora,
    ma nella query ove passo la variabile sDataDB ottengo un errore: <Tipi di dati non corrispondenti nell'espressione criterio.>

    Mi potreste dire dove sbaglio?
    LM

  7. #7
    Utente di HTML.it L'avatar di LMondi
    Registrato dal
    Sep 2004
    Messaggi
    1,291
    Tanto per concludere, perchè le cose lasciate in sospeso non mi piacciono, e poi potrebbe far comodo ad altri.
    Tutto quello sopra esposto non serve a niente, anzi ha determinato un'inutile perdita di tempo per le inumerevoli prove fatte.
    Il mio DB, Access 2000, accetta la data in formato numerico del tipo 18/1/2006 (data breve), pertanto senza alcuna conversione (da gg/mm/aaaa ./. mm/gg/aaaa).... . Ritengo che questo sia dovuto alle impostazioni "Opzioni internazionali e della lingua" del SO.
    Di tutto ciò mi piacerebbe avere conferma.
    LM

  8. #8
    quello che dici è vero... ma devi stare attento a quando fai la query di selezione su questa tabella... la data nelle query devi esporla nel formato americano.. provaci
    I database... la mia passione + o -

  9. #9
    Utente di HTML.it L'avatar di LMondi
    Registrato dal
    Sep 2004
    Messaggi
    1,291
    Ciao power.mobile,
    il mio timore era proprio quello da te esposto. Invece ... funziona benissimo. Nella Tbl del DB la data è archiviata in formato numerico ridotto tipo: 10/1/2006 e risponde alla query:

    codice:
    RSTa.Source = "SELECT RegLodi, Deposito, Proponente, Resistente, ValControver FROM TblRegistro WHERE Year(Deposito)='" & sAnnoRic & "'"
    RSTa.Open , ConA, adOpenDynamic, adLockOptimistic
    dove sAnnoRic è una variabile stringa caricata con InputBox.
    Certo che sul fatto delle date in Access c'é molta indeterminatezza; ora lo posso affermare con cognizione di causa, dato che ho spulciato la guida Access, ed ho eseguito diverse ricerche in rete.
    Daltronde il formato sopra proposto (dopo la conversione in mm/gg/aaaa) NON veniva accettato: <Tipi di dati non corrispondenti nell'espressione criterio.>.
    Qualche dubbio, nonstante tutto, permane ...
    LM

  10. #10
    codice:
    RSTa.Source = "SELECT RegLodi, Deposito, Proponente, Resistente, ValControver FROM TblRegistro WHERE Year(Deposito)='" & sAnnoRic & "'" RSTa.Open , ConA, adOpenDynamic, adLockOptimistic
    in questa query non hai problemi perchè ti tiri fuori l'anno... ma se fai una query dove immetti la data per intero vedrai quali sono i problemi....
    I database... la mia passione + o -

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.