MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access


    [Resolvido]Escolher qual form abrir

    avatar
    Convidado
    Convidado


    [Resolvido]Escolher qual form abrir Empty Escolher qual form abrir

    Mensagem  Convidado 28/12/2011, 19:38

    Boa tarde colegas....em um form pedido tenho o campo cliente onde se digito um nome que não esta na lista uso o código abaixo e ele abre o form cliente, até ai tudo bem. O que pretendo é se o usuário optar por não cadastrar(clicando em "não")sairia do campo cli_nome e iria para o próximo campo. Há como????

    o código que uso é este:

    Private Sub cli_Nome_NotInList(NewData As String, Response As Integer)
    Response = acDataErrContinue ' Inibe msg padrão do Access.
    If MsgBox("Cliente não Cadastrado no Sistema: '" & NewData & "'" & vbCrLf _
    & "Deseja Cadastrar?", 32 + vbYesNo) = 6 Then
    DoCmd.OpenForm "FrmCliente", , , , acFormAdd, _
    acDialog, NewData
    ' A execução deste código fica interrompida aqui até o
    ' fechamento do formulário SeuFormCadastro.

    Response = acDataErrAdded
    Else
    Response = acDataErrContinue
    End If
    End Sub
    avatar
    Convidad
    Convidado


    [Resolvido]Escolher qual form abrir Empty Re: [Resolvido]Escolher qual form abrir

    Mensagem  Convidad 29/12/2011, 00:37

    Olá
    Para facilitar as mensagens, uso a função Confirmar, que deve se colada num módulo novo ou de funções.

    Public Function Confirmar(sMensagem As String) As Boolean
    'Faz uma pergunta ao usuário e retorma True se a resposta for SIM, e false se a resposta for NÃO
    Dim intResp As Integer
    intResp = MsgBox(sMensagem, vbYesNo + vbQuestion, "Confirmação")
    If intResp = vbYes Then
      Confirmar = True
    Else
      Confirmar = False
    End If
    End Function

    Depois
    você pode adaptar este código, apenas mudando os nomes dos objetos.

    Private Sub CidadeCliente_NotInList(NewData As String, Response As Integer)
    On Error Resume Next
    Dim blnOk As Boolean
    Response = acDataErrContinue
    Me.Undo
    blnOk = Confirmar("O nome que você informou" & vbCrLf & _
    "não consta no cadastro de Cidades." & vbCrLf & _
    "Deseja cadastrar agora?")
    If Not blnOk Then
      SeuCampo.SetFocus
      Exit Sub
    Else
      If Application.CurrentProject.AllForms("for_Cidades").IsLoaded Then
        blnOk = Confirmar("O formulário já está aberto" & vbCrLf & _
        "Deseja alternar para o cadastro de Cidades?")
          If Not blnOk Then
            Exit Sub
          Else
            Forms!for_Cidades.SetFocus
          End If
      Else
        DoCmd.OpenForm "for_Cidades", acNormal, "", "", , acNormal
        DoCmd.GoToRecord , "", acNewRec
      End If
    End If
    End Sub
    avatar
    Convidado
    Convidado


    [Resolvido]Escolher qual form abrir Empty Re: [Resolvido]Escolher qual form abrir

    Mensagem  Convidado 29/12/2011, 00:55

    Boa noite colega Norberto. Obrigado por estar me ajudando. Vou testar o seu exemplo e retorno.
    Mas me diga uma coisa, você entendeu a minha colocação????
    avatar
    Convidad
    Convidado


    [Resolvido]Escolher qual form abrir Empty Re: [Resolvido]Escolher qual form abrir

    Mensagem  Convidad 29/12/2011, 01:08

    Entendi que tem um formulário de pedidos com uma caixa de texto ou combo para escolher o cliente.
    E que se o texto digitado não corresponder a um cliente cadastrado, dê opção ao usuário de abrir ou não o cadastro de clientes para realizar o cadastro.
    E que se o usuário optar por não fazer o cadastro, o foco fosse para o campo seguinte deste formulário de pedidos.
    Entendi certo?

    Em caso positivo, meu código faz isso, e ainda verifica se o formulário de clientes se encontra aberto.
    Só não cadastra automaticamente o nome digitado, mas isso é fácil de ajeitar.
    Creio que vá retirar o Me.Undo se quiser manter o nome digitado.

    Se entendi mal, por gentileza, esclareça!
    avatar
    Convidado
    Convidado


    [Resolvido]Escolher qual form abrir Empty Re: [Resolvido]Escolher qual form abrir

    Mensagem  Convidado 29/12/2011, 01:18

    Realmente Norberto entendeu e bem. Mas veja, um novo nome se clicar em sim ele avisa que o formcliente esta aberto(e não esta) após fecha a segunda mensagem e volta para o campo (onde digito o nome) e clicando em não ele fica na primeira mensagem....
    Criei um novo modulo e colei a primeira função e no formpedido no campo não aclopado (nome) acrescentei o seu segundo.
    avatar
    Convidado
    Convidado


    [Resolvido]Escolher qual form abrir Empty Re: [Resolvido]Escolher qual form abrir

    Mensagem  Convidado 29/12/2011, 01:25

    Noberto estou lhe passando um form com campo diferente, mas que serve para este estudo, se possivel altere ele como necessito........
    Obrigado..
    http://speedy.sh/vedRr/Exemplo.rar
    avatar
    Convidad
    Convidado


    [Resolvido]Escolher qual form abrir Empty Re: [Resolvido]Escolher qual form abrir

    Mensagem  Convidad 29/12/2011, 01:48

    Ok, baixei seu bd e estou vendo... vou aplicar e depois retorno.

    Mas o correto seria você postar o código que colocou no evento NotInList do campo do formulário em questão, para análise.

    Obs: as tabelas Clientes e Pedidos nõa estão relacionadas? Se estiverem (e devem!), você não poderá registrar um cliente não cadastrado em pedidos.
    avatar
    Convidad
    Convidado


    [Resolvido]Escolher qual form abrir Empty Re: [Resolvido]Escolher qual form abrir

    Mensagem  Convidad 29/12/2011, 02:02

    Verifique...
    Anexos
    [Resolvido]Escolher qual form abrir Attachmentcafbr.zip
    (51 Kb) Baixado 19 vez(es)
    avatar
    Convidado
    Convidado


    [Resolvido]Escolher qual form abrir Empty Re: [Resolvido]Escolher qual form abrir

    Mensagem  Convidado 29/12/2011, 02:07

    Estou baixando
    avatar
    Convidado
    Convidado


    [Resolvido]Escolher qual form abrir Empty Re: [Resolvido]Escolher qual form abrir

    Mensagem  Convidado 29/12/2011, 02:13

    Não seria isso Norberto. Como esta apos digitar um nome não cadastrado e clicar em não ele apaga e fica no mesmo campo. O que eu preciso (se possivel) seria digitar o nome, e clicando em não ele fica nesta lista e vai para outro campo, será que é possivel??????????
    avatar
    Convidad
    Convidado


    [Resolvido]Escolher qual form abrir Empty Re: [Resolvido]Escolher qual form abrir

    Mensagem  Convidad 29/12/2011, 02:21

    Mas Clovis, veja no post 2:
    SeuCampo.SetFocus

    É só colocar o nome correto do seu campo!

    Não fiz no exemplo que você enviou porque não há outro campo para ir!

    Se quiser, poste o código e eu corrijo pra você.

    Quanto a apagar ou não o nome, também é opcional. Mas você não mje respondeu sobre os relacionamentos.

    Para não apagar o nome, veja que também mencionei em post anterior:
    Apague a linha:
    Me.Undo
    avatar
    Convidado
    Convidado


    [Resolvido]Escolher qual form abrir Empty Re: [Resolvido]Escolher qual form abrir

    Mensagem  Convidado 29/12/2011, 02:28

    Certo, os campos estão relacionados Idcliente(pedidos) para idCliente(cliente) um para muitos..
    No exemplo que lhe passei poderia ser o campo cadastro.
    Não reparei no seu código, fiz somente a digitação....
    vou refer e ja retorno
    avatar
    Convidad
    Convidado


    [Resolvido]Escolher qual form abrir Empty Re: [Resolvido]Escolher qual form abrir

    Mensagem  Convidad 29/12/2011, 02:35

    quote:
    "Não reparei no seu código, fiz somente a digitação...."

    Não reparou no código? Então não alterou os nomes de objeto?

    PS: Como vai inserir um nome não cadastrado? Os relacionamentos permitem isso?
    avatar
    Convidado
    Convidado


    [Resolvido]Escolher qual form abrir Empty Re: [Resolvido]Escolher qual form abrir

    Mensagem  Convidado 29/12/2011, 02:39

    Se entendi seria na linha vermelha para mandar apos digitação o campo, fiz de duas maneiras e não deram certo

    Private Sub cli_EstadoCivil_NotInList(NewData As String, Response As Integer)
    On Error Resume Next

    Dim blnOk As Boolean
    Response = acDataErrContinue
    Me.cli_EstadoCivil.Undo
    blnOk = Confirmar("O nome que você informou" & vbCrLf & _
    "não consta no cadastro de Estado Civil." & vbCrLf & _
    "Deseja cadastrar agora?")
    If Not blnOk Then
    Exit Sub
    Else
    If Application.CurrentProject.AllForms("FrmEstadoCivil").IsLoaded Then
    blnOk = Confirmar("O formulário já está aberto" & vbCrLf & _
    "Deseja alternar para o cadastro de Estado Civil?")
    If Not blnOk Then
    Exit Sub
    Else
    cli_DataAbertura.SetFocus
    ou form.cli_DataAbertura.SetFocus
    End If
    Else
    DoCmd.OpenForm "FrmEstadoCivil", acNormal, "", "", , acNormal
    DoCmd.GoToRecord , "", acNewRec
    End If
    End If

    End Sub
    avatar
    Convidado
    Convidado


    [Resolvido]Escolher qual form abrir Empty Re: [Resolvido]Escolher qual form abrir

    Mensagem  Convidado 29/12/2011, 02:41

    Claro que alterei, digitei pedro e ele me perguntava se era para cadastrar ou não.........
    avatar
    Convidad
    Convidado


    [Resolvido]Escolher qual form abrir Empty Re: [Resolvido]Escolher qual form abrir

    Mensagem  Convidad 29/12/2011, 02:57

    Private Sub cli_EstadoCivil_NotInList(NewData As String, Response As Integer)
    On Error Resume Next

    Dim blnOk As Boolean
    Response = acDataErrContinue
    'aqui não apaga o testo digitado
    'Me.cli_EstadoCivil.Undo

    blnOk = Confirmar("O nome que você informou" & vbCrLf & _
    "não consta no cadastro de Estado Civil." & vbCrLf & _
    "Deseja cadastrar agora?")
    If Not blnOk Then
    'aqui muda o foco
    Me.cli_DataAbertura.SetFocus
    Exit Sub
    Else
    If Application.CurrentProject.AllForms("FrmEstadoCivil").IsLoaded Then
    blnOk = Confirmar("O formulário já está aberto" & vbCrLf & _
    "Deseja alternar para o cadastro de Estado Civil?")
    If Not blnOk Then
    Exit Sub
    Else
    Forms!FrmEstadoCivil.SetFocus
    End If
    Else
    DoCmd.OpenForm "FrmEstadoCivil", acNormal, "", "", , acNormal
    DoCmd.GoToRecord , "", acNewRec
    End If
    End If

    End Sub

    Lembrando que é um exemplo. No bd enviado dá um problema ao mover o foco, que não me dei ao trabalho de verificar. Em circunstâncias normais funciona.
    avatar
    Convidado
    Convidado


    [Resolvido]Escolher qual form abrir Empty Re: [Resolvido]Escolher qual form abrir

    Mensagem  Convidado 29/12/2011, 12:46

    Obrigado Norberto.Vou adaptar ao meu e estudar bem....
    avatar
    Convidado
    Convidado


    [Resolvido]Escolher qual form abrir Empty Re: [Resolvido]Escolher qual form abrir

    Mensagem  Convidado 29/12/2011, 14:18

    Esta como antes, só aceita de cadastrar..... vou separa por interiro o form em que pretendo e lhe envio.....
    avatar
    Convidad
    Convidado


    [Resolvido]Escolher qual form abrir Empty Re: [Resolvido]Escolher qual form abrir

    Mensagem  Convidad 31/12/2011, 01:01

    Seria o ideal.

    Conteúdo patrocinado


    [Resolvido]Escolher qual form abrir Empty Re: [Resolvido]Escolher qual form abrir

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 9/12/2024, 03:16