Pergunta : Formulário do acesso - Using a função de soma para validar registros

Eu tenho um subform conter registros com um campo do check-box. Eu quero assegurar-se de que esse um e somente um registros estejam verific assim que eu adicione um total da SOMA (chk_preferred) no formulário header.
When que eu verific um registro, o total não atualize confiantemente assim que eu adicionei um comando de me.refresh no evento do onclick. este agora atualizado o
However do total como necessário., eu quero agora validar o total no evento do before_update mas parece que o acesso está validando o valor do total antes que tenha refreshed.
Can que alguém satisfaz para me guiar em conseguir isto trabalhar confiantemente?
Thanks.
class= > " desobstruído " do
> do " codeSnippet " do class= do
class= " lineNumbers " do
class= do
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
class= chk_preferred_Click secundário " do id= " codeSnippet846953 do
Private " notpretty " ()
    Me.Refresh
Submarino da extremidade

Form_BeforeUpdate secundário confidencial (cancelamento como o inteiro)
    Se = 0 txt_sum_preferred então
        MsgBox “você deve selecionar um preço do fornecedor como preferred”, vbInformation, “espera”
        O cancelamento = retifica
    ElseIf txt_sum_preferred < -1 então
        MsgBox “você pode somente selecionar um preço do fornecedor como preferred”, vbInformation, “espera”
        O cancelamento = retifica
    Terminar se
Terminar o submarino
class= do

Resposta : Formulário do acesso - Using a função de soma para validar registros

” O total calculado está realmente em um formulário secundário e eu quero testar este valor total no evento do before_update do formulário do pai.

Quando você deixa o subform, os registros indicados nisso estão conservados. Do mesmo modo, um formulário do pai é conservado antes que você incorpore um subform. Ou seja impedir as economias do formulário principal quando o subform é errado é apenas irritante, e não fornece nenhuma integridade de dados (o usuário pode cancelar a mensagem e o subform permanecerá errado).

A solução a mais fácil é reservar não selecionar um fornecedor preferred. Nesse caso, tomar o fornecedor o mais barato, ou aleatório. Para o código, quando um fornecedor é selecionado como preferred, funcionar após o evento da atualização para remover a bandeira de todo o outro fornecedor na lista (ver abaixo).

Está igualmente fácil impedir que o usuário un-verific a bandeira preferida, isto é para usar “antes que o evento da atualização” da caixa de verificação e impede ajustá-la a falso se “o valor velho” é verdadeiro. Você pode adicionar uma mensagem: “você não pode un-seleciona um fornecedor preferred, você pode entretanto selecionar outro”.

Tentar executar a régua de negócio do começo é uma dor. Você melhor aposta está provavelmente usar “antes que o evento da atualização” do formulário secundário e ajustado simplesmente a bandeira preferida se é o único registro. O primeiro é o fornecedor preferred, até que outro esteja selecionado. Um petróleo bruto do bocado, mas se você o precisa realmente, faz o sentido que maneira.

Faz essa ajuda?
(°v°)
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
Form_AfterUpdate secundário confidencial ()
    Se não preferido então retirar o submarino
    Com Me.RecordsetClone
        .MoveFirst
        Fazer até .EOF
            Se! Identificação <> Me.ID e preferido então
                . Editar
                . Preferido = falso
                . Atualização
            Terminar se
            .MoveNext
        Laço
    Extremidade com
Submarino da extremidade
Outras soluções  
 
programming4us programming4us