Newsgroup: it.comp.appl.access
Titolo: Data_ Iniziale Data_Finale

Avrei bisogno del vostro aiuto , in una tabella ho tre campi:  Nome_Prodotto
, Data_Iniziale e l'altro Data_Finale,
come potrei fare per visualizzare in una query oppure in una maschera , le
scadenze che intercorrono tra la Data_Iniziale e la Data_Finale aventi
alcuni intervalli bimestrali, altri prodotti intervalli trimestrali? Spero
di essermi spiegato,un ringraziamento a chi vorrà rispondere.

 di essermi spiegato,
    Mica tanto... Non ho capito se vuoi sapere:
        A) quali sono i prodotti in scadenza ad una certa data
        B) quali prodotti hanno scadenza bimestrale, quali trimestrale, ...
--
Ciao.
Maurizio
--------
?SPQR(C)
 X
--------

 i prodotti in scadenza ad una certa data.
    Quelli le cui date, iniziale e finale, *comprendono* la certa data.
    DataIniziale <= Data <= DataFinale
    Ovvero:
    DataIniziale <= Data AND Data <= DataFinale
oppure, che e' lo stesso:
    Data Between DataIniziale And DataFinale
Attenzione pero' all'uso di Between .. And se invece ti interessa una di
queste:
    DataIniziale < Data AND Data <= DataFinale
    DataIniziale <= Data AND Data < DataFinale
    DataIniziale < Data AND Data < DataFinale
Devi ricordarti di ricondurre sempre alla forma:
    ... <= ... <= ...
quindi:
    Data Between DataIniziale -1 And DataFinale
    Data Between DataIniziale And DataFinale - 1
    Data Between DataIniziale -1 And DataFinale -1
    Ti ho fatto confusione? Spero di no... :-(


 prodotti in scadenza il mese di giugno.
    Ah!... Sono pagamenti. Non merendine marce. Interessante.
    E che sono, per esempio, i "pagamenti trimestrali"? Lo domando cosi',
giusto per mettere le mani avanti...
    E siamo sicuri che le date iniziali son tutte primo del mese e quelle
finali ultimo del mese? E se non lo sono come conti i giorni? Se una data
iniziale e' 30/01, bimestrale quando scade?
    E COME FAI A SAPERE CHE UN PRODOTTO E' BIMESTRALE O TRIMESTRALE?
    Mi arrendo. :-(


 alcuni intervalli bimestrali, altri prodotti intervalli trimestrali?
Quest'ultima riga e' misteriosa.
Le scadenze che intercorrono ti hanno spiegato.
"aventi" e quello che segue e' invece misterioso.
Se ho capito, tu hai delle "finestre di pagamento"
E' cosi'?
Tipo hai tre mesi per pagare delle cose?
Oppure gli oggetti comprati in un certo periodo, tipo trimestre, vanno
pagati a una certa scadenza?

 voglio visualizzare le scadenze del mese in corso.
Ti crei una tabella dove per ogni condizione di pagamento specifici i
giorni.
Non chiamarlo "scadenza trimestrale" perche' vuol dire un'altra cosa.
Poi... mi devi dire se paghi a fine mese o al 10, o allo stesso giorno o
come e ti dico come fare

 ho una tabella con i seguenti campi
No, non mi interessa la tabella :-)
scusa ma non capisco proprio...
Di solito, uno compra una cosa, chesso', oggi e la paga tra 90 giorni o 60 o
120 o quello che e'...
Ecco, se e' una cosa cosi' e se paghi lo stesso giorno non mi sembra nulla
di terribile.
Prendi la data di acquisto, aggiungi i giorni (60, 90, 120) e hai il giorno
del pagamento.
(circa, se vuoi fare una cosa piu' precisa, ne parliamo)
la tua query ti estrae tutti i record che hanno la data di acquisto piu' i
giorni per il pagamento maggiore di oggi.
E' questo?
Se e' questo bene, se e' un'altra cosa mi devi scusare ma non l'ho capita.

 >
Vista cosi...
io userei una funzione che ricevendo come argomenti
- data corrente
- data iniziale
- data finale
- tipo scadenza
restituisce vero/falso (cioè scade/non scade nel mese)
Questa funzione da richiamare direttamente dalla query.
Perché invece non crei una ulteriore tabella in cui tieni memoria dei vari
pagamenti effettuati e tramite la quale hai la possibilità di richiamare
anche eventuali rate scadute nei mesi precedenti ma non ancora pagate?
Ciao
--
Alberto

 mi aiuta , credo che ci rinuncio.
Io spero che me la cavo...
Senti, non ho capito il problema, mi devi perdonare, se si tratta di tenere
un partitario, quello e' il mio pane quotidiano, ma non ho capito se sono
fatture, se sono pagamenti, che scadenza hanno, ecc. ecc.
Non serve nessuna funzione, basta un campo scadenza e la query confronta se
la data di scadenza e' maggiore di oggi   [dataScad] > date() e se non  e'
stata gia' pagata.
Se mi dici di piu', ti aiuto di piu'.

 >
La funzione, da inserire in un modulo, può essere questa:
Public Function Scadenza(dtmCorrente As Date, dtmInizio As Date, _
    dtmFine As Date, strTipo As String) As Boolean
Dim dblCadenza As Double
    Scadenza = False
    If dtmCorrente < dtmInizio Or dtmCorrente > dtmFine Then
        Exit Function
    End If
    Select Case strTipo
        Case "A"
            dblCadenza = 12
        Case "B"
            dblCadenza = 2
        Case "T"
            dblCadenza = 3
        Case Else
            Exit Function
    End Select
Check:
    If Month(dtmInizio) = Month(dtmCorrente) Then
        Scadenza = True
        Exit Function
    End If
    If dtmInizio > dtmCorrente Then
        Exit Function
    End If
    dtmInizio = DateAdd("M", dblCadenza, dtmInizio)
    GoTo Check
End Function
La query potrà essere fatta così:
SELECT Tabella1.[nome_ prodotto], Tabella1.inizio_scadenza,
Tabella1.fine_scadenza, Tabella1.tipo_scadenza,
Scadenza(Date(),[inizio_scadenza],[fine_scadenza],[tipo_scadenza]) AS
Scaduto
FROM Tabella1;
Note:
1) Io ho chiamato 'Tabella1' la tua tabella
2) La query restituirà nel campo 'Scaduto' 0/-1 a seconda che la relativa
rata scada o non scada nel mese. La query restituisce comunque tutti i
record.
3) Sono necessari alcuni aggiustamenti per informazioni che io non so (c'è
rata anche nel mese in cui inizia il contratto?, e nel mese in cui
finisce?).
4) Questi particolari li puoi aggiustare tu, ma se hai bisogno di aiuto
fatti sentire.
Ciao.
--
Alberto
P.S.: questa soluzione l'ho già provata anch'io.

 Se mi dici di piu', ti aiuto di piu'.
Non ho dubbi che - una volta capito il problema - sarai in grado di proporre
una soluzione molto piů performante ed elegante della mia e della quale io
non mancherň di far tesoro.
Ciao
--
Alberto


Prego,
ciao.
--
Alberto