Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Thiago Sousa

Como preencher automaticamente um formulario.

Recommended Posts

Olá thiago,

Não consegui entender o seguinte:

 

Que dados você gostaria de inserir usando a caixa de combinação? Os dados da tabela contas?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi Thiago,

Desculpa a demora em responder.

 

Você pode fazer de duas formas: A mais simples e a mais complexa.

A mais simples

 

1-Na Propriedade RowSource (OrigemDaLinha) do combobox, insira a tabela que você quer puxar os dados

2-Insira no evento AfterUpdate do combobox o seguinte código(adapte ao seu caso):

 

Private Sub CmbPreenche_AfterUpdate()

'Aqui eu especifico que as caixas de texto terão seus valores definidos pelos dados do combobox.

Me.TxtCep = CmbPreenche.Column(0)

Me.TxtEndereço = CmbPreenche.Column(1)

Me.TxtBairro = CmbPreenche.Column(2)

Me.TxtEstado = CmbPreenche.Column(3)

End Sub

 

A mais complexa

 

1-Adicione a referência "Microsoft ActiveX Data Objects 2.1 Library" no menu Ferramentas do Editor VBA.

2-Insira no evento AfterUpdate do combobox o seguinte código(adapte ao seu caso):

 

Private Sub CmbPreenche_AfterUpdate()

Dim cnn As New ADODB.Connection

Dim rs As ADODB.Recordset

Set cnn = CurrentProject.Connection

Set rs = New ADODB.Recordset

rs.CursorType = adOpenDynamic

rs.LockType = adLockOptimistic

rs.Open "Tbl_CEP", cnn, , , adCmdTable 'Aqui é só definir a tabela que você quer buscar os dados.

If rs.Supports(adIndex) Then

rs.Index = "PrimaryKey"

rs.Seek Me.CmbPreenche, adSeekFirstEQ

If Not rs.EOF Then

Me.TxtCep = rs("cep")

Me.TxtEndereço = rs("logradouro")

Me.TxtBairro = rs("bairro")

Me.TxtEstado = rs("municipio")

End If

Else

rs.Find "Cep=" & Me.CmbPreenche, 0, adSearchForward, 1

Me.TxtCep = rs("cep")

Me.TxtEndereço = rs("logradouro")

Me.TxtBairro = rs("bairro")

Me.TxtEstado = rs("municipio")

 

End If

rs.Close

cnn.Close

Set cnn = Nothing

Set rs = Nothing

End Sub

 

Bom, é isso aí.

Qualquer coisa é só falar.

Abraço.

Deus te abençoe.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá thiago,

 

Clique no combobox e depois em Propriedades; e na aba Dados, vá em Origem da Linha e verifique em qual posição está o campo que você quer visualizar no combobox.

Ex:

Se está nessa posição:

Número Endereço Instalação Endereço Cobrança

O campo está na posição 0

 

ou

 

Endereço Instalação Número Endereço Cobrança

O campo está na posição 2

 

Obs:Existem 5 campos, mas o indice começa a partir do zero (que é o primeiro campo)

Você deve contar:0,1,2,3,4

 

Bom, se você já descobriu a posição, vá na aba Dados, e no Número de Colunas, defina a quantidade de campos da sua consulta feita no combobox(seguinte os exemplos acima, a quantidade é 5).

Agora é só ir Largura das Colunas na mesma aba e definir todas como zero, exceto a que você quer que aparece no seu combobox.

Ex:

Número Endereço Instalação Endereço Cobrança

1;0;0;0;0

 

ou

 

Endereço Instalação Número Endereço Cobrança

0;0;1;0;0

 

E isso aí, qualquer dúvida, é só teclar.

 

Abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá amigos, tudo bem? Olha só, eu preciso de uma função semelhante a essa mas que quando eu selecionar o CEP todos os outros campos de endereço sejam preenchidos automaticamente. Eu tentei esse esquema mais simples e ele só preencheu o campo CEP. Os campos Rua, Bairro, Cidade e Estado não foram preenchidos. Será que fiz algo errado?

Desde já agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já consegui aqui. Estava faltando adptar direitinho às minhas necessidades. Eu nunca tinha usado esse tipo de recuros de códigos no access, sempre usei só os modelos visuais e macros, e fazia um tempão tambem que eu não mexia com Access. Mas como sou curioso, fui mexendo aqui até dar certo, rsrsrs.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.