Accès: Ouvrez l'enregistrement existant dans un formulaire personnalisé pour l'édition

StackOverflow https://stackoverflow.com//questions/22055958

  •  21-12-2019
  •  | 
  •  

Question

Voici la grande vision.

Je construis une base de données de pièces qui sera utilisée pour l'électronique Dis-Assembly.

Lorsqu'une pièce est initialement retirée de la carte PCB, la conception de référence et la valeur mesurée sera enregistrée (chaque type de pièce dispose d'un formulaire de saisie personnalisé, par exemple des résistances, des capacteurs, des IC, etc.).Plus tard, nous retournerons dans chaque partie et ajouterons plus de détails.

À ce stade, je suis capable de sélectionner les pièces existantes dans une liste déroulante, utilisez la fonction FindFirst pour localiser l'enregistrement dans la table principale, extrayez les informations de type pièce correspondantes et ouvrez le formulaire de saisie de données approprié.

Ce que je ne peux pas comprendre, c'est comment afficher ensuite cet enregistrement dans la forme nouvellement ouverte.La stratégie typique de Me.bookmark= Rs.Bookmark ne fonctionne pas depuis que j'ouvre un nouveau formulaire

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

Récapitulatif 4 étapes:

Voir la liste des pièces existantes -> Sélectionner une partie -> Ouvrir dynamiquement le formulaire de saisie de données correct -> Remplir le formulaire avec l'enregistrement que je veux modifier

Était-ce utile?

La solution

Utilisez le mécanisme de filtre intégré à la méthode DOCMD.OPENFORM, quelque chose comme ceci:

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

Je ne suis pas sûr de si j'avais assez de virgules avant ma déclaration de filtre.Vous pourriez avoir besoin de quatre virgules.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top