Probleme de compteur

Résolu
nitro81 Messages postés 23 Date d'inscription mercredi 9 avril 2008 Statut Membre Dernière intervention 17 avril 2008 - 9 avril 2008 à 15:31
nitro81 Messages postés 23 Date d'inscription mercredi 9 avril 2008 Statut Membre Dernière intervention 17 avril 2008 - 9 avril 2008 à 16:08
Bonjour à tous,

je souhaiterai importer une colonne d'un fichier Excel dans une table Access. Je suis arrivé à récupérer la valeur d'une cellule, mais j'ai des problèmes pour la colonne entiere. En effet, j'essaie de créer un compteur pour incrementer ma variable, qui me ferait ainsi glisser de colonne en colonne, mais j'ai des erreurs.

Quelqu'un peut-il m'aider svp ??
Merci d'avance.

Mon code :

Option Compare Database

Sub import_excel()

    Dim db As DAO.Database
    Dim Req As DAO.Recordset
    Dim xlApp As excel.Application
    Dim cSQL As String  'declaration de la variable pour la requete SQL
    Dim sql As String
    Dim i As Integer

    ' Ouvre l'application Excel
    Set xlApp = CreateObject("Excel.Application") ' Ceci initialise la variable et charge Excel en arrière plan
    xlApp.Visible = False 'Rend Excel non visible...
    xlApp.UserControl = True
    ' Ouvre MonFichier
    xlApp.Workbooks.Open FileName:="chemin\document.xls"
    Set db = OpenDatabase("chemin\base.mbd") ' Définition base de donnée
   
    sql = "SELECT * FROM nom_table"
    Set Req = db.OpenRecordset(sql)
    Req.AddNew
    For i = 1 to 14
    With xlApp.ActiveWorkbook.Worksheets("Feuil2")  'recuperation des données de la feuille2
        Req(1) = .Range("B" & i &"").Value
    End With

    cSQL = "INSERT INTO nom_table  VALUES (& Req(1) &, .....)" 'requete SQL
    DoCmd.RunSQL cSQL   'execution de la requete SQL
   
    Req.Close
    Set Req = Nothing
    db.Close
    Set db = Nothing
    xlApp.Quit

End Sub

5 réponses

jrivet Messages postés 7393 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
9 avril 2008 à 15:41
For i = 1 To 14
   With xlApp.ActiveWorkbook.Worksheets("Feuil2")  'recuperation des données de la feuille2
       Req(1) = .Range("B" & i).Value
   End With

   cSQL = "INSERT INTO nom_table  VALUES (" & Req(1) & "," &  .....)"             ,

----

Ju£i?n</italique>


Pensez: Réponse acceptée
3
Cramfr Messages postés 160 Date d'inscription mercredi 24 novembre 2004 Statut Membre Dernière intervention 8 juillet 2008
9 avril 2008 à 16:01
si ton id est un Numéroauto il n'est pas necessaire de le placer dans la requête il s'incrémentera tout seul

Cramsoturf le VBien en quête de nouveau programme
3
Cramfr Messages postés 160 Date d'inscription mercredi 24 novembre 2004 Statut Membre Dernière intervention 8 juillet 2008
9 avril 2008 à 15:44
bonjour,
Je suppose que tu voulais dire de ligne en ligne, Non ?

il manque le next dans ton code

xlApp.ActiveWorkbook.Worksheets("Feuil2").activate
For i = 1 to 14
      'recuperation des données de la feuille2
       cSQL = "INSERT INTO nom_table  VALUES (xlApp.Range("B" & i &"").Value, ..... & ")"  'requete SQL
       DoCmd.RunSQL cSQL   'execution de la requete SQL
next

Cramsoturf le VBien en quête de nouveau programme
0
nitro81 Messages postés 23 Date d'inscription mercredi 9 avril 2008 Statut Membre Dernière intervention 17 avril 2008
9 avril 2008 à 15:53
Merci de ta réponse !!!

Mais j'ai  un autre soucis, j'ai une table du type :
nom_table(id, colonne1, colonne2)
avec mon id qui est incrémenté automatiquement.

Pour insérer des données je fais comment ? Car cette commande ne marche pas :
INSERT INTO nom_table (id, colonne1, colonne2) VALUES (NULL, "aa", "bb")

Encore merci d'avance..
0

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

Posez votre question
nitro81 Messages postés 23 Date d'inscription mercredi 9 avril 2008 Statut Membre Dernière intervention 17 avril 2008
9 avril 2008 à 16:08
Merciii beaucoup !!
Tout s'exécute bien maintenant. J'ai enlevé l'id autoincrementé comme tu me l'as dis.

Bonne aprem, nitro81
0