[VBA Excel] Erreur 424 sur une requete sql Access dans excel [Resolu]

Erreur 424 sur une requete sql Access dans excel [Resolu] [VBA Excel] - VB/VBA/VBS - Programmation

Marsh Posté le 24-06-2004 à 10:53:07    

Bonjour,
J'ai une erreur 424 "objet recquis" sur cette requete...
 

Code :
  1. Dim connexion As New ADODB.Connection
  2. Dim Resultat As New ADODB.Recordset
  3. Dim Annee As String
  4. ' Connexion à la base
  5. connexion.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=C:\Pilotage\Pilot_Rcvt.mdb;"
  6. Annee = Right(Edition.CBDateUT.Value, 4)
  7. Resultat.Open "Select [ObjAffil].[DelAff] As un,[ObjAffil].[TauxAmexa] As deux,[ObjAffil].[TauxAtexa] As trois,[ObjAffil].[UT] As quatre From [ObjAffil] WHERE [ObjAffil].[Annee] = '" & Annee & "'", connexion, adLockOptimistic, adOpenKeyset


 
Ca fait une heure que je galère :/
Le pire c'est qu'elle a fonctionné...un jour !
Je suis sur du nom de mes champs et de ma table (qui est en fait une requête dans Access)
 
Si vous voyez ce qui peut coincer...
Merci d'avance


Message édité par karoli le 24-06-2004 à 14:41:02
Reply

Marsh Posté le 24-06-2004 à 10:53:07   

Reply

Marsh Posté le 24-06-2004 à 11:35:03    

Tu declares Connection et Recordset dans la bibliotheque ADODB. Est-elle chargée ? Avant de la charger, essaie seulement de remplacer ADODB par DAO. La bibli DAO est celle qui se charge nativement sous Access et elle est dédiée à Jet.


---------------
J'ai un message.."Cliquez OK pour continuer."...Qu'est ce que je fais ?
Reply

Marsh Posté le 24-06-2004 à 11:44:47    

JihemAir a écrit :

Tu declares Connection et Recordset dans la bibliotheque ADODB. Est-elle chargée ? Avant de la charger, essaie seulement de remplacer ADODB par DAO. La bibli DAO est celle qui se charge nativement sous Access et elle est dédiée à Jet.


 
Toutes les connexions et requetes fonctionnaient donx je suppose qu'elle est chargée (ce sont les references que l'on coche dans outils/references ?), et la depuis hier, la macro plante sur cette requete, je ne comprends pas pourquoi :/
 
Je vais essayer de vous poster une caps des references utilisées...

Reply

Marsh Posté le 24-06-2004 à 12:07:42    

bon j'ai pas la possibilité d'uploader sur mon ftp !
alors en gros :
Visual Basic for applications
MS Excel 8.0 Object Library
OLE automation
MS Forms 2.0 Object library
MS Office 8.0 Object library
Microsoft ActiveX Data Object 2.5 Library
Microsoft Office Web Componants 9.0
Microsoft ActiveX Data Object Recordset 2.5 Library
 
Ouala...Il me manque quelque chose d'apres vous ?

Reply

Marsh Posté le 24-06-2004 à 12:16:01    

Désolé, j'avais pas vu que tu étais sous Excel ! Oublie la bibli DAO.
A voir les références, ça parait correct.


---------------
J'ai un message.."Cliquez OK pour continuer."...Qu'est ce que je fais ?
Reply

Marsh Posté le 24-06-2004 à 14:40:31    

trouvé !
Je déclare trois ADODB.recordset (un seul dans la partie de code fournie) sur une seule ligne et c'est ca qui coince :
Dim resultatA, resultatB, resultatC As New.ADOdb.Recordset ca marche pas !!!
Dim resultatA As ...
Dim ResultatB As ...
Dim resultatC As... ca marche !
 
je savais pas ! maintenant oui :)
 
Merci a toi JihemAir.
 
A+

Reply

Marsh Posté le 24-06-2004 à 14:50:52    

Effectivement, quand on déclare les variables sur une meme ligne sans donner le type, elles sont de type Variant par défaut:
Dim toto, tata, titi as String --> toto et tata sont variant, titi est string.
 
Dim toto as String, tata as String, titi as String --> OK.
 


---------------
J'ai un message.."Cliquez OK pour continuer."...Qu'est ce que je fais ?
Reply

Marsh Posté le 24-06-2004 à 14:56:31    

JihemAir a écrit :

Effectivement, quand on déclare les variables sur une meme ligne sans donner le type, elles sont de type Variant par défaut:
Dim toto, tata, titi as String --> toto et tata sont variant, titi est string.
 
Dim toto as String, tata as String, titi as String --> OK.


 
merci de la precision :)
A+

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed