L'appel de procédure stockée VBA
Contexte: je travaille dans Access 2010 utilisateur interface avec un Serveur Microsoft SQL server 2008 backend. Les tables sont toutes liées à la base de données SQL server. J'ai une procédure stockée qui insère de nouvelles valeurs(fourni par les paramètres) dans un tableau. J'ai été à travers de nombreux exemples, mais je ne comprends pas assez pour savoir si je suis vraiment proche de l'obtenir ou je suis complètement à côté. J'ai posé une question semblable auparavant et a obtenu une bonne réponse, mais j'ai des questions concernant la chaîne de connexion. Ici est question/réponse L'appel de Procédure Stockée en passant des paramètres de Module d'Accès en VBA
Je ne suis pas au courant et ne savez pas comment trouver l'information nécessaire pour faire une chaîne de connexion (ex: je ne connais pas le fournisseur de nom de serveur//adresse du serveur). J'ai trouvé une question sur ici qui a déclaré que "Si vous avez déjà un Accès à table liée pointant vers la base de données SQL Server, alors vous pouvez simplement utiliser son .Chaîne de connexion avec un DAO.Objet QueryDef pour exécuter la Procédure Stockée" - Chaîne de connexion pour l'Accès à l'appel de procédure stockée SQL Server j'ai essayé de mettre en œuvre ce code mais j'ai des doutes sur comment passer des paramètres, j'ai donc essayé à l'aide d'un exemple précédent. Mais j'ai eu le message d'erreur "échec de l'appel" à la ligne "Set rst = qdf.OpenRecordset(dbOpenSnapshot)" pour ne pas mentionner mon passage de paramètres code est probablement la façon off.
Set qdf = CurrentDb.CreateQueryDef("")
qdf.Connect = CurrentDb.TableDefs("tblInstrumentInterfaceLog").Connect
qdf.sql = "EXEC dbo.upInsertToInstrumentInterfaceLog"
qdf.ReturnsRecords = True
Set rst = qdf.OpenRecordset(dbOpenSnapshot)
qdf.Parameters.Append qdf.CreateParameter("@BatchID", adVarChar, adParamInput, 60, BatchID)
qdf.Parameters.Append qdf.CreateParameter("@InstrumentName", adVarChar, adParamInput, 60, InstrumentName)
qdf.Parameters.Append qdf.CreateParameter("@FileName", adVarChar, adParamInput, 60, FileName)
qdf.Parameters.Append qdf.CreateParameter("@QueueId", adVarChar, adParamInput, 60, QuenueId)
rst.Close
Set rst = Nothing
Set qdf = Nothing
Quelqu'un pourrait-il me dire ce qui pourrait être mal avec mon code et pourquoi j'obtiens cette erreur? Merci!!!!
Je ne suis pas vraiment sûr que je n'ai pas de créer la base de données, je suis juste à la rédaction des procédures. Est-il un moyen de le savoir?
Pas sûr pour Accéder à 2010, mais les choses à regarder...sont les tables les tables liées, ou font-ils juste regarder comme des tables? Dans le menu Fichier l'option avez-vous une option de Connexion, la connexion à la base de données est réglé?
Les tables sont des tables liées et il n'y a pas d'option de connexion dans le menu fichier, mais il y a un module qui contrôle la base de données, l'interface est connecté. Les bases de données sont stockés sur le serveur. Je ne sais pas si cela aide.
C'est tout beau. Je vais jeter un oeil et de venir avec quelque chose pour vous.
OriginalL'auteur VictoriaJay | 2014-06-17
Vous devez vous connecter pour publier un commentaire.
Victoria,
Vous pouvez exécuter une procédure stockée à l'aide d'ADO, comme ci-dessous...
Pour obtenir votre chaîne de connexion, vous pouvez utiliser la ligne
dans la Fenêtre exécution et qui doit vous montrer une chaîne de connexion qui vous pouvez utiliser.
Voulez-vous essayer cela et laissez-moi savoir si vous avez des problèmes.
Cendres
Oui! C'est qu'il fonctionne je vous remercie pour toute l'aide!
Content d'avoir pu aider.
Qu'est-ce que
Me.Connection
? Il thows erreurinvalid use of Me keyword
.OriginalL'auteur The Dumb Radish