2009-12-15 10 views
0

Dans VBA (Access 2000) est-il de toute façon d'envoyer des informations à un formulaire entre deux instances ouvertes de la base de données?Comment communiquer entre deux instances de MDB ouvertes avec le même formulaire?

Par exemple:

utilisateur 1 a une instance ouverte de db.mdb sur son PC et a FormOne ouvert. L'utilisateur 2 a une autre instance de DB.MDB ouverte sur son PC et a ouvert FormOne.

L'utilisateur 1 peut-il gérer le contenu d'une zone de texte sur l'instance FormOne de l'utilisateur 2 (c'est-à-dire envoyer un message similaire à un client de discussion)?

+0

Pourquoi? Pourquoi ne pas simplement utiliser l'e-mail d'entreprise? –

+0

Pour seconder Tony, pourquoi pensez-vous que vous devez faire cela? Qu'est-ce que vous essayez d'accomplir? –

Répondre

4

Vous pouvez stocker des données dans une table et mettre à jour le formulaire ou le sous-formulaire sur une minuterie.

+0

Cette solution m'est venue à l'esprit, mais je me demandais s'il y avait un autre moyen qui n'impliquait pas l'interrogation constante d'une table. – patrick

0

Comme Remou, je pense que la méthode de table est comme vous allez l'obtenir. Vous pouvez optimiser l'interrogation en conservant une table à enregistrement unique ayant la valeur de la dernière mise à jour. Ensuite, faites vérifier votre forme de minuterie pour voir si la valeur a changé depuis le dernier déclenchement du minuteur, cela indiquera au minuteur de vérifier la table de discussion. En revanche, vous pouvez supprimer les enregistrements dès qu'ils sont lus afin de réduire la taille de la table. Vous constaterez que toute la création/suppression d'enregistrement va gonfler votre base de données, alors assurez-vous de la compacter régulièrement.

Enfin, si tous les utilisateurs ont accès à un lecteur partagé, vous pouvez simplement stocker les messages dans un fichier texte au lieu d'un tableau.

Un autre problème est bien sûr l'espionnage (avec des tables ou des fichiers). Vous pouvez minimiser cela en: Obfusciter/chiffrer le texte avant qu'il ne soit écrit et le désobjecter lorsqu'il est lu. Suppression de l'enregistrement dès qu'il est lu par sa cible. Masquage du fichier/de la table. Pour les fichiers, utilisez: SetAttr myFile, vbSystem ou vbHidden Pour les tables, préfixez le nom de la table avec USys_ et masquez la table. Tout cela dit, il va toujours être un substitut désagréable pour un client de discussion. Il va ralentir la base de données et éventuellement ralentir le lecteur partagé. Je réfléchirais longuement à pourquoi j'en ai besoin, et si c'est vraiment la meilleure approche.

Questions connexes