Newsgroup: it.comp.appl.access
Titolo: Help Funzione Between....

Salve a tutti...qualcuno mi aiuterebbe a risolvere il problema del messaggio
postato il 16/12/2003 ?
Grazie anticipatamente...
CiAuZzZzz, Lello.

 CiAuZzZzz, Lello.
Supponendo che tu abbia una maschera con due controlli, uno "DataDal" ed
un altro "DataAl", ed una Tabella "TuaTabella" che contenga un campo
"Data" prova a mettere questo codice sull'evento click di un pulsante (ho
modificato un pò il codice di Carlo. Spero di avere indovinato la tua
esigenza): 
Dim rst As Recordset, Passo As Integer
Dim MyDataDal As Date, MyDataAl As Date
 
Set rst = CurrentDb.OpenRecordset("TuaTabella")
Passo = 0
MyDataDal = Me.Datadal
MyDataAl = Me.DataAl
Passo = MyDataAl - MyDataDal
Ciclo:
With rst
AddNew
!Data = MyDataDal
Update
End With
Passo = Passo - 1
If Passo = -1 Then
rst.Close
Else
MyDataDal = MyDataDal + 1
GoTo Ciclo
End If
--
rgrds
SC
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it


Ciao SV allora...ho fatto come hai detto ma mi viene generato un errore di
compilazione di Sub o Function non definita...?!?!?!
Dov'è l'inghippo ?
CiauZzZz,  Lello

 CiauZzZz,  Lello
Riposto parte del codice perchè mi sono accorto che nel modo di
trascrivere sono saltati segni di punteggiatura:
........
With rst
AddNew
!Data = MyDataDal
Update
End With
........
Penso che senz'altro l'avevi già corretto.....
Per l'errore "Sub o function non definita" devi controllare i
"Riferimenti". Apri un modulo ed aggiungi "Microsoft DAO 3.6 Object
Library" che posizionerai dopo "Microsoft Access 9.0 Object Library".
Il codice l'ho testato e funziona perfettamente.


 ha scritto nel messaggio
news:91jEb.1490$Jw2...@tornado.fastwebnet.it...

Io no lo vedo il messaggio...., ma leggendo le risposte di SV
mi viene da capire che ha a che vedere con il Filtro dati su un'intervallo
dtae da apssare con Beetwen...!
Se ti crei una Query e nei criteri inserisci il riferimento al controllo di
un'ipotetica
Form in cui hai le 2 date margine funziona, devi prò tenere presente che la
data
va convertita in formato USA cioè mm/dd/yy altimenti non và.
Io faccio una cosa simile via codice ma la sostanza non cambia e puoi farla
anche
direttamente da QBE..:
Private Sub MyFilter()
    Data1 = Format(Nz(Me.DataDa, "01/01/1900"), "mm/dd/yy")
    Data2 = Format(Nz(Me.DataAl, Now()), "mm/dd/yy")
    s = "SELECT * FORM TuaTabella WHERE Data Between #" & Data1 & "# And #"
& Data2     & "#"
    SQL_MOD NomeQry, s
End sub
In s hai la stringa SQL della Qry già con le date formattate.
Io poi per mia comodità modifico il predicato della QRY da Codice in questo
modo:
Public Sub SQL_MOD(strQRY as string,strSQL as string)
    Dim qdf as Dao.Querydef
    set qdf=currentdb.Querydefs(strQRY) ' deve essere la QRY esistente
    qdf.SQL=strSQL
End
Ciao.
@Alex.

 SC
Ciao VS tra i riferimenti già in precedenza avevo caricato "Microsoft DAO
3.6 Object" e quindi non può dipendere da quello....per quanto riguarda
l'errore di punteggiatura...non ho capito bene a cosa ti riferivi... ?!?!?
CiAuZzZz Lello.


Ciao  Alex,
il mio non è un problema di filtro bensì riguarda la registrazione di una
serie di record.
Ripropongo l'esempio:
poniamo il caso che abbia in una maschera due controlli DataDal dove vado a
inserire la data 12/12/03 e DataAl dove vado a inserire la data 17/12/03
vorrei che nel campo tblData presente in una tabella mi vengano memorizzati
tutte le date....
tblData
12/12/03
13/12/03
14/12/03
15/12/03
16/12/03
17/12/03
CiAuzZzZzz Lello

 CiAuzZzZzz Lello
La tua applicazione č Anomala, ma non hai spiegato a cosa ti serve, magari
ci
sono metodi diversi per ottenere lo stesso risultato.....!!
In ogni caso:
Poichč hai 2 date nella Form
Puoi fare un ciclo ed usare la Funzione DateAdd che userai sia per
memorizzare
sia come controllo:
Allora nella Form inserirai un Button sull'evento Click:
Private Sub Button_Click()
    dim DataCurr as date
    dim DataStop as Date
    'Prima devi forse vuotare la Tabella precedentemente riempita
    CurrentDb.Execute "DELETE * FROM tblData;"
    Dim rs as DAO.Recordset
    Set rs=CurrentDb.Openrecordset("tblData",dbopentable)
    datacurr=cdate(Me.DataDal)
    DataStop=Cdate(Me.DataAl)
    do untill datacurr=DataStop
        rs.addnew
        rs!CampoData=dataCurr
        rs.Update
        datacurr=DateAdd("d", 1,datacurr)
     loop
End Sub
Ciao.
@Alex.

 CiAuZzZz Lello.
Dove ti si ferma il codice?
Allora, quello che ottengo è una serie di records incrementati di un
giorno con inizio DataDal e fine DataAl.
E' questo che vuoi?
Eventualmente ti posso mandare l'esempio.


 @Alex.
Ciao alessandro ho risolto con la seguente istruzione:
Private Sub Comando86_Click()
    Dim DataCurr As Date
    Dim DataStop As Date
    Dim Nome As String
    Dim Spettacolo As String
    Dim Orario As Date
    Dim Posto As String
    Dim Assegnato As String
    Dim Prezzo As String
    Dim Prevendita As String
    Dim rs As DAO.Recordset
    Set rs = CurrentDb.OpenRecordset("select Data, Nome_luogo,
Desc_spettacolo, Orario, Tipo_posto, Assegnato, Prezzo_escl_prevendita,
Prevendita, Riduzione from [Immissione dati spettacolo]")
    DataCurr = CDate(Me.DataDal)
    DataStop = CDate(Me.DataAl)
    Nome = ([Forms]![Intestazione].Luogo)
    Spettacolo = ([Forms]![Intestazione].Spettacolo)
    Orario = (Me.Data_fine)
    Posto = (Me.CasellaCombinata1)
    Assegnato = (Me.Testo87)
    Prezzo = (Me.Testo89)
    Prevendita = (Me.Testo91)
    Riduzione = (Me.CasellaCombinata130)
    Do Until DataCurr = DataStop
        rs.AddNew
        rs!Data = DataCurr
        rs!Nome_Luogo = Nome
        rs!Desc_spettacolo = Spettacolo
        rs!Orario = Orario
        rs!Tipo_posto = Posto
        rs!Assegnato = Assegnato
        rs!Prezzo_escl_prevendita = Prezzo
        rs!Prevendita = Prevendita
        rs!Riduzione = Riduzione
        rs.Update
        DataCurr = DateAdd("d", 1, DataCurr)
     Loop
End Sub
e funziona alla grande solo che mi memorizza i record dalla data alla data
meno un giorno....
es.:
se in DataDal metto 12/12/2003 e in DataAl metto 14/12/2003 mi vengono
memorizzate solo le date : 12/12/2003 e 13/12/2003 quella del 14 no...
come mai ????
CiAuzZzZz Lello

 ha scritto nel messaggio
news:cyBEb.2711$Jw2....@tornado.fastwebnet.it...

Perchè l'ultima condizione, quella di UGUAGLIANZA per capirci
la riconosce come FINE loop, quindi non esegue il contenuto.
Per questo ti basta ingannarlo quando ricavi la variabile DataSTOP
Prima era:
DataStop = CDate(Me.DataAl)
Ora sarà:
DataStop = DateAdd("d", 1, CDate(Me.DataAl))
Ciao.
@Alex.

 @Alex.
Grazie mille Alex.... ^_^