Probleme de compteur [Résolu]

Signaler
Messages postés
23
Date d'inscription
mercredi 9 avril 2008
Statut
Membre
Dernière intervention
17 avril 2008
-
Messages postés
23
Date d'inscription
mercredi 9 avril 2008
Statut
Membre
Dernière intervention
17 avril 2008
-
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

Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
50
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
Messages postés
160
Date d'inscription
mercredi 24 novembre 2004
Statut
Membre
Dernière intervention
8 juillet 2008

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
Messages postés
160
Date d'inscription
mercredi 24 novembre 2004
Statut
Membre
Dernière intervention
8 juillet 2008

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
Messages postés
23
Date d'inscription
mercredi 9 avril 2008
Statut
Membre
Dernière intervention
17 avril 2008

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..
Messages postés
23
Date d'inscription
mercredi 9 avril 2008
Statut
Membre
Dernière intervention
17 avril 2008

Merciii beaucoup !!
Tout s'exécute bien maintenant. J'ai enlevé l'id autoincrementé comme tu me l'as dis.

Bonne aprem, nitro81