Newsgroup: it.comp.lang.visual-basic
Titolo: Filtrare delle date

In un database ho il campo DATA da cui vorrei filtrare tutte le date secondo
il mese:
Private Sub pnfiltramese()
Dim portamese As Byte
portamese = passamese 'passamese viene restituito come tipo Byte da un'altra
funzione.
datPrimaryRS.RecordSource = "select * from PNOTA Where Month(DATA) =
portamese"
datPrimaryRS.Refresh
End Sub
Mi da errore. Month(DATA) non è considerato valido.Se Month(Date) estrae il
mese "numerico" dalla data di sistema, perchè non lo può estrarre da un
campo di database?
Dove sbaglio?
Grazie.
--
Gulp ! Forse mi sono perso qualcosa !
Per rispondere via E-mail togli la x da 
xd...@cyberjunkie.com

 portamese"
1) Non specifichi il DB a cui ti colleghi, per cui non so se il SQL del tuo
DB supporta la funzione Month
2) portamese č una variabile di VB, non del DB. Come fa il motore SQL a
conoscerne il valore?
Forse potrebbe funzionare (ma dipende dal DB):
datPrimaryRS.RecordSource = "select * from PNOTA Where Month(DATA) =" &
Cstr(portamese)
purchč Month restituisca un numerico, altrimenti ci vogliono anche gli
apicini.
Ciao
Alberto

 Dove sbaglio?
    "select * from PNOTA Where Month(DATA) = " & portamese
--
Ciao :-)
Maurizio
--------
?SPQR(C)
 X
--------

 apicini.
Perdonami Alberto, sono un po' agli inizi e anche come sintassi non sono un
mostro...
gli apicini dove?
Grazie


 gli apicini dove?
Piů che di sintassi, č un ragionamento logico:
Se A č un numero, tu userai A=3
Se A č una stringa, tu userai A="Pippo", delimitando il valore con gli
apici.
In VB/SQL, siccome gli apici delimitano l'intera stringa SQL, gli apici che
devono arrivare fino al motore SQL vengono rappresentati con gli apicini.
Quindi, nella tua stringa SQL, se Month restituisce un numerico, puoi usare
quella che ti ho dato prima:
.RecordSource = "select * from PNOTA Where Month(DATA) =" & Cstr(portamese)
Altrimenti, se Month restituisce una stringa, puoi usare una stringa con gli
apicini:
datPrimaryRS.RecordSource = "select * from PNOTA Where Month(DATA) ='" &
Cstr(portamese) & "'"
Devi ovviamente verificare, in questo caso, in che formato Month torna la
stringa. Se (improbabile) in formato "MM", ossia Gennaio="01", devi
formattare Portamese con Format(Portamese,"00"), anzichč semplicemente con
CStr.
Ciao
Alberto

     Le date le _flirtano_ in due: Month(DATA) e portamese.
Olą, Maurizio ha commesso un errore!
E persino divertente. ;-))

 apici.
E su questo eravamo già d'accordo. :-))
Ma ti ringrazio e ti ringrazio molto, perchè contrariamente a qualcun altro
nel NG, hai avuto pazienza e hai comunque ri-scritto ed indicato come
fare.Grazie ancora
Appena avrò un attimo di tempo riproverò il tutto.
Ciao.


 perchè contrariamente a qualcun altro nel NG,
[...]
    Forse mi sono perso qualcosa... In questo 3d ti abbiamo risposto Albe V°
ed io. Ti riferisci a me? Invece di 'ste letterine anonime e lamentose sputa
il rospo se hai qualcosa da dire. O taci.


se hai qualcosa da dire. O taci.
Benchè non sia il luogo più adatto per dispute o polemiche, ho risposto,ma
inavvertitamente ho postato fuori del tread, a tutto il NG.
Scusami anche per questo.
Ciao
Egidio
P.S. non c'è l'ho con te! :-))


 E persino divertente. ;-))
    :-(
    _Volevo_ essere divertente! E' un mio vizio. Che non perdo. Ma nemmeno
il pelo, se e' per questo.
    (Spiegazione: "Anch'io ho commesso un errore" e' una celebre frase
legata alla calvizie. Calvizie... Pelo... Vizio... Lupo...).
