2009-02-26 5 views
2

J'ai une connexion à une base de données d'accès qui implémente MSDataShape qui fonctionne parfaitement sur Windows XP, maintenant quand j'essaie de l'exécuter sur Windows Vista, elle me renvoie une erreur.MSDataShape sur Windows Vista

L'erreur sur vista:

Erreur # -2147467259 [Microsoft] [Pilote ODBC Manager] Nom de la source de données introuvable et aucun pilote par défaut spécifié

Le même code fonctionne parfaitement une installation XP propre.

Quel est le grand secret?

+0

+1 pour m'avoir présenté à MSDatashape. Je ne savais même pas qu'il existait auparavant. –

+0

non de la réponse 2 résoudre mon problème ... je ne peux toujours pas faire un jeu d'enregistrements façonné dans Windows Vista Ultimate propre installation. Il semble que MSDataShape n'est plus pris en charge par ce système d'exploitation. Par ailleurs, j'ai utilisé la méthode Remou avant de demander. – diego2k

Répondre

1

J'ai testé cela sur Vista et Access 2000, et cela a fonctionné pour moi. J'ai la dernière version de Jet, qui devrait être installée avec Vista.

Private Sub Form_Open(Cancel As Integer) 
    Set cn = New ADODB.Connection 
    With cn 
     .Provider = "MSDataShape" 
     .CursorLocation = adUseClient 
     .ConnectionString = "DATA PROVIDER=Microsoft.Jet.OLEDB.4.0;" _ 
     & "DATA SOURCE=c:\docs\ltd.mdb" 
     .Open 
    End With 

    Set rs = New ADODB.Recordset 

    With rs 
     .Source = "SELECT * From Table1" 
     .ActiveConnection = cn 
     .CursorType = adOpenKeyset 
     .LockType = adLockOptimistic 
     .Open 
    End With 

    Set Me.Recordset = rs 
    Me.UniqueTable = "Table1" 

End Sub 

Références: http://support.microsoft.com/kb/227053/EN-US/ http://support.microsoft.com/kb/239114/en-us

1

Quelques-unes des choses à vérifier:

  • que vous utilisez ODBC, vous êtes sûr de la source de données exactement la même ODBC que vous utilisez sur la XP machine a été créée? Si vous êtes sur le système d'exploitation 64 bits, vous devez créer une source de données 32 bit ODBC, les sources de données ODBC 64 bits sont invisibles à Access qui est une application 32 bits.

  • Assurez-vous que les pilotes de base de données Jet appropriés sont installés. Si vous utilisez Access 2007, ce sera le Access Database Engine component.

+0

En ce qui concerne le dernier, c'est seulement essentiel si votre fichier "Access" est un ACCDB et non un MDB. Un MDB créé en A2K7 sera complètement accessible via le pilote ODBC Jet 4. –

Questions connexes