Pb connec et requete vba excel

alias666 Messages postés 308 Date d'inscription mardi 1 juin 2004 Statut Membre Dernière intervention 23 mars 2010 - 2 août 2006 à 09:49
cs_bipou Messages postés 61 Date d'inscription mercredi 14 janvier 2004 Statut Membre Dernière intervention 14 septembre 2006 - 4 août 2006 à 14:51
Bonjour à tous

J'ai un petit soucis concernant un traitement que je veux faire. J'ai besoin d'établir une connexion sur une base SQLServer et ensuite d'effectuer une requete d'insertion dans une des tables via les informations qui sont présentes dans les cellules de ma feuille Excel. J'ai trouvé quelques lignes...
Quelqu'un pourrait-il m'éclaircir ? c'est assez urgent et je block la

Sub Import2_QuandClic()


'Connexion à la base de données
    Dim conn As New ADODB.Connection
    
    StrConn = "Driver={SQL Server};Server=N76SACC001;Database=Suivi_Conquete_2006;Uid=xxx;Pwd=xxx;"
    conn.Open StrConn
        'Import des données dans la base SQL Server
        Dim y As Integer
        Dim Rst As Recordset       
        y = 5
        While Range("A" &amp; y) <> ""
           Set Rst  = "INSERT INTO tableimporttest (bureau, els, matricule_cons, date_entrée, date_contact, num_personne, num_compte, nom_client, prenom_client, nom_pack, avantage, max_avantage, montant_dispo) VALUES (Range("A" &amp; y).value, Range("B" &amp; y).value, Range("C" &amp; y).value, Range("D" &amp; y).value, Range("E" &amp; y).value, Range("F" &amp; y).value, Range("G" &amp; y).value, Range("H" &amp; y).value, Range("I" &amp; y).value, Range("J" &amp; y).value, Range("K" &amp; y).value, Range("L" &amp; y).value, Range("M" &amp; y).value)"
            y = y + 1
        Wend
End


_______________________ <<<< :-: 4L!@$ :-: >>>>

2 réponses

cs_bipou Messages postés 61 Date d'inscription mercredi 14 janvier 2004 Statut Membre Dernière intervention 14 septembre 2006
4 août 2006 à 14:40
bonjour,


 


essaie plutot ceci


 


Sub Import2_QuandClic()


'Connexion à la base de données
    Dim conn As New ADODB.Connection
   
    StrConn = "Driver={SQL Server};Server=N76SACC001;Database=Suivi_Conquete_2006;Uid=xxx;Pwd=xxx;"
    conn.Open StrConn
        'Import des données dans la base SQL Server
        Dim y As Integer
<strike>        Dim Rst As Recordset</strike>       
        y = 5
        While Range("A" & y) <> ""
         conn.execute "INSERT INTO tableimporttest (bureau, els, matricule_cons, date_entrée, date_contact, num_personne, num_compte, nom_client, prenom_client, nom_pack, avantage, max_avantage, montant_dispo) VALUES (Range("A" & y).value, Range("B" & y).value, Range("C" & y).value, Range("D" & y).value, Range("E" & y).value, Range("F" & y).value, Range("G" & y).value, Range("H" & y).value, Range("I" & y).value, Range("J" & y).value, Range("K" & y).value, Range("L" & y).value, Range("M" & y).value)"
            y = y + 1
        Wend
End
0
cs_bipou Messages postés 61 Date d'inscription mercredi 14 janvier 2004 Statut Membre Dernière intervention 14 septembre 2006
4 août 2006 à 14:51
en corrigeant aussi :

       conn.execute "INSERT INTO tableimporttest (bureau, els, matricule_cons, date_entrée, date_contact, num_personne, num_compte, nom_client, prenom_client, nom_pack, avantage, max_avantage, montant_dispo) VALUES (" & Range("A" & y).value & ", " & Range("B" & y).value & ", " & Range("C" & y).value & ", " & Range("D" & y).value & ", " & Range("E" & y).value & ", " & Range("F" & y).value & ", " & Range("G" & y).value & ", " & Range("H" & y).value & ", " & Range("I" & y).value & ", " & Range("J" & y).value & ", " & Range("K" & y).value & ", " & Range("L" & y).value & ", " & Range("M" & y).value & ")"

en vérifiant aussi que les types de données correspondent, qu'il n'y a pas de champs vides, que la longueur des champs "texte" correspondent
(personnellement pour les champs VARCHAR, j'utiliserait TRIM(Range(?).value) qui permet de ne pas entrer dans la bases des espaces inutiles)
0
Rejoignez-nous