Newsgroup: it.comp.appl.access
Titolo: Dlookup con AND

ciao a tutti
Scusate se riposto la stessa richiesta ma non riesco a trovare la soluzione
al problema
Spero possiate aiutarmi
ho una tabella e una maschera con due campi  digitati e cerco i valori per
altri campi.
Ho modifico e trovato altri valori con Dlookup ma poi mi blocco con l'uso di
AND e
non riesco a trovare la  stringa esatta
Ho la tabella PERIODI con due campi e 7 record:
DataPer        Periodo
20-3-02          per1
20-4-02          per2
-
-
20-6-02          per6
20-6-02          per7
mi trovo nella maschera  COSTO  che  ha le seguenti caselle di testo
------   valori immessi  :
DataIN      DataOUT
------  devo cercare i seguenti valori
PeriodoA         ggA
PeriodoB         ggB
Se le date dataIN e dataOUT sono entrambi inferiori alla data del periodo
corrente della tabelle periodi:
PeriodoA  =  corrente
ggA           =  giorni del periodo corrente inclusi tra dataIN e dataOut
Se dataIN è inferiore e dataOut è maggiore alla data del periodo corrente
della tabella periodi:
PeriodoA  =  corrente
ggA           =  giorni del periodo corrente inclusi tra dataIN e periodo
corrente
PeriodoB  =  corrente+1
ggB           =  giorni del periodo corrente inclusi tra data periodo
corrente e dataOut
 ----------- ho fatto così :------------------
Do Until incr = 8
corrente = "per" & incr
If Me!dataIN < (DLookup("[dataPer]", "[PERIODI]", "[periodo]= '" & corrente
& "'"))  _
And  Me!dataOUT < (DLookup("[dataPer]", "[PERIODI]", "[periodo]= '" &
corrente & "'")) Then
    Me!periodoA = corrente
    Me!ggA= me!dataOut - me!dataIN
   Exit Do
 End If
incr = incr + 1
Loop
End Sub
--------------
Non ho proseguito perchè già da ora  non riesco ad ottenere i valori
corretti
sono riuscito a farlo funzionare solo usando dataIN o dataOUT ma quando
introduco la AND non mi seleziona i dati (In pratica mi rende sempre il
valore del periodo relativo alla dataOUT)
altro mistero:
uso win98SE  e access97
è normale che nell'esempio precedente, se cancello la riga con la AND,
riposiziono la THEN sulla prima riga  e salvo la sub, il sistema non si
accorga che ho fatto una modifica e continui a fare  come se nulla fosse
cambiato?
grazie mille e spero nella vostra cortesia
abele

 cambiato?
ciao e grazie dell'attenzione prestata
Abele

 > cambiato?
No, non è normale, ma forse è meglio che posti le due stringhe, invece di
dire a voce cosa hai fatto!!!
Antonio

 Lì c'è scritto minore...
scusami, ho completamente errato la selezione e non poteva funzionare
mancano delle variabili
ho rifatto tutto usando il tuo consiglio e funziona
( sicuramente si potrebbe ridurre ma non ne ho le capacità)
incr=1
Do Until incr = 8
corr = "per" & incr
succ = "per" & incr + 1
err   = "per" & incr + 2
datacorr = DLookup("[dataPer]", "[PERIODI]", "[periodo]= '" & corr & "'")
datasucc = DLookup("[dataPer]", "[PERIODI]", "[periodo]= '" & succ & "'")
dataERR = DLookup("[dataPer]", "[PERIODI]", "[periodo]=  '" & err & "'")
  If Me!dataIN < datacorr Then
        DoCmd.OpenForm "messaggi"
        Forms!messaggi!testo = "Psst !!  dovevi pensarci prima.  ora è
tardi"
        beep
 Exit Do
 End If
If Me!dataIN > datacorr And Me!dataIN < datasucc And Me!DATAOUT < datasucc
Then
       -
        -
    Exit Do
 End If
 If Me!dataIN > datacorr And Me!dataIN < datasucc And Me!DATAOUT > datasucc
Then
    If Me!DATAOUT > dataERR Then
        DoCmd.OpenForm "messaggi"
        Forms!messaggi!titolo = "AHoo!! te sei sbaiato aa data . So' troppi
ggiorni"
      Exit Do
    End If
    -
    -
     Exit Do
 End If
incr = incr + 1
Loop
non sono riuscito a fare di meglio.
é possibile togliere la barra azzurra in testa alla Maschere??
ciao e grazie
Abele

 dimmi come sarebbe stato meglio fare cosě lo ricorderň per la prossima
volta
Come avevo fatto io, riportando solo il pezzo di codice in esame e la
seconda domanda
Antonio