|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre actif
![]() ![]() Inscription : décembre 2003 Messages : 375 ![]() |
Bonjour,
j'ai un bête (?) code VBA qui effectue une requête en base. Quand j'exécute le SELECT avec SQL Server j'ai bien un résultat, en revanche en VBA/ADO sous Excel, j'ai "<BOF ou EOF est égal à True ou l'enregistrement actuel a été supprimé. L'opération demandée nécessite un enregistrement actuel.>" si j'essaye de lire le résultat. Code :
|
||
|
|
00
|
|
|
#2 | ||
|
Expert Confirmé
![]() Inscription : septembre 2004 Messages : 2 805 ![]() |
Bonjour,
Et comme ça ? Code :
__________________
Par principe, je ne réponds pas aux messages URGENT. Il n'y a pas de choses urgentes, il n'y a que des choses en retard. (un inconnu) |
||
|
|
00
|
|
|
#3 | ||
|
Membre actif
![]() ![]() Inscription : décembre 2003 Messages : 375 ![]() |
Merci, mais c'était juste une mauvaise retranscription dans mon post en voulant simplifier, le problème n'est pas là.
J'ai essayé avec une autre requête, sur une autre table et une autre base, même erreur. A noter que j'arrive dans le même programme, à appeler des procédures stockées sans problème (avec des cmd.Execute à la place des Recordset bien sûr). J'ai essayé de replacer le Recordset par cmd.Execute du coup : Code :
Donc je suppose que ce n'est pas un problème au niveau de la requête elle-même mais plutôt au niveau des paramètres de la connexion ??? |
||
|
|
00
|
|
|
#4 | |
|
Expert Confirmé Sénior
![]() Jérôme FONTAINEContrôleur de Gestion Inscription : juin 2006 Messages : 3 905 ![]() |
Bonjour,
As tu essayé en spécifiant le nom de la base Code :
cnn.Open "PROVIDER=SQLOLEDB;DATA SOURCE=" & bd & "; DATABASE = MABASE ;User ID= " & login & ";Password=" & mdp & ";Trusted_Connection=False" Code :
.CommandText = "select GRP_ID from MABASE.dbo.GROUPE where GRP_NOM ='" & entity & "'"
__________________
Jérôme Citation:
nous encouragera.Dans le cas ou la réponse mérite, à vos yeux, un , nous faire partager la raison de ce vote, pourrait nous permettre de nous améliorer.
|
|
|
|
00
|
|
|
#5 |
|
Membre chevronné
![]() Inscription : octobre 2006 Messages : 541 ![]() |
Bonjour
peut-^tre (...) supprimmer trusted connection source http://www.connectionstrings.com/sql-server#p6
__________________
Michel_M |
|
|
00
|
|
|
#6 |
|
Membre chevronné
![]() Inscription : octobre 2006 Messages : 541 ![]() |
Bonjour
peut-^tre (...) supprimer "trusted connection" source http://www.connectionstrings.com/sql-server#p6
__________________
Michel_M |
|
|
00
|
|
|
#7 |
|
Membre actif
![]() ![]() Inscription : décembre 2003 Messages : 375 ![]() |
Merci à vous 2, c'est la 2e réponse de jfontaine qui est la bonne
: ma requête ne fonctionne que si j'indique base.dbo.table dans la requête. Le nom de la base dans la chaîne de connexion ne suffit pas (contrairement aux appels de procédures stockées bizarrement).Et s'est greffé à ça un 2e problème que j'ai fait apparaître en essayant de comprendre le 1er : j'avais ajouté un test "if rs.RecordCount > 0" pour ne pas planter le programme à chaque passage mails il retourne toujours -1 ! Du coup, même après correction du 1er problème, je ne récupérais jamais les résultats de mon SELECT. D'après http://support.microsoft.com/kb/194973/en-us c'est un problème connu : j'ai donc ajouté "adOpenStatic" (même si je n'ai pas bien compris sa signification |
|
|
00
|
|
|
#8 | |
|
Expert Confirmé Sénior
![]() Jérôme FONTAINEContrôleur de Gestion Inscription : juin 2006 Messages : 3 905 ![]() |
Il me semble qu'avant le RecordCount il faut faire un MoveLast.
C'est a tester
__________________
Jérôme Citation:
nous encouragera.Dans le cas ou la réponse mérite, à vos yeux, un , nous faire partager la raison de ce vote, pourrait nous permettre de nous améliorer.
|
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com