2017-03-09 1 views
0

le problème que j'ai semble être lié à la forme tabulaire qui permet d'afficher plusieurs entrées en même temps.MS Access 2016 VBA - modifier TextBox via VBA sous forme de tableau

Je souhaite qu'une colonne (A) soit calculée à partir d'une autre colonne (B) mais que (A) soit toujours modifiable. Si j'utilise ControlSource pour (A), la zone de texte sous-jacente ne peut plus être modifiée. La même chose s'applique à l'utilisation des requêtes. Les deux options ne sont pas bonnes. Par conséquent, je veux utiliser le code VBA qui modifie le contenu de (A) en fonction des changements de (B). Et vice versa, si l'utilisateur modifie (A), (B) se met à jour. Btw. (A) n'est pas stocké dans la base de données, seulement (B). Problème, si je mets à jour la valeur de (A) via VBA pendant un événement de (B), la colonne entière (A) montre la même valeur et n'est pas calculée ligne par ligne dans le mode de forme tabulaire. Toute aide/aide appréciée. Merci! Une zone de texte indépendante affichera la même valeur pour tous les enregistrements.

Répondre

0

Période.

La dépendance de données bidirectionnelle est inhabituelle. Je pense avoir vu quelque chose comme ça une seule fois. Calcul de la superficie en pieds carrés. L'utilisateur a saisi des dimensions rectangulaires, puis a eu le choix d'entrer le métrage réel pour tenir compte des limites irrégulières ou des découpes et l'ajustement a été calculé ou entré dans l'ajustement et le réel a été calculé. L'utilisateur devait sélectionner un bouton radio pour désigner le contrôle modifiable. Ce n'était pas sur un formulaire d'enregistrement continu, juste un enregistrement unique.

+0

Bon exemple. Pour être plus précis, ce n'est pas une réelle dépendance bidirectionnelle des données que je veux créer ici. Disons que la colonne B est la valeur que je stocke dans la base de données, elle est toujours en pieds. L'utilisateur ne peut entrer dans B que dans A. A côté de la colonne A et B, je fournis la colonne C qui stocke l'unité préférée dans la base de données - pieds ou mètres. Maintenant, dans le premier rendu de toutes les colonnes, je veux que VBA calcule de B à A en utilisant le facteur de conversion de C. C'est le seul moment où les données vont de B à A. A partir de là, l'utilisateur peut écraser A et la valeur est converti en B. Formulaire tabulaire. –

+0

Si je stocke A dans la base de données, cela fonctionne mais est contre la normalisation. Si j'utilise ControlSource cela fonctionne pour la première partie (de B à A) mais l'utilisateur ne peut pas entrer - peut-il? Si je l'utilise dans un seul enregistrement de son travail, mais pas sous forme de tableau. J'ai besoin d'une zone de texte d'entrée modifiable individuelle d'enregistrement sous une forme tabulaire dont la valeur n'est pas directement stockée dans la base de données, mais seulement sa dérivée. –

+0

C'est un équilibre entre la normalisation et l'accomplissement du travail. Si c'est le comportement que vous voulez vraiment alors peut-être devoir «plier les règles». Je soupçonne qu'une boîte de texte liée enregistrant la valeur A est la seule façon dont vous obtiendrez ceci pour travailler dans la feuille de données/forme continue. – June7