Échec de l'Appel ODBC - Erreur 3151

Nous avons une base de données Access migré à partir d'Access 97 pour accéder 2007 avec quelques tables liées à une base de données SQL Server 2008.
Nous sommes à l'aide d'un Fichier de source de données dans l'Administrateur ODBC. Des tests de connexion, beau travail. En fait, nous avons un formulaire principal dans Access 2007 application qui affiche les données toujours correctement.

Le problème apparaît quand on exécuter une tâche, qui fait l'appel suivant:

Dim dbs As Database
Dim rstAppend As Recordset
Set dbs = CurrentDb
Set rstAppend = dbs.OpenRecordset(strAccessTable, dbOpenDynaset, dbSeeChanges)

OpenRecordset jette le numéro de l'erreur 3151 et se produit au hasard, mais il apparaît assez fréquemment. C'est sporadique. Lorsque nous n'obtenons pas l'erreur, le groupe fonctionne bien.

  1. Il ne se passe toujours, pour la plupart, nous allons bien.
  2. Quand il arrive il arrive pour toutes les autres tâches essayé. Nous avons de fermer et de rouvrir la base de données Access et prier le bon dieu qu'il fonctionne.
  3. Parfois, l'actualisation de l'tables dans le Gestionnaire de tables Liées résout le problème, mais d'autres ne le font pas.
  4. Nous recevons parfois une erreur "ODBC--l'Appel a Échoué" lors de l'actualisation du Gestionnaire de tables Liées. La suppression d'un Fichier DSN et la création d'un nouveau résout le problème.
  5. Nous avons essayé avec deux conducteurs différents (SQL Server et SQL Server Native Client 10) et dans les deux cas, le problème reste le même.
  6. Nous avons aussi essayé de mettre le Fichier d'Accès dans la même machine que le Serveur SQL et le problème demeure.
  7. Nous avons augmenté le ODBC Délai d'attente pour toutes les requêtes sur de 60 à 180 secondes,mais le problème persiste.
  8. Nous n'avons pas à attendre pour voir l'erreur, il s'affiche en moins d'une seconde après l'exécution de la tâche.

Nous serions très heureux si quelqu'un pouvait nous aider à trouver une solution à ce problème.

Effectue les opérations suivantes vous donner plus de détails de l'erreur? ACC2000: Comment faire pour Piéger ODBC Spécifique des Messages d'Erreur Vous pouvez utiliser la collection d'Erreurs de piège spécifique Open Database Connectivity (ODBC) erreur. Cependant, vous devez parcourir l'ensemble des éléments de la collection pour accéder aux informations d'erreur ODBC. support.microsoft.com/kb/209855
Ne vous contentez pas de citer un numéro d'erreur -- donner la description de l'erreur, car il dispose d'informations que vous ne pouvez pas obtenir simplement en regardant le générique de description de l'erreur (?AccessError(3151): "ODBC--connexion à" | " a échoué.").
La description de l'erreur est "ODBC--connexion à "DataseProduction1DSN" a échoué". DataseProduction1DSN est la description de la source de données de Fichier que nous utilisons dans l'Administrateur ODBC. Voici la capture d'écran: img697.imageshack.us/img697/7804/errorpw.png

OriginalL'auteur rodpedja | 2010-09-24