Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    100

    problema vba access e date

    salve,ho un problema con vba in access interfacciato tramite odbc ad oracle.
    In pratica,quando cerco di fare un confronto su una data,ke a sua volta tale valore è frutto di una query di selezione da una tabella,il confronto tra le due date non avviene!
    esempio:
    tabella(utente) formata da:ID(pk),matricola,data,alimenti
    ho 3 combobox:matricola,data,alimenti

    form on load = "select matricola from utente"(e piazza tutto in combobox matricola)OK viene eseguito

    matricola change("select data from utente where matricola='" & matricola.value & "'")(e cerca in base alla matricola selezionata le date ke possiede e le piazza nella combobox data)OK viene eseguito

    data change("select alimenti from utente where matricola ='" & matricola.value & "' and data=#" & data.value & "#")(cerca gli alimenti dove data e matricola sono uguali ai valori dei combobox)posto il codice ke uso x aprire il database...

    Dim con As ADODB.Connection
    Dim rst As ADODB.Recordset
    Set con = CurrentProject.Connection
    Set rst = New ADODB.Recordset
    rst.Open "qui va a finire una delle query inserite sopra"

    popolo le combobox cosi'
    do until rst.eof
    combobox.additem(rst.fields("nomecampo"))
    rst.movenext
    loop

  2. #2
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Devi verificare il formato della data che potrebbe essere diverso da quello che usi, e che non hai indicato. Tieni anche presente che la data è sempre un tipo DateTime e perciò comprende sempre anche la parte Time che, immagino, a te non interessa.

    Personalmente non usando l'ambiente MSAccess non so dirti come esso interagisce con Oracle, cioè se si usa la stessa sintassi di Access, o se occorre quella di Oracle.

    Ma so che in Oracle non si usano i cancelletti #, e che la funzione Format$() per convertire le date non è supportata perciò nel caso si dovrebbe usare TO_CHAR() che fa più o meno la stessa cosa.

    Di più non so dirti.

    Ciao

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    100
    perdonami ma sono alle prime armi...e non c'ho capito molto...potresti postarmi un'esempio di query funzionante??

  4. #4
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Mi spiace ma come ti ho detto non conoscendo l'ambiente MSAccess non saprei cos'altro indicarti.

    La sola cosa che posso dirti è che devi controllare il formato della data che dipende dalle impostazioni del database.
    MSAccess di norma usa internamente il formato americano MM/DD/YYYY, anche se poi quando si apre la tabella direttamente, la data la mostra nel formato italiano DD/MM/YYYY.
    Anche Oracle dovrebbe usare MM/DD/YYYY (ad esempio nel db di Oracle dove lavoro io è così).

    Capisco che sei alle prime armi, ed è proprio per questo che più di altri devi analizzare e documentarti. La programmazione dei database non è banale (come molti credono) e richiede delle solide conoscenze di base, altrimenti non si va molto avanti.

    Prova a fare questa query:

    "select alimenti, data from utente where matricola ='" & matricola.value & "'"

    e verifica se il formato della data è esattamente come tu ti aspetti. Ricorda che la data è sempre di tipo DateTime, cioè data + ora.
    Se tuo fai un confronto tra due date, entrambe devono avere lo stesso formato altrimenti il confronto fallisce. Esempio se tu cerchi la data 25/03/2008 e nella tabella la data è 25/03/2008 12.23.00 non riuscirai mai a trovarla.
    "25/03/2008" = "25/03/2008 12.23.00" > FALSO
    In VBA dovresti formattare la data per cui dovrebbe essere
    "25/03/2008" = Format("25/03/2008", "MM/DD/YYY") -> VERO

    Ma, come ti ho già detto, prendi con le pinze quanto scrivo perchè non conosco minimamente l'ambiente di programmazione di MSAccess.

    Ciao

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.