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]autocomplentar ou inserir registro

    avatar
    lus.cjr
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12
    Registrado : 07/03/2012

    [Resolvido]autocomplentar ou inserir registro Empty autocomplentar ou inserir registro

    Mensagem  lus.cjr 7/3/2012, 22:05

    Boa noite,

    Tenho um subformulario e tem um campo nome que gostaria que reconhecesse os que ja foram digitados (tipo caixa de listagem)

    Na caixa de listagem nao consigo porque quando nao tem o nome ele nao aceita um novo
    Na caixa de texto ele nao auto completa um nome que ja foi digitado.


    Alguem poderia me dar uma dica.

    Obrigado
    Access 2007


    Última edição por lus.cjr em 8/3/2012, 21:24, editado 2 vez(es)
    avatar
    Convidad
    Convidado


    [Resolvido]autocomplentar ou inserir registro Empty Re: [Resolvido]autocomplentar ou inserir registro

    Mensagem  Convidad 7/3/2012, 22:32


    Olá!

    Altere o controle para Caixa de Combinação (ComboBox).
    Na propriedade Tipo de Origem da Linha defina como Tabela/Consulta.
    Na propriedade Origem da Linha insira SELECT DISTINCT NomeCampo FROM NomeTabela ORDER BY NomeCampo;
    Alter os nome de tabela e campo cfe a propriedade Nome deles.
    Defina as demais propriedades cfe lhe aprouver.
    avatar
    lus.cjr
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12
    Registrado : 07/03/2012

    [Resolvido]autocomplentar ou inserir registro Empty Re: [Resolvido]autocomplentar ou inserir registro

    Mensagem  lus.cjr 8/3/2012, 19:38

    nao deu certo - ele nao aceita novo nome de cliente

    em qual site poderia colocar o bda para compartilhar aqui, ficaria mais facil para a ajuda

    avatar
    Convidad
    Convidado


    [Resolvido]autocomplentar ou inserir registro Empty Re: [Resolvido]autocomplentar ou inserir registro

    Mensagem  Convidad 8/3/2012, 20:18


    Para isso é necessário colocar código no evento SeNãoEstiverNaLista da ComboBox.
    Pode ser feito adicionando diretamente à tabela, ou abrindo o form de clientes para um novo cadastro.
    Se o cadastro exige o preenchimento de determinados campos cujos valores não são sabidos na hora, é aconselhável abrir o form de cadastro.
    Senão dá pra criar o novo registro automaticamente.
    Vc também pode dar opção ao usuário sobre como ele deseja acrescentar. Um exemplo dessa opção:


    Private Sub CodCliente_NotInList(NewData As String, Response As Integer)
    On Error GoTo Trato

    Response = acDataErrContinue

    If Confirmar("Deseja adicionar " & NewData & " automaticamente ao cadastro de Clientes?" & vbCrLf & _
    "Lembre que para imprimir documentos outros dados deverão ser adicionados ao cadastro.") Then
    If CurrentProject.AllForms("for_Clientes").IsLoaded Then DoCmd.Close acForm, "for_Clientes", acSavePrompt

    Dim db As Database
    Dim rs As DAO.Recordset
    Set db = CurrentDb
    Set rs = db.OpenRecordset("tab_Clientes")
    rs.AddNew
    rs!NomeCliente = NewData
    rs.Update
    rs.Close
    Set rs = Nothing
    db.Close
    Set db = Nothing
    Response = acDataErrAdded
    Else
    Me.CodCliente.Undo
    If Not Confirmar("Deseja abrir o cadastro de Clientes e cadastrar agora?") Then Exit Sub
    If CurrentProject.AllForms("for_Clientes").IsLoaded Then
    If Confirmar("O formulário já está aberto." & vbCrLf & _
    "Deseja alternar para o cadastro de Clientes?") Then Forms!for_Clientes.SetFocus
    Else
    DoCmd.OpenForm "for_Clientes"
    DoCmd.GoToRecord , "", acNewRec
    End If
    End If

    Exit Sub
    Trato: MsgBox Err.Description
    End Sub


    Você precisa colar esta função num módulo global ou novo:


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

    avatar
    lus.cjr
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12
    Registrado : 07/03/2012

    [Resolvido]autocomplentar ou inserir registro Empty Re: [Resolvido]autocomplentar ou inserir registro

    Mensagem  lus.cjr 8/3/2012, 21:13

    Muito obrigado pelo retorno morbs.


    Estou fazendo um bda para um grande amigo.

    Ele trabalha com leasing.

    O cadastro do cliente principal - consegui

    O cliente principal repassa cheques dos seus clientes sendo mais de 50 cheques diariamente, seria muito pratico para ele que fosse feito um cadastro do nome do emissor do cheque automatico.

    Pelo pouco que entendo, nestes comandos que voce enviou - perguntaria ao digitador se ele quer incluir - e isso mesmo

    Atraves desta sua ideia, pensei difirente, ////

    Seria possivel, quando ele digitar o nome o sistema vendo que nao tem na tabela, abriria o formulario ja com o nome para incluir e um botao para confirmar a inclusao e ja fechar o fomulario da inclusão

    Se for possivel e voce conseguir me instruir aos procedimentos corretos - agradeço muito
    Pediria a "aula" tambem - se for um procedimento de evento em qual campo devo colocar e se for um modulo se preciso colocar algum executavel para ele. Nao entendo muito desta area.


    Muito obrigado


    avatar
    Convidad
    Convidado


    [Resolvido]autocomplentar ou inserir registro Empty Re: [Resolvido]autocomplentar ou inserir registro

    Mensagem  Convidad 8/3/2012, 21:41


    Bem, se o cliente não constar na lista da combo - cuja propriedade Limitar a uma lista deve estar como Sim - é porque não está na tabela.
    Aí entra o evento NotInList que é disparado justamente nesta situação:
    Uma MsgBox pergunta ao usuário se deseja abrir o form para cadastrar.
    Se a resposta for Sim, verifica se o form já está aberto. Se não estiver, abre e vai para um novo registro.
    Neste ponto acrescentei código para já inserir o valor da combo no campo NomeCliente.

    O código ficaria parecido com este:


    Private Sub CodCliente_NotInList(NewData As String, Response As Integer)
    On Error GoTo Trato
    Response = acDataErrContinue
    If Not Confirmar("Deseja abrir o cadastro de Clientes e cadastrar agora?") Then Exit Sub
    If CurrentProject.AllForms("for_Clientes").IsLoaded Then
    If Confirmar("O formulário já está aberto." & vbCrLf & _
    "Deseja alternar para o cadastro de Clientes?") Then Forms!for_Clientes.SetFocus
    Else
    DoCmd.OpenForm "for_Clientes"
    DoCmd.GoToRecord , "", acNewRec
    Forms!for_Clientes.NomeCliente = NewData
    End If
    End Sub


    No mais, é só colocar código no botão para salvar.
    avatar
    lus.cjr
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12
    Registrado : 07/03/2012

    [Resolvido]autocomplentar ou inserir registro Empty Re: [Resolvido]autocomplentar ou inserir registro

    Mensagem  lus.cjr 8/3/2012, 22:30

    Morbs,

    acredito ter seguido todos os passos corretamente, mas esta dando erro - falando que nao e um item da lista.

    Se puder ver no bda, esta no form clientes que esta abrindo automatico e o campo combox e o [Nome emissor cheque]


    Muito obrigado
    Anexos
    [Resolvido]autocomplentar ou inserir registro Attachmentatual1.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (72 Kb) Baixado 16 vez(es)
    avatar
    Convidad
    Convidado


    [Resolvido]autocomplentar ou inserir registro Empty Re: [Resolvido]autocomplentar ou inserir registro

    Mensagem  Convidad 8/3/2012, 22:37


    Converta para A2003
    avatar
    lus.cjr
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12
    Registrado : 07/03/2012

    [Resolvido]autocomplentar ou inserir registro Empty Re: [Resolvido]autocomplentar ou inserir registro

    Mensagem  lus.cjr 8/3/2012, 22:42

    convertido para 2003


    eu tambem prefiro muito mais o 2003 - so estou no 2007 porque e um bda basico. E é o que esta na maquina dele

    obrigado



    Anexos
    [Resolvido]autocomplentar ou inserir registro Attachment2003.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (44 Kb) Baixado 9 vez(es)
    avatar
    Convidad
    Convidado


    [Resolvido]autocomplentar ou inserir registro Empty Re: [Resolvido]autocomplentar ou inserir registro

    Mensagem  Convidad 8/3/2012, 23:12


    O emissor do cheque é o cliente, certo?
    Então a combo que escolhe o cliente deve ter na origem da linha a tabela "Cliente" e não esta tabela "Nome emissor".
    Posso fazer esta correção ou estou enganado?

    Outro detalhe:
    Vc colocou a combo num form "Cheque Subformulário", mas também existe um form "Id Consulta".
    Qual a relação entre estes forms, já que a tabela "Id" está entre as tabelas "Cliente" e "Cheque", que deveriam estar relacionadas diretamente. Do jeito que está, o relacionamento passa pela tabela "Id", cuja necessidade não entendi.
    avatar
    lus.cjr
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12
    Registrado : 07/03/2012

    [Resolvido]autocomplentar ou inserir registro Empty Re: [Resolvido]autocomplentar ou inserir registro

    Mensagem  lus.cjr 8/3/2012, 23:21

    O emissor do cheque é o cliente, certo?
    Nao - ele e a pessoa que e responsavel pelos cheques

    Então a combo que escolhe o cliente deve ter na origem da linha a tabela "Cliente" e não esta tabela "Nome emissor".
    Posso fazer esta correção ou estou enganado?
    esta enganado - ele e a pessoa que e responsavel pelos cheques

    Outro detalhe:
    Vc colocou a combo num form "Cheque Subformulário", mas também existe um form "Id Consulta".
    Qual a relação entre estes forms, já que a tabela "Id" está entre as tabelas "Cliente" e "Cheque", que deveriam estar relacionadas diretamente. Do jeito que está, o relacionamento passa pela tabela "Id", cuja necessidade não entendi.
    a form id consulta e para mostrar em um campo maior somente os cheques - clicando no combo a direita POR ORDEM DE VENCIMENTO chama este form
    Faz muito tempo que nao trabalho com access e foi a unica forma que consegui - este form id clientes esta por ordem alfebetica o campo data de pagamento


    Para voce entender melhor a funçao deste bda - ele precisa registrar todos os cheques.
    Porque o cliente - no vencimento do cheque - pode levar outro cheque do mesmo valor e emissor do cheque - para conseguir mais tempo para pagamento, e como tem muitos cheques - fica dificil o controle

    Daqui a 90 minutos eu retorno - vou trabalhar - fazer o que - mas consigo continuar la.

    Obrigado
    avatar
    Convidad
    Convidado


    [Resolvido]autocomplentar ou inserir registro Empty Re: [Resolvido]autocomplentar ou inserir registro

    Mensagem  Convidad 8/3/2012, 23:44


    Tudo bem, então há 3 tabelas: Cheque, Cliente, e Emissor.
    Todas as informações necessárias já não são cadastradas nestas 3 tabelas? Porque a tabela "Id"?
    avatar
    Convidad
    Convidado


    [Resolvido]autocomplentar ou inserir registro Empty Re: [Resolvido]autocomplentar ou inserir registro

    Mensagem  Convidad 9/3/2012, 00:35


    Sugiro que os relacionamentos com esta tabela sejam excluídos, e que seja estabelecido o relacionamento direto entre as tabelas Cheque e Cliente.
    Na tabela Cliente existem os campos id Cliente (AutoNum) e Cliente (Texto). Foi definido a chave-primária para o campo Cliente. Observe que a chave-primária deve ser um campo exclusivo, que não se repete nos registros.
    Dois clientes podem ter nomes iguais, então a chave deve ser o campo id Cliente.
    Feita essa alteração, estabelece-se o relacionamento entre Cliente.id Cliente e Cheque.id

    Uma dica importante: Não deixe espaços em Nomes de controles (tabelas, consultas, formulários, macros, módulos, e todo e qualquer campo ou controle dentro destes).

    Peço que faça estas alterações e reenvie o bd.
    A aplicação dos códigos, assunto do tópico, então é rapidinho.
    avatar
    lus.cjr
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12
    Registrado : 07/03/2012

    [Resolvido]autocomplentar ou inserir registro Empty Re: [Resolvido]autocomplentar ou inserir registro

    Mensagem  lus.cjr 9/3/2012, 02:14

    estou numa conexao de 500 mg num note - conexao atraves do smart - ta bravo

    fiz as alteraçoes solicitadas

    nao entendi muito bem quando comentou de relacionamento direto, mas corrigi tudo que entendi
    Anexos
    [Resolvido]autocomplentar ou inserir registro Attachment2003alterado.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (114 Kb) Baixado 40 vez(es)
    avatar
    lus.cjr
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12
    Registrado : 07/03/2012

    [Resolvido]autocomplentar ou inserir registro Empty Re: [Resolvido]autocomplentar ou inserir registro

    Mensagem  lus.cjr 9/3/2012, 03:08

    agora deu certo apenas com o SELECT DISTINCT NomeCampo FROM NomeTabela ORDER BY NomeCampo e possivelmente as alterações que voce solicitou..

    so amanha para saber se dara certo no access 2007 ,,,,, No note so o 2003 e o beta 2010 que nao instalei

    ficou quase do jeito que eu queria

    so precisa de uma dica - saindo do campo cliente_emissao_cheque - que esta em subformulario eu precisaria de algo para atualizar na tabela o novo cliente. So atualiza quando fecho o formulario.

    obrigado
    avatar
    Convidad
    Convidado


    [Resolvido]autocomplentar ou inserir registro Empty Re: [Resolvido]autocomplentar ou inserir registro

    Mensagem  Convidad 9/3/2012, 13:57

    Fiz algumas modificações nas tabelas.
    Anexos
    [Resolvido]autocomplentar ou inserir registro Attachmentlus.cjr2003.zip
    (37 Kb) Baixado 25 vez(es)
    avatar
    lus.cjr
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12
    Registrado : 07/03/2012

    [Resolvido]autocomplentar ou inserir registro Empty Re: [Resolvido]autocomplentar ou inserir registro

    Mensagem  lus.cjr 9/3/2012, 18:29

    este seu bda enviado nao deu certo para mim - no campo id_emissor - quando coloco um novo - ele da erro falando que nao e um item da lista.
    Eu vi o modulo que voce colocou mas ele nao esta perguntando.
    Sera que e por causa da versao instalada que nao deu certo - eu tenho aqui a atualizaçao do access SP03.

    Neste que fiz ontem em anexo, esta dando certo no 2003 e 2007. so nao consigo descobrir como salvar a inclusao de um novo nome na lista - tentei por procedimento e macro (acredito nao ter feito do jeito exato). A unica forma foi fechando o formulario e reabrindo - ai ja vem com ele na lista. Acredito que deste modo ficou bom - porque percebemos que nao tem na lista -

    Anexos
    [Resolvido]autocomplentar ou inserir registro Attachment2003 0903.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (71 Kb) Baixado 13 vez(es)
    avatar
    Convidad
    Convidado


    [Resolvido]autocomplentar ou inserir registro Empty Re: [Resolvido]autocomplentar ou inserir registro

    Mensagem  Convidad 9/3/2012, 18:34


    Não coloquei código no id_emissor. Só no id_cliente, como teste.
    Basta copiar e substituir os Nomes.
    avatar
    lus.cjr
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12
    Registrado : 07/03/2012

    [Resolvido]autocomplentar ou inserir registro Empty Re: [Resolvido]autocomplentar ou inserir registro

    Mensagem  lus.cjr 9/3/2012, 19:12

    obrigado norbs,,

    nao tinha percebido que o modulo era para outro cliente.

    quase la,,

    depois que aparece a pergunta se quero adicionar o novo cliente eu coloco sim e depois aparece

    "a macro ou funçao definida para a propriedadde antesdeatualizar ou regradevalidação para este campo esta evitando que o access salve os dados do campo. (com um botao OK)

    so que neste campo nao tem nada na regravalidaçao e antesdeatulizar - aperto OK e esta salvo - tudo certo - so no entendi este aviso da macro
    Anexos
    [Resolvido]autocomplentar ou inserir registro Attachmentlus.cjr2003.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (56 Kb) Baixado 47 vez(es)
    avatar
    Convidad
    Convidado


    [Resolvido]autocomplentar ou inserir registro Empty Re: [Resolvido]autocomplentar ou inserir registro

    Mensagem  Convidad 9/3/2012, 19:25


    A regra de validação talvez se refira a tabela. Verifique se há algum campo com a propriedade Requerido definida com Sim.
    Porque aqui a mensagem não aparece. Mas como eu fiz alterações nas tabelas no exemplo que enviei, e vc pode estar usando o seu bd, pode ter alguma diferença.

    Este tipo de inconsistência não é rara em bd's convertidos.

    Quanto a macro, é mensagem padrão, pois seu bd só tem a macro AutoExec.
    avatar
    lus.cjr
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12
    Registrado : 07/03/2012

    [Resolvido]autocomplentar ou inserir registro Empty Re: [Resolvido]autocomplentar ou inserir registro

    Mensagem  lus.cjr 9/3/2012, 19:43

    Nao achei nada na regra de validaçao

    estava usando o seu bda

    como esta pequeno o bda vou fazer de novo quem sabe resolve.
    avatar
    lus.cjr
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12
    Registrado : 07/03/2012

    [Resolvido]autocomplentar ou inserir registro Empty Re: [Resolvido]autocomplentar ou inserir registro

    Mensagem  lus.cjr 10/3/2012, 00:48

    refiz tudo de novo

    nao sei porque mas depois de pronto ele dava aquele erro de nao aceitar registro.

    no 2003 funcionou normal - com aquele pequeno aviso da regra e makro que nao descobri.

    quando abria o seu ultimo com o 2007 ou entao importava para um bda novo. funcionava. mas quando reiniciava nao aceitava registro novo no emissor do cheque.

    O unico que consegui no 2007 foi o da mensagem 17. Nao descobri com salvar o nome sem ter que fechar o form.

    Mas tudo bem, expliquei para o amigo e ele achou que nao tem nenhum problema.

    Muito obrigado NORBS pela ajuda, ficaria impossivel sem voce.

    Fico contente que existe este grande forum com grandes feras que ja me ajudaram antigamente, Alexandre Neves, JPaulo, Wsenna, e o OsmarJr que aparece em todos foruns com grande presença.

    Muito obrigado e boa sorte

    avatar
    Convidad
    Convidado


    [Resolvido]autocomplentar ou inserir registro Empty Re: [Resolvido]autocomplentar ou inserir registro

    Mensagem  Convidad 10/3/2012, 01:04


    Pena que não ficou 'redondo'. Mas talvez seja um pequeno detalhe que acabamos descobrindo depois.

    Vou marcar como resolvido. Se precisar abra um novo tópico, ok?

    Abraço!

    Conteúdo patrocinado


    [Resolvido]autocomplentar ou inserir registro Empty Re: [Resolvido]autocomplentar ou inserir registro

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 24/11/2024, 22:52