Dans MS Access forme, comment la couleur d'arrière-plan de l'enregistrement sélectionné?
J'ai un peu compliquée à la recherche Formulaire d'Accès avec un affichage continu (signifiant que plusieurs dossiers sont affichés à la fois). J'aimerais changer la couleur de fond de la enregistrement sélectionné uniquement ainsi, l'utilisateur final peut facilement savoir quel est le dossier où ils se trouvent.
Je pense que je vais peut-être une mise en forme conditionnelle ou peut-être quelque chose comme ceci:
Private Sub Detail_HasFocus()
Detail.BackColor(me.color)=vbBlue
End Sub
et quelque chose de similaire lorsque la ligne perd le focus. Cet extrait de code, de toute évidence ne fonctionne pas, mais c'est le genre de code que j'aimerais atteindre.
- Je ne crois pas que c'est faisable avec une mise en forme conditionnelle, comme il ne peut pas être appliquée à des non-porteuses de données des contrôles (dont le Détail n'est pas). Il a également ne peut pas être fait dans un cas, à l'exception d'un événement peut affecter un format conditionnel. Fondamentalement, vous seriez à gauche de l'ajout d'un contrôle dont la mise en forme conditionnelle vous vous souhaitez modifier dans la Suractivation de l'événement, et si vous faites cela, vous pourriez aussi bien utiliser Dev solution ci-dessous et d'éviter la lenteur de la mise en forme conditionnelle.
Vous devez vous connecter pour publier un commentaire.
Ici est une solution complète qui traite correctement nouvellement édité enregistrements, ainsi que des poignées d'Accès de l'INTERFACE utilisateur caprices (c'est à dire échoué re-peintures, les comportements incompatibles en fonction de la façon dont un enregistrement est sélectionné--via la souris ou le clavier ou le sélecteur d'enregistrement, etc.). - Je inclure les commentaires verbeux, car l'Accès nécessite des explications exhaustives en raison de ses nombreuses incohérences et/ou des bugs. J'ai tenté maigres solutions, mais, inévitablement, il ne se comporte pas bien sans les astuces pour forcer l'Accès à redessiner la forme, ou de façon compliquée pour déterminer l'enregistrement en cours dans le Detail_Paint() du gestionnaire d'événement.
Le code pour un Accès à un formulaire avec une zone de texte liée à un ID de champ Numéroauto. La forme a également un contrôle Rectangle nommé boxCurrent qui est mis à jour pour mettre en surbrillance le dossier sélectionné (il y a un large de couleur vive de la frontière). Je trouve un Rectangle de contrôle de l'offre plus d'options visuelles que la création de Détail.BackColor, bien que ces détails sont ouvertement configurable à l'aide de l'ensemble de la structure. Développé et testé avec Access 2013 et 2016.
OP ici. Cade a souligné que la solution d'origine du lien pointe vers un '97 db qui ne peut être ouverte et plus. Aussi, malheureusement, mon code d'origine est depuis longtemps disparu.
Toutefois, récemment, j'ai fait quelque chose comme ceci en utilisant la mise en forme conditionnelle méthode qui ne nécessite pas de VBA. C'est dans l'Accès à 2016 sur un Formulaire Continu:
Chaque fois que vous cliquez sur la zone, la case à cocher permet d'activer/désactiver le déclenchement de la mise en forme conditionnelle de la zone de texte en arrière-plan pour changer de couleur.
Une limitation de ce est qu'il rend l'ensemble du dossier en lecture seule. Je n'ai jamais eu de problèmes de vitesse et il fonctionne lorsque plusieurs enregistrements sont sélectionnés et non sélectionnés.
D'une façon de plus pour les formulaires en continu...
TempVars!CurrentRecordID = Moi.ID_xxx.valeur
Moi.Nom de contrôle.Actualiser " Cela doit l'un des conditionnellement formaté contrôles par l'Étape 2 ci-dessous
NB. la deuxième ligne de code ci-dessus est nécessaire pour la mise en forme conditionnelle pour être déclenché. Vous avez seulement besoin de rafraîchir l'un des conditionnellement formaté contrôles.
[ID_xxx]=[TempVars]![CurrentRecordID]
et de définir la mise en forme souhaitée par exemple BackColor