Fråga : Ta fram bildar - Using summa fungera för att validera rekord

Jag har en subform att innehålla rekord med en check-box för att sätta in. Jag önskar att se till att det ett och endast ett rekord kontrolleras så jag har tillfogat en slutsumma (för chk_preferred) SUMMA i bilda header.
When som jag kontrollerar ett rekord, slutsumman inte uppdaterade pålitligt så jag tillfogade en me.refresh befaller i onclickhändelsen. detta uppdaterade nu slutsumman som required.
However, mig önskar nu att validera slutsumman i before_updatehändelsen, men den verkar tar fram validerar slutsumman värderar, för den har refreshed.
Can någon att behaga vägleder mig, i att få detta för att fungera pålitligt?
Thanks.
> för
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
" codeBody " " class= underchk_preferred_Click " för Private () Me.Refresh Avsluta suben Privata underForm_BeforeUpdate (annulleringen som heltal) Om txt_sum_preferred = 0 därefter MsgBox ”du måste välja en leverantör prissätter som preferred”, vbInformationen, ”väntan”, Annulleringen = True ElseIf txt_sum_preferred < -1 därefter MsgBox ”du kan endast välja en leverantör prissätter som preferred”, vbInformationen, ”väntan”, Annulleringen = True Avsluta om Avsluta suben
" klar "

Svar : Ta fram bildar - Using summa fungera för att validera rekord

” Den beräknade slutsumman är faktiskt på en sub bildar, och jag önskar att testa denna slutsumma värderar i before_updatehändelsen av föräldern bildar.

När du lämnar subformen, rekorden som däri visas, sparas. Jämväl en förälder bildar sparas, för du skriver in en subform. Med andra ord och att förhindra räddningen av det huvudsakligt bilda, när subformen är fel förargar precis och inte ger någon datafullständighet (användaren kan avbryta meddelandet, och den ska subformen återstår fel).

Den lättaste lösningen är att låta att inte välja en preferred leverantör. Ta en mest billig eller slumpmässig leverantör, isåfall. Kör efter uppdateringhändelse för att ta bort sjunka från någon annan leverantör i lista (se nedanfört) för kodifiera, när en leverantör är utvald som preferred.

Det är också lätt att förhindra användaren från un-kontrollerande föredragen sjunker, använder dvs. ”, för den uppdatering” händelsen av kontrollen boxas och förhindra inställning den till falskt, om ”de gammala värderar” är riktiga. Du kan tillfoga ett meddelande: ”du kan inte un-väljer en preferred leverantör, dig kan emellertid välja another”.

Pröva att genomföra affären härska är från början en smärta. Du den bäst vad ska antagligen använda ”, för den uppdatering” händelsen av suben bilda, och enkelt föredragna uppsättningsjunker, om det är det enda rekordet. Första är den preferred leverantören, till another är utvalt. A bet råolja, men, om du behöver egentligen den, den gör avkänning ditåt.

Gör den hjälp?
(°v°)
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
Privata underForm_AfterUpdate ()
    Om inte föredraget därefter, gå ut suben
    Med Me.RecordsetClone
        .MoveFirst
        Gör till .EOF
            Om! LEGITIMATION <> Me.ID och föredraget därefter
                . Redigera
                . Föredraget = falskt
                . Uppdatering
            Avsluta om
            .MoveNext
        Kretsa
    Avsluta med
Avsluta suben
Andra lösningar  
 
programming4us programming4us