Objet Command

cs_neimad58 Messages postés 25 Date d'inscription lundi 31 juillet 2006 Statut Membre Dernière intervention 18 octobre 2006 - 8 août 2006 à 15:04
cs_neimad58 Messages postés 25 Date d'inscription lundi 31 juillet 2006 Statut Membre Dernière intervention 18 octobre 2006 - 9 août 2006 à 11:22
Bonjour,

je suis débutant avec ADO sur VB pour Excel, et je n'arrive pas à utiliser l'objet Command correctement.

Au niveau de l'execution, le compilateur me dit :

The connection cannot be used to perform this operation. It is either closed or invalid in this context.


Ce n'est pas une erreur de connection parce que j'arrive à utiliser les recordset sans problèmes; mais des qu'il s'agit de command ...


Quelqu un peut il m aider ?


Mon code :




Dim con As ADODB.Connection<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>








 







Call SeConnecter(con)








 








  Dim rs As ADODB.Recordset








  Dim rsbis As ADODB.Recordset








  Dim objCommand As ADODB.Command








  Dim lRecordsAffected As Long








  Set objCommand = New ADODB.Command








  Set rs = New Recordset








   










       
i = 8






        j = 1






       









        objCommand.CommandText = "INSERT INTO Fonds([Champ1],[Champ2])" & _








            "VALUES ('%" & ActiveSheet.Cells(i, j).Value & "%','%" & ActiveSheet.Cells(i, j + 1).Value & "%')"








 










C'est dans la ligne suivante qu'il bugue


       

objCommand.Execute lRecordsAffected, Options:=adCmdText Or adExecuteNoRecords








   
    










    rs.Close  








    con.Close








 







Set objCommand = Nothing







Set rs = Nothing






Set con = Nothing


merci pour les réponses

4 réponses

Dolphin Boy Messages postés 630 Date d'inscription vendredi 5 mai 2006 Statut Membre Dernière intervention 17 février 2007
8 août 2006 à 16:12
Salut, personnellement je ferais plus simple à partir de ton code :

Dim con As New ADODB.ConnectionCall SeConnecter(con)<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>

con.Execute "INSERT INTO Fonds([Champ1],[Champ2]) " & _

             "VALUES ('%" & ActiveSheet.Cells(i, j).Value & "%','%" & ActiveSheet.Cells(i, j + 1).Value & "%')"

 

D'autre part, il manquait un espace après [Champ2]).
0
cs_neimad58 Messages postés 25 Date d'inscription lundi 31 juillet 2006 Statut Membre Dernière intervention 18 octobre 2006
8 août 2006 à 16:24
j'ai pas mal de boucle qui entrent en ligne de compte, la j'ai simplifié le tout pour que vous ne pas vous demotiver à m'aider en mettant 100 lignes de code.

[Champ2]) " modifié mais ca ne marche toujours pas

Mais merci d'avoir répondu
0
Dolphin Boy Messages postés 630 Date d'inscription vendredi 5 mai 2006 Statut Membre Dernière intervention 17 février 2007
8 août 2006 à 16:59
Je n'ai pas l'habitude d'utiliser l'objet Command mais dans tous les exemples que j'ai vu, il semble être utilisé comme suit :

set rs = objCommand.Execute
0
cs_neimad58 Messages postés 25 Date d'inscription lundi 31 juillet 2006 Statut Membre Dernière intervention 18 octobre 2006
9 août 2006 à 11:22
Je viens de comprendre que j'avais oublié d'affecter la connection à la base à la commande; j'ai donc ajouter un objCommand.ActiveConnection=con

Mais ma requete semble etre fausse et je ne trouve pas mon erreur.

Merci pour ta réponse Dolphin Boy mais je n'arrive pas à le manipuler comme ca.


Neimad58
0
Rejoignez-nous