Questione : Forma di accesso - Using la funzione di somma per convalidare le annotazioni

Ho un subform contenere le annotazioni con un campo della scatola di controllo. Voglio accertarmi che quell'un'e soltanto un'annotazione sia controllata in modo da ho aggiunto un totale di SOMMA (chk_preferred) nella forma header.
When controllo un'annotazione, il totale non ho aggiornato attendibilmente in modo da ho aggiunto un ordine di me.refresh nell'evento del onclick. questo ora aggiornato il
However di totale quanto basta., ora voglio convalidare il totale nell'evento del before_update ma sembra che l'accesso stia convalidando il valore del totale prima che abbia refreshed.
Can qualcuno soddisfa per guidarlo nel convincere questo a funzionare attendibilmente?
Thanks.
class= > " libero " del
> " del codeSnippet " del class= del
class= " lineNumbers " del
class= del
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
class= chk_preferred_Click secondario " del id= " codeSnippet846953 del
Private " notpretty " ()
    Me.Refresh
Sommergibile dell'estremità

Form_BeforeUpdate secondario riservato (annullamento come numero intero)
    Se = 0 txt_sum_preferred allora
        MsgBox “dovete selezionare un prezzo del fornitore come preferred„, vbInformation, “attesa„
        L'annullamento = allinea
    ElseIf allora txt_sum_preferred < -1
        MsgBox “potete selezionare soltanto un prezzo del fornitore come preferred„, vbInformation, “attesa„
        L'annullamento = allinea
    Concluder se
Concludere il sommergibile
class= del

Risposta : Forma di accesso - Using la funzione di somma per convalidare le annotazioni

„ Il totale calcolato è realmente su una forma secondaria e voglio verificare questo valore totale nell'evento del before_update della forma del genitore.

Quando lasciate il subform, le annotazioni visualizzate in ciò sono conservate. Inoltre, una forma del genitore è conservata prima che entriate in un subform. Cioè impedire i risparmi della forma principale quando il subform è errato è solo fastidioso e non fornisce alcun'integrità di dati (l'utente può annullare il messaggio e il subform rimarrà errato).

La soluzione più facile è di concedere non selezionare un fornitore preferred. In quel caso, prendere un fornitore più poco costoso e o casuale. Per il codice, quando un fornitore è selezionato come preferred, funzionare dopo l'evento dell'aggiornamento per rimuovere la bandierina da qualunque altro fornitore nella lista (vedere sotto).

È inoltre facile da impedire all'utente di ONU-controllare la bandierina preferita, cioè per usare “prima che l'evento dell'aggiornamento„ della casella di controllo ed evita la regolazione esso a falso se “il valore vecchio„ è allineare. Potete aggiungere un messaggio: “non potete ONU-selezionate un fornitore preferred, voi potete tuttavia selezionare un altro„.

La prova di realizzare la regola di affari dall'inizio è un dolore. Migliore possibilità dovete probabilmente usare “prima che l'evento dell'aggiornamento„ della forma secondaria e semplicemente fissato la bandierina preferita se è l'unica annotazione. Il primo è il fornitore preferred, fino a selezionare un altro. Un grezzo della punta, ma se realmente lo avete bisogno, esso ha significato che senso.

Fa quell'aiuto?
(°v°)
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
Form_AfterUpdate secondario riservato ()
    Se non allora preferito uscire il sommergibile
    Con Me.RecordsetClone
        .MoveFirst
        Fare fino a .EOF
            Se! Identificazione <> Me.ID ed allora preferito
                . Pubblicare
                . Preferito = falso
                . Aggiornamento
            Concluder se
            .MoveNext
        Ciclo
    Estremità con
Sommergibile dell'estremità
Altre soluzioni  
 
programming4us programming4us