Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[ADO] Recordcount

12 réponses
Avatar
JohnFuss
Bonjour,

j'utilise ADO pour executer des requêtes sur des bases Oracle. J'ai changé
de machine et aussi de driver Oracle, depuis lorsque j'interroge le
.recordcount j'ai toujours -1, testé sur plusieurs bases. Du coup toutes les
macros se basant sur le recordcount ne fonctionne plus, je voudrai eviter de
refaire ces macros.

Une idée ?

Merci d'avance.

John

10 réponses

1 2
Avatar
Ardus Petus
Je crois me souvenir avoir eu le même problème.
Essaie:

rs.MoveFirst
nbrec = rs.RecordCount

Cordialement,
--
AP

"JohnFuss" a écrit dans le message de news:
e4cadp$hd3$
Bonjour,

j'utilise ADO pour executer des requêtes sur des bases Oracle. J'ai changé
de machine et aussi de driver Oracle, depuis lorsque j'interroge le
.recordcount j'ai toujours -1, testé sur plusieurs bases. Du coup toutes
les macros se basant sur le recordcount ne fonctionne plus, je voudrai
eviter de refaire ces macros.

Une idée ?

Merci d'avance.

John



Avatar
JohnFuss
Bonjour,

J'avais déja essayé, je viens de recommencer, toujours le soucis.

John

"Ardus Petus" a écrit dans le message de news:
O$N%
Je crois me souvenir avoir eu le même problème.
Essaie:

rs.MoveFirst
nbrec = rs.RecordCount

Cordialement,
--
AP

"JohnFuss" a écrit dans le message de news:
e4cadp$hd3$
Bonjour,

j'utilise ADO pour executer des requêtes sur des bases Oracle. J'ai
changé de machine et aussi de driver Oracle, depuis lorsque j'interroge
le .recordcount j'ai toujours -1, testé sur plusieurs bases. Du coup
toutes les macros se basant sur le recordcount ne fonctionne plus, je
voudrai eviter de refaire ces macros.

Une idée ?

Merci d'avance.

John







Avatar
Poulpor
Bonjour,

Je me souviens avoir eu ce type de problème, devant me résoudre à un code du
type :

nbrec = rs.RecordCount

If nbrec=0 then
'ce que tu veux
else
i=0
while not rs.EOF
i=i+1
rs.movenext
wend
nbrec=i
end if

Je me suis servi du fait que recordcount me retourne 0 quand il n'y a pas
d'enregistrement (le seul ca où c'est juste). Peut-etre cela est-il similaire
chez toi ?


Poulpor


Bonjour,

J'avais déja essayé, je viens de recommencer, toujours le soucis.

John

"Ardus Petus" a écrit dans le message de news:
O$N%
Je crois me souvenir avoir eu le même problème.
Essaie:

rs.MoveFirst
nbrec = rs.RecordCount

Cordialement,
--
AP

"JohnFuss" a écrit dans le message de news:
e4cadp$hd3$
Bonjour,

j'utilise ADO pour executer des requêtes sur des bases Oracle. J'ai
changé de machine et aussi de driver Oracle, depuis lorsque j'interroge
le .recordcount j'ai toujours -1, testé sur plusieurs bases. Du coup
toutes les macros se basant sur le recordcount ne fonctionne plus, je
voudrai eviter de refaire ces macros.

Une idée ?

Merci d'avance.

John












Avatar
JohnFuss
Bonjour,

même avec 0 enregistrements il me renvoi -1, de plus avec cette solution je
dois reprendre toutes mes précédentes macros et les redeployer. Pas glop.

Je reste preneur d'une autre solution. Et n'utiliserai que celle là en
dernier recourd.

Merci

John

qui utilise le code suivant

cnn.Open "Provider=MSDAORA;Data Source=" & dbName & ";", login, pwd
ExecuteSQL.Open RequeteSQL, cnn, adOpenStatic, adLockPessimistic
debug.print ExecuteSQL.RecordCount 'Pour tester

"Poulpor" a écrit dans le message de
news:
Bonjour,

Je me souviens avoir eu ce type de problème, devant me résoudre à un code
du
type :

nbrec = rs.RecordCount

If nbrec=0 then
'ce que tu veux
else
i=0
while not rs.EOF
i=i+1
rs.movenext
wend
nbrec=i
end if

Je me suis servi du fait que recordcount me retourne 0 quand il n'y a pas
d'enregistrement (le seul ca où c'est juste). Peut-etre cela est-il
similaire
chez toi ?


Poulpor


Bonjour,

J'avais déja essayé, je viens de recommencer, toujours le soucis.

John

"Ardus Petus" a écrit dans le message de news:
O$N%
Je crois me souvenir avoir eu le même problème.
Essaie:

rs.MoveFirst
nbrec = rs.RecordCount

Cordialement,
--
AP

"JohnFuss" a écrit dans le message de news:
e4cadp$hd3$
Bonjour,

j'utilise ADO pour executer des requêtes sur des bases Oracle. J'ai
changé de machine et aussi de driver Oracle, depuis lorsque
j'interroge
le .recordcount j'ai toujours -1, testé sur plusieurs bases. Du coup
toutes les macros se basant sur le recordcount ne fonctionne plus, je
voudrai eviter de refaire ces macros.

Une idée ?

Merci d'avance.

John














Avatar
Clément Marcotte
Bonjour,

Ce n'est pas non plus la solution. J'ai eu ce genre de problème en utilisant
un mauvais curseur. Avec un curseur statique, j'avais le nombre
d'enregistrements, mais pas avec un curseur dynamique.


"JohnFuss" a écrit dans le message de news:
e4cadp$hd3$
Bonjour,

j'utilise ADO pour executer des requêtes sur des bases Oracle. J'ai changé
de machine et aussi de driver Oracle, depuis lorsque j'interroge le
.recordcount j'ai toujours -1, testé sur plusieurs bases. Du coup toutes
les macros se basant sur le recordcount ne fonctionne plus, je voudrai
eviter de refaire ces macros.

Une idée ?

Merci d'avance.

John



Avatar
Clément Marcotte
Bonjour,

À la pêche...

Si tu coches une version plus ancienne des bibliothèques ADO dans Outils -
Références ?


"JohnFuss" a écrit dans le message de news:
e4cadp$hd3$
Bonjour,

j'utilise ADO pour executer des requêtes sur des bases Oracle. J'ai changé
de machine et aussi de driver Oracle, depuis lorsque j'interroge le
.recordcount j'ai toujours -1, testé sur plusieurs bases. Du coup toutes
les macros se basant sur le recordcount ne fonctionne plus, je voudrai
eviter de refaire ces macros.

Une idée ?

Merci d'avance.

John



Avatar
JohnFuss
Bonjour,

j'étais en ADO 2.1, j'ai testé ceux-ci sans succès :
ADO 2.0
ADO 2.5
ADO 2.6
ADO 2.7
ADO 2.8

voilà au moins je suis passé en 2.8 comme ça.

John

"Clément Marcotte" a écrit dans le message
de news: %
Bonjour,

À la pêche...

Si tu coches une version plus ancienne des bibliothèques ADO dans Outils -
Références ?


"JohnFuss" a écrit dans le message de news:
e4cadp$hd3$
Bonjour,

j'utilise ADO pour executer des requêtes sur des bases Oracle. J'ai
changé de machine et aussi de driver Oracle, depuis lorsque j'interroge
le .recordcount j'ai toujours -1, testé sur plusieurs bases. Du coup
toutes les macros se basant sur le recordcount ne fonctionne plus, je
voudrai eviter de refaire ces macros.

Une idée ?

Merci d'avance.

John







Avatar
JohnFuss
Bonjour,

J'ai testé les combinaison des curseurs et LockType come en fin de postr
sans succès

cnn.Open "Provider=MSDAORA;Data Source=" & dbName & ";", login, pwd
i = 1
ExecuteSQL.Open sql, cnn, adOpenDynamic, adLockBatchOptimistic
ExecuteSQL.MoveFirst
If ExecuteSQL.RecordCount <> -1 Then MsgBox i & " : " &
ExecuteSQL.RecordCount
i = i + 1
ExecuteSQL.Open sql, cnn, adOpenDynamic, adLockOptimistic
ExecuteSQL.MoveFirst
If ExecuteSQL.RecordCount <> -1 Then MsgBox i & " : " &
ExecuteSQL.RecordCount
i = i + 1
ExecuteSQL.Open sql, cnn, adOpenDynamic, adLockPessimistic
ExecuteSQL.MoveFirst
If ExecuteSQL.RecordCount <> -1 Then MsgBox i & " : " &
ExecuteSQL.RecordCount
i = i + 1
ExecuteSQL.Open sql, cnn, adOpenDynamic, adLockReadOnly
ExecuteSQL.MoveFirst
If ExecuteSQL.RecordCount <> -1 Then MsgBox i & " : " &
ExecuteSQL.RecordCount
i = i + 1
ExecuteSQL.Open sql, cnn, adOpenForwardOnly, adLockBatchOptimistic
ExecuteSQL.MoveFirst
If ExecuteSQL.RecordCount <> -1 Then MsgBox i & " : " &
ExecuteSQL.RecordCount
i = i + 1
ExecuteSQL.Open sql, cnn, adOpenForwardOnly, adLockOptimistic
ExecuteSQL.MoveFirst
If ExecuteSQL.RecordCount <> -1 Then MsgBox i & " : " &
ExecuteSQL.RecordCount
i = i + 1
ExecuteSQL.Open sql, cnn, adOpenForwardOnly, adLockPessimistic
ExecuteSQL.MoveFirst
If ExecuteSQL.RecordCount <> -1 Then MsgBox i & " : " &
ExecuteSQL.RecordCount
i = i + 1
ExecuteSQL.Open sql, cnn, adOpenForwardOnly, adLockReadOnly
ExecuteSQL.MoveFirst
If ExecuteSQL.RecordCount <> -1 Then MsgBox i & " : " &
ExecuteSQL.RecordCount
i = i + 1
ExecuteSQL.Open sql, cnn, adOpenKeyset, adLockBatchOptimistic
ExecuteSQL.MoveFirst
If ExecuteSQL.RecordCount <> -1 Then MsgBox i & " : " &
ExecuteSQL.RecordCount
i = i + 1
ExecuteSQL.Open sql, cnn, adOpenKeyset, adLockOptimistic
ExecuteSQL.MoveFirst
If ExecuteSQL.RecordCount <> -1 Then MsgBox i & " : " &
ExecuteSQL.RecordCount
i = i + 1
ExecuteSQL.Open sql, cnn, adOpenKeyset, adLockPessimistic
ExecuteSQL.MoveFirst
If ExecuteSQL.RecordCount <> -1 Then MsgBox i & " : " &
ExecuteSQL.RecordCount
i = i + 1
ExecuteSQL.Open sql, cnn, adOpenKeyset, adLockReadOnly
ExecuteSQL.MoveFirst
If ExecuteSQL.RecordCount <> -1 Then MsgBox i & " : " &
ExecuteSQL.RecordCount
i = i + 1
ExecuteSQL.Open sql, cnn, adOpenStatic, adLockBatchOptimistic
ExecuteSQL.MoveFirst
If ExecuteSQL.RecordCount <> -1 Then MsgBox i & " : " &
ExecuteSQL.RecordCount
i = i + 1
ExecuteSQL.Open sql, cnn, adOpenStatic, adLockOptimistic
ExecuteSQL.MoveFirst
If ExecuteSQL.RecordCount <> -1 Then MsgBox i & " : " &
ExecuteSQL.RecordCount
i = i + 1
ExecuteSQL.Open sql, cnn, adOpenStatic, adLockPessimistic
ExecuteSQL.MoveFirst
If ExecuteSQL.RecordCount <> -1 Then MsgBox i & " : " &
ExecuteSQL.RecordCount
i = i + 1
ExecuteSQL.Open sql, cnn, adOpenStatic, adLockReadOnly
ExecuteSQL.MoveFirst
If ExecuteSQL.RecordCount <> -1 Then MsgBox i & " : " &
ExecuteSQL.RecordCount

John

"Clément Marcotte" a écrit dans le message
de news:
Bonjour,

Ce n'est pas non plus la solution. J'ai eu ce genre de problème en
utilisant un mauvais curseur. Avec un curseur statique, j'avais le nombre
d'enregistrements, mais pas avec un curseur dynamique.


"JohnFuss" a écrit dans le message de news:
e4cadp$hd3$
Bonjour,

j'utilise ADO pour executer des requêtes sur des bases Oracle. J'ai
changé de machine et aussi de driver Oracle, depuis lorsque j'interroge
le .recordcount j'ai toujours -1, testé sur plusieurs bases. Du coup
toutes les macros se basant sur le recordcount ne fonctionne plus, je
voudrai eviter de refaire ces macros.

Une idée ?

Merci d'avance.

John







Avatar
Eric
Bonjour,

J'ai testé les combinaison des curseurs et LockType come en fin de postr
sans succès



Ne faudrait-il pas préciser le CursorLocation sur AdUseClient ?
ExecuteSQL.CursorLocation ­UseClient
--
A+
Eric
http://www.mpfa.info/

Avatar
Eric
re,

avant l'ouverture du recordset, (j'avais oublié de le préciser), par
ExecuteSQL.Open sql, cnn, adOpenDynamic, adLockBatchOptimistic

Des infos ici :
http://www.microsoft.com/france/msdn/support/whitepaper/default.asp
- ADO et les curseurs : page 14 (Derniere colonne le RecordCount) et 15


Bonjour,

J'ai testé les combinaison des curseurs et LockType come en fin de
postr sans succès



Ne faudrait-il pas préciser le CursorLocation sur AdUseClient ?
ExecuteSQL.CursorLocation ­UseClient


--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr


1 2