Vínculo entre Formulários
Nota importante: para ter acesso aos vídeos e arquivos exemplos deste site, adquira um dos planos apresentados abaixo. Você pode comprar em até 5x no Cartão de Crédito.
Veja como comprar e saiba mais sobre o material oferecido, clicando aqui.
Usuário Gilson:
Olá! Gostaria de saber como faço para que o vínculo se repita em um novo registro.
Tenho um cliente que tem uma lista de funcionários (formulário com o nome do cliente e um subForm com a lista de todos os funcionários). Clico no botão para adicionar o novo funcionário e abre um formulário para adicionar este registro, vinculado com o código do cliente. Até aí, tudo OK! Porém, quando clico em novo neste formulário( frmFuncionarios ), aparece a mensagem de que o novo registro precisa de um vínculo.
Preciso que me ajude! Desde já agradeço a sua disponibilidade!
Suporte:
Gilson, está faltando você informar o valor do campo do relacionamento entre as tabelas. Segue abaixo um pequeno exemplo:
No campo IDCliente do formulário frmFuncionarios foi acrescentado a propriedade Valor Padrão a seguinte linha:
Faça o login aqui para ter acesso ao código.
AbrirArgs (OpenArgs) possui o valor do campo ID do formulário frmClientes. O OpenArgs foi preenchido com o valor, na chamada de abertura do formulário frmFuncionarios, do botão Novo Funcionário. Veja a parte em vermelho!
Faça o login aqui para ter acesso ao código.
Observe, também, que no botão Novo Funcionário ( do formulário frmFuncionarios ) inseri, novamente, o valor ID na propriedade Valor Padrão do campo IdCliente. Creio que seja exatamente isso que falta no seu código.
Faça o login aqui para ter acesso ao código.
Usuário Gilson:
Muito Obrigado !!!! O exemplo foi show! Resolvido!!!!
Download
2 comentário(s) Claudinei A Santos 01/04/2021 07:36:26 Bo dia Avelino: Vou expor meu problema. Fiz um pequeno projeto para uma açougue. Quando praticamente estava terminando dividi o bd, e ai começou minha dord e cabeça... Todos os códigos ref a gravação , Edição e Delete passaram a apresentar erro. Baixo segue um dos códigos: Dim db As Database Dim rs As DAO.Recordset Set db = CurrentDb() 'defino que irei Utilizar o BD atual Set rs = db.OpenRecordset("CONTPG", dbOpenTable) rs.Index = "ID" <====== ja decara dacerro aqui rs.Seek "=", [TXIDCONTA] Dim f As Variant f = DMax("IDCONTA", "CONTPG") If IsNull(f) Then f = 0 End If If rs.NoMatch Then rs.AddNew rs!IDCONTA = (f + 1) Me!IDCONTA = rs!IDCONTA rs!DESC = Me.TXDESC Me.IDCONTA = rs!IDCONTA Me.TXDESC = rs!DESC Else rs.Edit rs!IDCONTA = TXIDCONTA rs!DESC = TXDESC Me!IDCONTA = rs!IDCONTA Me.TXDESC = rs!DSEC rs.Update rs.Close End If End Sub Ai fiz varias alterações, ( esse é o codigo original), mas nada adianta.. Até usei um exeplo que me lembrei ter no antigo Ativo Access que tratava do assunto Seek e Index em forms desvinculados, mas nao adiantou. Poreia me ajudar. Monta Ribos mas meu email cadastrado na epoca era neysatos@sercomtel.com.br agora foi adcionado o numeral07 depois do ney santos. Att Claudinei Orlando Pinna 25/04/2020 10:22:20 Caro Avelino, Como assinante frequente do seu site gostaria de parabeniza-lo pelo excelente conteúdo e didática. Me dirijo à você com uma dúvida. Tenho um formulário que tem um sub formulário ligados por um código específico. No formulário principal tenho uma combobox que filtra pelo nome do Torneio (cujo código é a ligação entre os dois. Acontece, que quando executo o filtro os registros detalhe (do subformulário não aparecem. Se ao invés de usar o filtro eu simplesmente navego entre os registros, od registros detalhes acompanham normalmente, O Código do meu filtro está abaixo. Agradeço se puder me dar uma luz. Orlando Pinna Private Sub cboFilter_Change() ' If the combo box is cleared, clear the form filter. If Nz(Me.cboFilter.Text) = ?? Then Me.Form.Filter = ?? Me.FilterOn = False ' If a combo box item is selected, filter for an exact match. ' Use the ListIndex property to check if the value is an item in the list. ElseIf Me.cboFilter.ListIndex <> -1 Then Me.Form.Filter = "[Nome do Torneio] = '" & _ Replace(Me.cboFilter.Text, "'", "'") & "'" Me.FilterOn = True ' If a partial value is typed, filter for a partial company name match. Else Me.Form.Filter = "[Nome do Torneio] Like '*" & _ Replace(Me.cboFilter.Text, "'", "'") & "*'" Me.FilterOn = True End If ' Move the cursor to the end of the combo box. Me.cboFilter.SetFocus Me.cboFilter.SelStart = Len(Me.cboFilter.Text) End Sub |