2010-04-28 14 views
1

J'ai le code suivant d'une application héritée qui lit actuellement à partir d'une feuille de calcul Excel 2003 sur un serveur, mais j'ai besoin de cela pour fonctionner à partir de ma machine qui utilise Excel 2007. Lorsque Je débogue sur ma machine ADO ne semble pas lire la feuille de calcul.Importer Excel 2007 dans SQL 2000 en utilisant ASP classique et ADO

J'ai vérifié tous les chemins de fichiers, etc. et l'emplacement de la feuille de calcul est très bien. J'ai entendu dire que vous ne pouvez plus utiliser le moteur Jet db pour Excel 2007? Quelqu'un peut-il confirmer cela? Que dois-je faire pour que cela fonctionne?

set obj_conn = Server.CreateObject("ADODB.Connection") 
obj_conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _ 
      "Data Source=" & Application("str_folder") & "CNS43.xls;" & _ 
      "Extended Properties=""Excel 8.0;""" 
set obj_rs_cns43 = Server.CreateObject("ADODB.RecordSet") 
obj_rs_cns43.ActiveConnection = obj_conn 
obj_rs_cns43.CursorType = 3 
obj_rs_cns43.LockType = 2 
obj_rs_cns43.Source = "SELECT * FROM [CNS43$]" 
obj_rs_cns43.Open 

Répondre

0

Je résolu ce problème, le problème que je faisais était liée à 64 bits la compatibilité du système avec les pilotes Ace Microsoft. Pour que cela débogue, vous devez forcer Visual Studio à déboguer avec le gestionnaire de configuration debug 32 bits.

1

Essayez de changer la chaîne de connexion comme celui-ci (source article):

obj_conn.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & _ 
      "Data Source=" & Application("str_folder") & "CNS43.xls;" & _ 
      "Extended Properties=""Excel 12.0;""" 
+0

Je l'ai déjà essayé, mais cela n'a pas fonctionné, ce pilote doit-il être installé ou doit-il être installé automatiquement? – jhowe

+0

J'ai résolu ce problème, le problème que j'avais était lié à la compatibilité du système d'exploitation 64 bits avec les pilotes Microsoft Ace. Pour que cela débogue, vous devez forcer Visual Studio à déboguer avec le gestionnaire de configuration debug 32 bits. – jhowe

0

Vous pouvez toujours utiliser Excel Automation pour lire à partir d'Excel. Mais je pense que c'est le plan B. La meilleure solution pour ce problème serait Openrowset. Aucun ASP requis, juste du SQL pur.

Here's a "Closer to Excel" article

+0

puis-je utiliser le SQL dans la page ASP? – jhowe

+0

Vous pouvez accéder à une base de données à partir d'ASP, pouvez-vous? Si vous pouvez écrire des requêtes, ce n'est plus un problème lié à ASP, car il peut être écrit en SQL, et SQL est accessible à partir de presque toutes les langues. – AlexanderMP