Pergunta

Aqui está a grande visão.

Estou construindo um banco de dados de peças que será usado para desmontagem de eletrônicos.

quando uma peça é inicialmente removida da PCB, seu designador de referência e valor medido serão registrados (cada tipo de peça possui um formulário de entrada personalizado, por exemplo,resistores, capacitores, CIs, etc).Posteriormente, retornaremos a cada parte e acrescentaremos mais detalhes.

Neste ponto, posso selecionar as peças existentes em uma caixa de combinação, usar a função FindFirst para localizar seu registro na tabela principal, extrair as informações do tipo de peça correspondente e abrir o formulário de entrada de dados apropriado.

O que não consigo descobrir é como exibir esse registro no formulário recém-aberto.A estratégia típica Me.Bookmark = rs.Bookmark não funciona porque estou abrindo um novo formulário

Private Sub cmdEditPart_Click()
Dim rs As Recordset
Dim qdf As QueryDef
Dim prm As Parameter
Dim partType As String
Set qdf = CurrentDb.QueryDefs("Parts_SingleBoard")
qdf.Parameters(0) = Forms![Start Page (Boards)]![ComboPartNumber]

'Lookup record
    If Not IsNull(Me.cmbRefDes) Then
        'Save before move.
        If Me.Dirty Then
            Me.Dirty = False
        End If
        'Search in the clone set.
        Set rs = qdf.OpenRecordset.Clone
        rs.FindFirst "[Reference Designator] = '" & Me.cmbRefDes & "'"
        If rs.NoMatch Then
            MsgBox "Part not found"
        Else
            'Display the found record in the appropriate form.
            partType = rs.Fields("Part Type")
            DoCmd.OpenForm (partType)
            'Some sort of bookmark wizardy ****THIS IS WHAT I NEED HELP WITH *****
        End If
        Set rs = Nothing
    End If
End Sub

Recapitulação de 4 etapas:

Ver lista de peças existentes -> selecionar peça -> abrir dinamicamente o formulário de entrada de dados correto -> preencher o formulário com o registro que desejo editar

Foi útil?

Solução

Use o mecanismo de filtro integrado ao método DoCmd.OpenForm, mais ou menos assim:

DoCmd.OpenForm (partType), , , "[Reference Designator] = '" & Me.cmbRefDes & "'"

Não tenho certeza se tenho vírgulas suficientes antes da minha declaração de filtro.Você pode precisar de quatro vírgulas.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top