Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Caixa de combinação


Marcia Torquato

Pergunta

Prezados colegas:

Já pesquisei nos tópicos sobre caixa de combinação e não encontrei a solução para a minha dúvida.

Ou melhor encontrei um próximo, porém não me deu a idéia de como fazer, já que a dúvida esta além

da minha.

Tenho duas tabelas, uma é de Ruas onde tem os seguintes campos, Nome da Rua, CEP e setor e outra é de dados, onde

terei o nome da pessoa, data de nascimento, idade e afins.

No meu formulário de Dados eu gostaria que através de uma caixa de combinação

fosse localizado a Rua que cadastrei na tabela e ao selecionar a Rua os demais campos

como CEP e setor fossem preenchidos automáticamente.

Não consigo fazer esse processo.

Encontrei caminho para usar dois formulários, como ter um de DADOS e com um botão de comando acessar outro

formulário que seria o de RUAS. Mas esta não é a minha intenção, pois quero deixar tudo em um único formulário para ficar o mais didático

possível.

Se por ventura tiver algum tópico com esta resposta, peço antecipadamente desculpas, pois confesso que não encontrei.

E se puderem me indicar ficarei imensamente agradecida.

Obrigada a todos pela atenção! :mellow:

Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0

Consegui ajuda.

A resposta esta aí.

Option Compare Database

Private Sub ExibirDados()

If IsNull(Me.CódigoRua.Value) Or Not IsNumeric(Me.CódigoRua.Value) Then

Exit Sub

End If

Me.Endereço.Value = _

DLookup("Endereço", "Ruas", "[CódigoRua]=" & CLng(Trim(Me.CódigoRua.Value)))

Me.CEP.Value = _

DLookup("CEP", "Ruas", "[CódigoRua]=" & CLng(Trim(Me.CódigoRua.Value)))

Me.ResponsavelRua.Value = _

DLookup("ResponsavelRua", "Ruas", "[CódigoRua]=" & CLng(Trim(Me.CódigoRua.Value)))

End Sub

Private Sub CódigoRua_AfterUpdate()

Call ExibirDados

Me.Recalc

End Sub

Private Sub Form_AfterUpdate()

Me.Recalc

End Sub

Private Sub Form_Open(Cancel As Integer)

DoCmd.GoToRecord , , acNewRec

End Sub

Link para o comentário
Compartilhar em outros sites

  • 0

MrMALJ

Perdão.

Bem o que ocorreu foi o seguinte.

Tenho duas tabelas, uma de dados onde tenho, nome completo, idade , fone...Endereço.

E outra tabela de cadastro de ruas, onde tenho CEP, setor, Rua,Responsável.

No formulário Dados cadastrais criei uma caixa de combinação de ruas, baseado na

tabela ruas, ou seja quando o usuário começar a cadatrar uma nova pessoa e

chegar na caixa de combinação, escolherá a Rua em que o morador esta situado e os dados Endereço, CEP,Setor,

Responsável, será preenchido automaticamente, sem ter que entrar em um novo

formulário para preencher esta informação.

Antes eu estava conseguindo fazer o processo com dois formulários o que não é prático,

já que as pessoas que usarão o sistema nunca utilizaram um computador ou conhecem muito

pouco, portanto a minha idéia é deixa-lo o mais prático e didático possível.

Espero ter me expressado melhor.

Link para o comentário
Compartilhar em outros sites

  • 0

Ummmm ficou um pouco mais claro, mais agora foi eu quem travou num toh pensando em nada pra explicar o processo então peço pra você postar o BD ou essa parte dele que vou dar um jeito de fazer isso pra você e posto de volta, ok!

Link para o comentário
Compartilhar em outros sites

  • 0

MrMALJ

Bom dia!

Deu para resolver. Agora até mesmo se você colocar uma informação mais tarde

ele já esta programado para preencher todos os dados alterados. Exemplo, você não sabe

o CEP para não travar o processo deixará o campo para depois e continuará com as outras

informações. Quando souber o CEP no formRuas ao colocar o número do CEP automaticamente na Rua

daquele CEP no formDados será preenchido automaticamente.

Segue a solução:(Caixa de combinação do FormDados em Após atualizar)

Option Compare Database

Private Sub ExibirDados()

If IsNull(Me.CódigoRua.Value) Or Not IsNumeric(Me.CódigoRua.Value) Then

Exit Sub

End If

Me.Endereço.Value = _

DLookup("Endereço", "tab_Ruas", "[CódigoRua]=" & CLng(Trim(Me.CódigoRua.Value)))

Me.CEP.Value = _

DLookup("CEP", "tab_Ruas", "[CódigoRua]=" & CLng(Trim(Me.CódigoRua.Value)))

Me.ResponsavelRua.Value = _

DLookup("ResponsavelRua", "tab_Ruas", "[CódigoRua]=" & CLng(Trim(Me.CódigoRua.Value)))

Me.Setor.Value = _

DLookup("Setor", "tab_Ruas", "[CódigoRua]=" & CLng(Trim(Me.CódigoRua.Value)))

Me.Bairro.Value = _

DLookup("Bairro", "tab_Ruas", "[CódigoRua]=" & CLng(Trim(Me.CódigoRua.Value)))

Me.Cidade.Value = _

DLookup("Cidade", "tab_Ruas", "[CódigoRua]=" & CLng(Trim(Me.CódigoRua.Value)))

Me.UF.Value = _

DLookup("UF", "tab_Ruas", "[CódigoRua]=" & CLng(Trim(Me.CódigoRua.Value)))

End Sub

Private Sub CódigoRua_AfterUpdate()

Call ExibirDados

Me.Recalc

End Sub

Private Sub Form_AfterUpdate()

Me.Recalc

End Sub

Private Sub Form_Open(Cancel As Integer)

DoCmd.GoToRecord , , acNewRec

End Sub

Com relação a atualizar automaticamente para depois a solução é

esta (formRuas em Após atualizar):

Private Sub CEP_AfterUpdate()

DoCmd.RunSQL "UPDATE Tab_Dados SET Tab_Dados.CEP = Forms!FormRuas!CEP WHERE (((Tab_Dados.CódigoRua)=[Forms]![FormRuas]![CódigoRua]));"

End Sub

Agradeço a atenção de todos.

Editado por Marcia Torquato
Link para o comentário
Compartilhar em outros sites

  • 0

Otimo agradeço por retornar a solução, só faço uma observação quanto ao uso do Dlookup em bases de dados pequenas isso é otimo porem quando ele começz ficar grande o tempo de resposta fica alto por isso controle o uso da função!

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...