Newsgroup: it.comp.appl.access
Titolo: bloccare inserimento record...

ciao,
come posso fare per "bloccare" l'inserimento di un nuovo record in una
sottomaschera?
situazione:
FormInserimentoFatture con tutti i campi compreso NumRate = x
nel sottoform Rate ho inserito i pulsanti per scorrere ed inserire
nuovo record.
il limite inferiore non e un problema xe access da solo si accorge che
non si puo scorrere (indietro) verso una rata gia inserita per
un'altra IDFattura, ma io vorrei fare anche in modo che mi si
disabilitasse il tasto NuovoRecord nel caso in cui abbiamo gia
aggiunto x numero di Rate per la tale IDFattura
ho provato con i for o while ma non riesco a trovare l'evento giusto
per sistemarli...
grazie
spero di esser stato comprensibile,
-g-

 -g-
Evento Prima di inserire (Form_BeforeInsert)
Controlli il numero di record se e' maggiore di x scrivi:
Cancel = true
e il gioco e' fatto.
Fammi sapere,
saluti, Antonio.

saluti, Antonio.
mmm forse avevo provato anche questo...
cmq riprovo e ti faccio sapere 
(scusate il post poco utile alla causa)
grazie intanto
-g-

saluti, Antonio.
se lo metto nel form_beforeInsert non mi funziona xe i campi della
sottomaschera Rate (su cui il before) si autoinseriscono all'evento
afterUpdate dei campi NumRate, Importo e Scadenza della maschera
Fattura a cui Rate e legata.
se faccio come suggerito da te mi si impalla il debugger xe,
ovviamente, il controllo sull'IDRata non lo puo ancora fare fintanto
che non sono stati inseriti i campi sopra citati.
il mio codice dovrebbe essere all'incirca questo:
    nRate = Forms!InserimentoFatture!NumRate //prende dal form Fatture
il numero di rate da inserire
    iRata = Me![IDRata] // prende l'ID della prima rata creata (dopo
ovviamente aver inserito i campi Importo, NumRata e scadenza della
form Fatture)
 control = iRata - nRate // var di controllo
 
 If nRate = control Then
    Cancel = True
 Else
    Me![Importo] = cRata
    Me![Scadenza] = DateAdd("d", 30, [dScad])
end if
// se il numero di rate della form Fattura e = al numero di rate gia
inserite, allora disabilita inserimento nuova rata.
in linea di principio il tuo ragionamento dovrebbe funzionare 
solo che nel mio caso, poiche la sottomaschera attende i valori
calcolandoli dai campi di InserimentoFattura, non funziona (non e
ancora stato infatti creato l'id della rata).
qualche altra idea?
grazie
-g-
posso forse far generare l'id della rata molto prima dell'inserimento
dell'importoFattura etc, potrebbe essere un'idea?


[...]
ho spostato il problema su altro ma ora devo tornarci su e non sono
riuscito a risolvere.
non capisco come/dove mettere il contatore del numero massimo di rate
inseribili e come fare a prelevare dalla sottomaschera Rate i valori
NumRate di Fattura (visto che con
[InserimentoFattura].form![NumFattura] pare non funzionare)
per ora questo e cio che c'e nella sottomaschera Rate
Option Compare Database
Private Sub Comando9_Click()
 Dim cRata As Currency
  Dim dScad As Date
On Error GoTo Err_Comando9_Click
    cRata = Me![Importo]
    dScad = Me![Scadenza]
        DoCmd.GoToRecord , , acNewRec
    Me![Importo] = cRata
    Me![Scadenza] = DateAdd("d", 30, [dScad])
/*la procedura sopra mi serve xe deve passare gli stessi valori di
default per le rate da 1 a nRate.
Questi valori vengono presi dall'afterUpdate dei campi Importo,
Scadenza e PagamentoFineMese della maschera InserimentoFatture. */
 
Exit_Comando9_Click:
    Exit Sub
Err_Comando9_Click:
    MsgBox Err.Description
    Resume Exit_Comando9_Click
End Sub
intanto, mi conviene fare il cilco dentro la sottomaschera o
impostarlo dalla maschera InserimentoFatture all'evento afterUpdate
NumeroRate?
se devo metterlo in questa sottomaschera come faccio a "tenere" l'ID
della prima rata generata ed a confrontarlo con l'ultimo ID inserito
in modo tale che mi sia impossibile aggiungere record qualora IDRata
(finale) = IDRata (iniziale) + forms.InserimentoFattura.NumRate?
mi ritengo consapevole del fatto che forse non riesco a chiarire bene
la situazione ma se ci fosse qualche volontario potrei spiegargliela
meglio per vedere di porre finalmente fine a questa mia agonia!
grazie fin da ora.
-giac-