La connexion à SQL Server sur le réseau à l'aide d'ADO à partir d'Excel VBA
J'ai besoin de vous connecter à un Serveur SQL server DB en cours d'exécution sur mon portable à partir d'un autre ordinateur sur un réseau. Je fais cela à la fois à partir d'une application en C# ainsi que dans une macro VBA. Les deux fonctionnent parfaitement sur mon ordinateur portable et l'application en C# fonctionne parfaitement sur le réseau. Cependant, je ne peut pas se connecter à l'aide de VBA sur le réseau. C'est ma chaîne de connexion:
ConnectionString = "Driver={SQL Server};Server=MY-LAPTOP; DAtabase=SAFEXlive; UID = MyUsername; PWD=MyPassword"
À part le "Driver={SQL Server}" c'est la même que la chaîne de connexion, je suis à l'aide de l'application en C# qui fonctionne.
Je suis alors en utilisant le code suivant (Avec une référence à Microsoft ActiveX Data Objects 6.0 Bibliothèque dans VBE) pour ouvrir la connexion:
Dim oConnection As Connection
Set oConnection = New Connection
oConnection.ConnectionString = strConnectionString
oConnection.Open
Cela fonctionne correctement si je le lance sur mon ordinateur portable, mais si je l'exécute sur un autre ordinateur sur le réseau, j'obtiens l'erreur: "erreur d'Exécution '-2147217843 (80040e4d) [Microsoft][ODBC Server Driver][SQL Server]échec de la Connexion de l'utilisateur..." et l'utilisateur, il spécifie qu'il le windows d'ouverture de session de l'ordinateur.
Sont là certains des paramètres de sécurité que je dois mettre dans le code ou dans excel? Ou suis-je de la construction de la chaîne de connexion de manière incorrecte? Ce que je fais mal?
Et il me dit que l'utilisateur est l'ouverture de session windows en... une idée de comment je peux résoudre ce problème? Je pense que le problème est-il tente de se connecter à sql server à l'aide de la connexion de windows, au lieu de l'id utilisateur et le mot de passe dans la chaîne de connexion - ai-je tort?
Peut-être que cela aidera, mais juste deviner: social.msdn.microsoft.com/Forums/en-US/sqlexpress/thread/...
Merci pour le commentaire mais je ne suis pas sûr de ce que vous êtes en train de suggérer. Cette question utilise une application en C# pour vous connecter à l'aide de la sécurité intégrée. J'ai besoin de vous connecter à partir d'un fichier excel application à l'aide quel que soit le contraire de la sécurité intégrée est appelé. Selon vous, ce pourrait être un problème de firewall...?
après mûre réflexion, je me demande si le vba pilote de l'interface est d'essayer d'utiliser un certain niveau de partage de fichiers windows type de sécurité. l'autre ordinateur ont un accès complet à l'ordinateur portable?
OriginalL'auteur Dan | 2012-04-13
Vous devez vous connecter pour publier un commentaire.
Résolu. La réponse est assez exaspérant. Le problème est en fait avec la chaîne de connexion, avec le UIDE. Croire ou ne pas changer de
...UID= MyUsername;...
à..UID=MyUsername;...
, c'est à dire en supprimant le caractère d'espace, il n'en fallait pas! Merci pour les suggestions bien que.Votre réponse changé le Driver={SQL Server} Provider=SQLOLEDB qui était beaucoup plus de changement notable de l'espace et n'a pas de travail pour moi.
la prochaine fois, l'utilisation d'une fonction Trim ();)
OriginalL'auteur Dan
Essayer cette chaîne de Connexion,
Est-ce un Domaine AD connexion? Assurez-vous que vous avez ajouté le domaine pour le nom d'utilisateur de l'e.g,
domain\user
.Je suggère d'utiliser la sécurité intégrée au lieu de cela.
OriginalL'auteur Russell Hart