jemby
Messages postés11Date d'inscriptionlundi 31 juillet 2006StatutMembreDernière intervention 5 janvier 2007
-
27 août 2006 à 12:07
jemby
Messages postés11Date d'inscriptionlundi 31 juillet 2006StatutMembreDernière intervention 5 janvier 2007
-
29 août 2006 à 11:53
Bonjour,
J'ai jusqu'à aujourd'hui programmé en VBA sous la référence DAO. Je maitrise bien l'ensemble des possibilités mais je souhaite désormais passer à ADOcar j'ai peur que DAO ne soit plus supporté dans les prochaines versions office de Microsoft.
J'ai donc entamé un programme dans lequel il me faudrait utiliser l'equivalent de la methode Seek en DAO.
Voici le code que j'utilise en ADO :
Dim conn As ADODB.Connection
Dim rst As ADODB.Recordset
Set conn = New ADODB.Connection
Set rst = New ADODB.Recordset
'Set the connection properties and open the connection.
With conn
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "C:\A_DATA_WAREHOUSE\SAP_Ticket_Prg\BackEnd_SAP_Ticket_Prg.mdb"
.Open
End With
With rst
rst.Index = "SUJET"
'Set the location of the cursor service.
.CursorLocation = adUseServer
'Open the recordset.
.Open "Tb_Facts_Temp_Inbox_IT_Coord", conn, adOpenKeyset, _
adLockOptimistic, adCmdTableDirect
.Seek nouvsujet, adSeekFirstEQ
End With
Rank1 = rst![Rank] 'je souhaite recupérer la valeur de ce champs dans le recordset detecté par la methode Seek
rst.Close
conn.Close
Mon soucis : Dans le cadre d'une boucle dans laquelle j'utilise Seek plusieurs fois, cette methode fonctionne uniquement pour la premiere recherche, et dès le deuxieme passage dans ma boucle, il apparait le message suivant :
"Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record"
Je ne comprend pas car ce record existe. Cela pourrait il être lié à un problème de positionnement du curseur ?
chaibat05
Messages postés1883Date d'inscriptionsamedi 1 avril 2006StatutMembreDernière intervention20 novembre 20072 29 août 2006 à 01:43
Bonsoir MPi,
En plus avec CursorLocation = adUseClient
je crois que c' est pas la peine de rajouter
MoveNext dans la boucle , non ?
C' est juste pour savoir.