Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    488

    Query in base a compleanno/onomastico

    Ciao a tutti, vorrei individuare i record in cui il giorno ed il mese del compleanno o dell'onomastico fosse uguale alla data di domani, per cui avrei alcuni grandi dubbi :
    1) Ho trovato che per calcolare il giorno di domani posso usare (DateAdd("d",1,Date())) ma come posso limitare la query al giorno ed al mese ?

    2) Dicasi altrettanto per i Rs

    La butto l� :
    codice:
    domani=(DateAdd("d",1,Date()))
    .....
    "SELECT * from Clienti WHERE [Data di nascita]=#"&domani&"# OR [Data Onomastico]=#"&domani&"# "
    Ma chiaramente pongo le domande di cui sopra ?

  2. #2
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,783
    i nomi delle tabelle e dei campi è sempre meglio che non contengano spazi...

    buttata lì senza testarla... provala.
    non so se gli piaceranno le parentesi quadre al posto delle tonde

    codice:
    where 
    (
    day[data di nascita]=day(#"&domani&"#) 
    and 
    month[data di nascita]=month(#"&domani&"#)
    ) OR ( 
    day[data onomastico]=day(#"&domani&"#) 
    and
    month[data onomastico]=month(#"&domani&"#)
    )

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    488
    Ciao, grazie per l'aiuto, sto provando cos� :

    codice:
    ("SELECT * from Clienti WHERE (Day[data di nascita]=Day(#"&domani&"#) AND Month[data di nascita]=Month(#"&domani&"#)) OR (Day[data onomastico]=Day(#"&domani&"#) AND Month[data onomastico]=Month(#"&domani&"#))")
    ma mi da il seguente errore :
    codice:
    Syntax error (missing operator) in query  expression '(Day[data di nascita]=Day(#24/01/2017#) AND Month[data di  nascita]=Month(#24/01/2017#)) OR (Day[data onomastico]=Day(#24/01/2017#)  AND Month[data onomastico]=Month(#24/01/2017#))'
    


    cosa pu� essere ?

  4. #4
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,783
    prova così

    codice:
    where 
    (
    day([data di nascita])=day("&domani&") 
    and 
    month([data di nascita])=month("&domani&")
    ) OR ( 
    day([data onomastico])=day("&domani&") 
    and
    month([data onomastico])=month("&domani&")
    )

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    488
    No, adesso ho un'altro mess di errore, il codice usato � questo :
    codice:
    ("SELECT * from Clienti where (day([Data di nascita])=day("&domani&")and month([Data di nascita])=month("&domani&")) OR (day([Data Onomastico])=day("&domani&") and month([Data Onomastico])=month("&domani&"));")
    e l'errore � questo :
    codice:
    Data type mismatch in criteria expression
    


  6. #6
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,783
    il problema è il campo con lo spazio nel nome.
    in questo caso non so come risolvere (se non cambiando il nome e scriverlo a modo )

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    488
    Allora, dopo vari tentativi sono arrivato a questo codice :
    codice:
    ....
    domani=(DateAdd("d",1,Date()))
    giorno=Day(DateAdd("d",1,Date()))
    mese=Month(DateAdd("d",1,Date()))
    ("SELECT Clienti.[IDCliente], Clienti.[Cognome e Nome], Clienti.[Data di nascita], Day([Data di nascita]) AS GiornoNascita, Month([Data di nascita]) AS Mesenascita, Clienti.[Data Onomastico], Day([Data Onomastico]) AS GiornoOnomastico, Month([Data Onomastico]) AS MeseOnomastico, Clienti.[Tel Cell], Clienti.[E-Mail] FROM Clienti WHERE Month([Data di nascita])=("&mese&") ;")
    Il problema che adesso mi blocca è che se provo ad aggiungere nel "WHERE" della select "AND Day([Data di nascita])=("&giorno&")" mi da il seguente errore :
    codice:
    Microsoft JET Database Engine error '80040e07' 
     Data type mismatch in criteria expression
    


    Perchè ???

    Inoltre anche quando lascio un solo "WHERE" , all'inizio del risultato a video, compare l'errore di prima con riferimento alla riga in cui c'è
    codice:
    objRs.Movenext
    Quindi in realtà c'è ancora errore nel mio codice !?!

    Qualcuno potrebbe darmi una mano ?
    Ultima modifica di Prof_Mauri; 24-01-2017 a 12:41

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    488
    Scusate ma l'errore che fa riferimento alla parte di codice
    codice:
    objRs.Movenext
    può dipendere dalla presenza di record in cui il campo [Data di nascita] è vuoto ?

    Perchè in realtà così la query viene eseguita, anche se anticipata dal messaggio di errore
    codice:
    
    Microsoft JET Database Engine error '80004005' Data type mismatch in criteria expression.
    .....,line 70.
    


  9. #9
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,783
    ho ritestato la query che ti ho proposto e funziona anche con campi che contengono spazi nel nome.
    ovviamente i campi devono essere di tipo data; e il parametro richiesto deve essere di tipo numerico, accertatene.

    poi... a che ti servono gli alias per il giorno e il mese? hai già la data estratta con Clienti.[Data di nascita] e Clienti.[Data Onomastico]


    edit:
    ho scritto mentre stavi già postando

  10. #10
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,783
    ho visto che ci sono problemi con il passaggio corretto del parametro "domani"
    meglio dargli in pasto direttamente il numero del giorno e del mese

    codice:
    domani=DateAdd("d",1,Date())
    giorno=day(domani)
    mese=month(domani)
    
    query:
    
    where 
    (
    day([data di nascita])="&giorno&" 
    and 
    month([data di nascita])="&mese&"
    ) OR ( 
    day([data onomastico])="&giorno&" 
    and
    month([data onomastico])="&mese&"
    )

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.