Mensagem de confirmação condicional no INSERT do formulário

Olá, estou com um problema sério aqui pelo qual não estou conseguindo resolver de modo algum.

Eu tenho um formulário no qual o usuário preenche alguns campos e grava os registros referentes a despesas mensais em uma tabela. Cada registro de despesa possui sub-itens, que são as despesas do mês propriamente ditas. A questão é que, quando o usuário insere duas despesas iguais para o mesmo mês (e mesmo ano), é necessário verificar se já existe o registro na tabela e, caso já exista, exibir uma mensagem de confirmação perguntando ao usuário se ele deseja incluir novos itens para a despesa já registrada (cancelando assim a que seria duplicada).

O meu problema é que não estou conseguindo criar esse “confirm”(como é conhecido no JavaScript) no evento onValidate do formulário. Usei os macros como sc_ajax_javascript e sc_ajax_message para tentar recriar uma mensagem de confirmação caso o registro já exista na tabela, mas essas macros acontecem depois que o INSERT acontece (independentemente de sua posição no código). Ou seja, é inserido o registro e depois aparece a mensagem de confirmação. Ademais, não consigo trabalhar com os valores retornados por essas macros. Por exemplo, não é possível (através da codificação do evento OnValidate) testar a opção que o usuário selecionou através seguinte procedimento:

if(sc_ajax_javascript($javascript_function, $javascript_parameters)){ CÓDIGOS RETORNADOS CASO O USUÁRIO CLICAR EM ‘OK’ NA CAIXA DE DIÁLOGO}

Resumindo o tópico, a pergunta é: como é possível criar uma caixa de confirmação (OK/CANCEL) no evento OnValidate (podendo ser JavaScript ou PHP) ANTES que o INSERT aconteça? E como é possível saber qual a opção que o usuário selecionou? (Desconsiderando o procedimento já conhecido utilizado em JavaScript)

Desde já, mui grato pela atenção.

Eu faria em dois controles.

O primeiro pega os dados do insert, no ok deste desviar para o segundo passando os parâmetros.
No evento onscriptonit do segundo, testar a existência dos dados, não existindo fazer o insert manual e desviar para a aplicação principal (talvez uma consulta dos registros inseridos), existindo os dados, o botão ok da segunda app controle, você atua como a confirmação do seu “Confirm”, apresente um campo do tipo label com o questionamento na segunda app de controle.