VBA et chaîne de connection Oracle 8.1.7

Kobaya Messages postés 282 Date d'inscription   Statut Membre Dernière intervention   -  
 petititapawpa -
Bonjour,

Sous Excel, j'utilise des macros pour faire des requêtes sur Oracle 8.1.7.
La chaîne de connection est
"Provider=MSDAORA. 1;Password=crmuser;User ID=crmuser;Data Source=OPARRSKX01.WORLD"

Le pb, c'est qu'apparamment un recordset construit avec cette connection ne permet pas de balayer (Rst.MoveLast) afin de définir le nombre d'enregistrement(s) qu'il contient.
Faut-il utiliser autre chose que MSDAORA pour que le MoveLast soit possible?

Merci de vos lumières :-)

A+,
Kobaya.
A voir également:

8 réponses

petititapawpa
 
je sais pas comment créer une connexion oracle vb6 ou avec vb.net..svp aidez moi
1
xthorx_be Messages postés 149 Date d'inscription   Statut Membre Dernière intervention   131
 
Je crois qu'il y a un malentendu: la chaine que utilise doit te permettre d'ouvrir la base de données et pas un recordset.

je crois que tu devrais avoir

set DB = opendatabase("Provider=MSDAORA. 1;Password=crmuser;User ID=crmuser;Data Source=OPARRSKX01.WORLD")
set REC = DB.Openrecordset("SELECT ...;")
if REC.recordcount > 0 then
rec.movelast
rec.movefirst
end if

La seule chose qui m'ennuye c'est que tu ne donnes pas le chemin à ta base de données alors qu'elle devrait se trouvée dans la chaine de connection...
0
Kobaya Messages postés 282 Date d'inscription   Statut Membre Dernière intervention   214
 
en fait, j'ai ceci :

Set objConn = New Connection
objConn.ConnectionString = "Provider=MSDAORA. 1;Password=crmuser;User ID=crmuser;Data Source=OPARRSKX01.WORLD"

' ouverture de la connexion
objConn.Open

Set wbkClasseur = Workbooks.Add

strSQL = "SELECT * FROM tfcrcrm ORDER BY nomfcr"
Set objRS = New Recordset
Application.StatusBar = "Lancer la requête..."
objRS.Open strSQL, objConn

et c'est là que j'ai un pb pour parcourir le rs...

A+,
Kobaya.
0
xthorx_be Messages postés 149 Date d'inscription   Statut Membre Dernière intervention   131
 
Oui évidement. Essaie voir:
utilise DAO en référence dans ta macro (DAO360.DLL)

dim objConn as new DAO.Database
dim objRS as DAO.Recordset

Set objConn = Opendatabase("Provider=MSDAORA. 1;Password=crmuser;User ID=crmuser;Data Source=OPARRSKX01.WORLD" )

Set wbkClasseur = Workbooks.Add

Set objRS = objConn.openrecordset("SELECT * FROM tfcrcrm ORDER BY nomfcr;") 'NE PAS OUBLIER LE ; EN FIN DE CHAINE

Application.StatusBar = "Lancer la requête..."

if objRS.recordcount>0 then 'Renvoie 1 si il y a des enregistrements
objRS.movelast
end if

set objRS =nothing
objConn.close
set objConn=nothing

Exécute la procédure pas-à-pas ^pour voir s'il n'y a pas de trucs qui cloches...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Kobaya Messages postés 282 Date d'inscription   Statut Membre Dernière intervention   214
 
je m'aperçois que je fais tous mes SELECT sans le ; final, ce qui ne semble pas gêner Oracle...

pour ce qui est de DAO360.DLL, je ne peux pas faire ce que je veux sur mon poste (je suis en entreprise, pas à la maison sur mon PC) et les DBA n'aiment pas trop qu'on "attaque leur bébé" par des macros...

j'ai en référence Microsoft DAO 3.51 Object Library.


A+,
Kobaya.
0
xthorx_be Messages postés 149 Date d'inscription   Statut Membre Dernière intervention   131
 
La différence entre DAO 3.51 et DAO 3.6 est que cette dernière permet d'accéder au base de données type Access des versions supérieures à Access97. Donc normalement, ma routine doit pouvoir également fonctionner avec cette DLL.

BAT
0
Kobaya Messages postés 282 Date d'inscription   Statut Membre Dernière intervention   214
 
OK. Merci pour toutes ces précisions. Je vais voir ce que je peux faire.

A+ et Joyeux Noël,
Kobaya.
0
sousou
 
bonjour,
j'espère que vous m'aider à établir une connection entre access et excel et que vous me donner une explication claire en ce qui concerne
DAO et ADO.
-1