Prezados colegas,
Estou construindo um formulário onde há uma caixa de Combinação com nomes de instituições de ensino, que estão listadas numa tabela. Como faço para, caso a instituição de ensino não esteja presente na combo, ela seja incluída. Peguei o código abaixo mas não dá certo, pois dá um erro de identificação no formulário criado. Não sei se é pq não compreendi bem as relações entre o formulário a ser criado e a tabela já criada (a minha). Vejam o código abaixo:
Coloque no evento "se nao estiver na lista" o codigo abaixo:
Private Sub NOMEDOCOMBO_NotInList(NewData As String, Response As Integer)
On Error GoTo NOMEDOCOMBO_NotInList_Err
DoCmd.SetWarnings False ' Desativa avisos do Access
If msgbox("A NOMEDOCOMBO " & UCase(NewData) & " não existe. Cadastrar ?", vbQuestion + vbYesNo, "Cadastramento...") = vbNo Then
Response = acDataErrContinue ' Volta ao controle
GoTo NOMEDOCOMBO_NotInList_End
End If
DoCmd.OpenForm "NOMEDEUMFORMULARIO", acNormal, , , acFormAdd, acDialog, UCase(NewData) ' Abre o form para incluir
Response = acDataErrAdded ' <<= Faz a inclusão na combo e atualiza
NOMEDOCOMBO_NotInList_End:
DoCmd.SetWarnings True ' Ativa os avisos do Access
Me!NOMEDOCOMBO.SetFocus ' Volta o foco
Exit Sub
NOMEDOCOMBO_NotInList_Err:
msgbox Err.Description, vbExclamation + vbOKOnly, "Erro: " & CStr(Err.Number)
Resume NOMEDOCOMBO_NotInList_End
End Sub
- Depois faça um formulario neste caso "NOMEDEUMFORMULARIO" e la coloque o campo com o nome da combo, pode ser uma caixa de texto.
- Depois coloque no evento No cronometro assim:
DoCmd.Close
- Depois no evento intervalo no cronometro coloque : 1 (aqui significa que ele abrira 1 segundo e posteriormente fechara automaticamente.)
- na origem do registro do formulario "NOMEDEUMFORMULARIO" faça uma consulta onde esta apenas o campo que a combo pede, pronto é isso.
PS este codigo peguei com outra pessoa que não sabe o autor, se for de autoria de alguem se pronuncie que colocarei os créditos.
Estou construindo um formulário onde há uma caixa de Combinação com nomes de instituições de ensino, que estão listadas numa tabela. Como faço para, caso a instituição de ensino não esteja presente na combo, ela seja incluída. Peguei o código abaixo mas não dá certo, pois dá um erro de identificação no formulário criado. Não sei se é pq não compreendi bem as relações entre o formulário a ser criado e a tabela já criada (a minha). Vejam o código abaixo:
Coloque no evento "se nao estiver na lista" o codigo abaixo:
Private Sub NOMEDOCOMBO_NotInList(NewData As String, Response As Integer)
On Error GoTo NOMEDOCOMBO_NotInList_Err
DoCmd.SetWarnings False ' Desativa avisos do Access
If msgbox("A NOMEDOCOMBO " & UCase(NewData) & " não existe. Cadastrar ?", vbQuestion + vbYesNo, "Cadastramento...") = vbNo Then
Response = acDataErrContinue ' Volta ao controle
GoTo NOMEDOCOMBO_NotInList_End
End If
DoCmd.OpenForm "NOMEDEUMFORMULARIO", acNormal, , , acFormAdd, acDialog, UCase(NewData) ' Abre o form para incluir
Response = acDataErrAdded ' <<= Faz a inclusão na combo e atualiza
NOMEDOCOMBO_NotInList_End:
DoCmd.SetWarnings True ' Ativa os avisos do Access
Me!NOMEDOCOMBO.SetFocus ' Volta o foco
Exit Sub
NOMEDOCOMBO_NotInList_Err:
msgbox Err.Description, vbExclamation + vbOKOnly, "Erro: " & CStr(Err.Number)
Resume NOMEDOCOMBO_NotInList_End
End Sub
- Depois faça um formulario neste caso "NOMEDEUMFORMULARIO" e la coloque o campo com o nome da combo, pode ser uma caixa de texto.
- Depois coloque no evento No cronometro assim:
DoCmd.Close
- Depois no evento intervalo no cronometro coloque : 1 (aqui significa que ele abrira 1 segundo e posteriormente fechara automaticamente.)
- na origem do registro do formulario "NOMEDEUMFORMULARIO" faça uma consulta onde esta apenas o campo que a combo pede, pronto é isso.
PS este codigo peguei com outra pessoa que não sabe o autor, se for de autoria de alguem se pronuncie que colocarei os créditos.