2010-01-12 5 views
1

J'obtiens un vidage de données quotidien par e-mail, qui est en cours de traitement par Access (basé sur la règle Outlook, VBA extrait la pièce jointe et exécute les procédures Access, donc je reçois un rapport) . Comme le vidage de données devient de plus en plus important, et sachant qu'Access est exécuté localement et consomme mes ressources, je veux configurer un serveur PHP/MySQL pour le rendre plus efficace.Exécution d'un script PHP basé sur la règle Outlook

Le premier défi auquel je suis confronté est de savoir comment connecter la règle Outlook avec l'exécution de PHP? (comme je vais avoir Outlook mis en place sur la machine Windows, avec Apache/mysql mis en place (WAMP))

Tout le monde peut partager quelques idées sur la façon de démarrer l'exécution de PHP à partir d'Outlook?

Merci pour l'aide!

Srdjan

Répondre

1

Si vous avez une configuration existante en utilisant Access et VBA, et vous avez juste besoin d'une meilleure base de données derrière elle, pourriez-vous pas simplement utiliser MySQL sans PHP et utilisez le pilote ODBC MySQL au lieu de la connexion d'accès vous sont en cours d'utilisation (en supposant que vous utilisez actuellement ODBC pour vous connecter à la base de données Access)

De cette façon, mysql ne devrait même pas être exécuté localement si le hit est trop élevé sur votre machine locale et qu'il devrait être assez simple en ce que vous ne devriez pas avoir à faire de nombreux changements à votre code vba.

Bien sûr, si cela va le faire dépend de ce qu'il se passe dans votre accès db

Sinon, vous pouvez essayer d'utiliser php et en utilisant l'interface de ligne de commande PHP (CLI) que vous devriez être en mesure de appel en tant qu'exécutable externe à partir d'Outlook. Il suffit de passer php.exe le nom du script php que vous voulez exécuter

MISE À JOUR:

Je ne suis pas un expert VBA par tout moyen mais il semble que la fonction shell ne vous permet d'exécuter la CLI PHP à partir VBA

Shell("path/to/php.exe phpscript.php") 

http://msdn.microsoft.com/en-us/library/xe736fyk(VS.71).aspx

Bien sûr, cela ne fonctionnera que si vous pouvez obtenir à php.exe sur la machine WAMP (c.-à-est une machine locale ou si vous avez accès au réseau dans le dossier approprié)

Alternativement, si le serveur Wamp doit être une machine séparée, vous pouvez déclencher l'exécution du script php en appelant une URL. Je pense que l'objet XMLHTTP fera pour vous

Dim xmh As Object 

Set xmh = CreateObject("MSXML2.XMLHTTP") 
xmh.Open "GET", "http://urlofphpserver/script.php", False 
xmh.Send 
+0

+1 dit tout ce que je voulais dire aussi. Merde vos doigts tapant rapidement! :) –

+0

haha, bravo! ;) – Addsy

+0

Merci pour l'aide, va le tester! Je voulais passer l'accès et transférer toutes les tables/requêtes à MySQL, et macro/VBA à PHP, car il consomme trop de ressources informatiques. Comme plusieurs instances d'accès doivent être exécutées en même temps, j'ai pensé qu'il était préférable d'utiliser le combo PHP/MySQL, car il est plus léger et peut le traiter plus rapidement. Merci pour votre aide! –

Questions connexes