IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Access Discussion :

Importer les données d'un fichier Excel (.xls) dans une table Access


Sujet :

Access

  1. #101
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    411
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 411
    Points : 230
    Points
    230
    Par défaut
    et donc pour chaque enregistrement tu voudré lui associé l'anné et le mois.
    donc ton ta requête d'ajout il te faut ajouter les deux champs, ayant comme valeur:
    pour le mois
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     left(right(owkb.name,6),2)
    et pour l'anné bien sur se sont des fonctions VBA donc à ne pas mettre dans les guillemets
      0  0

  2. #102
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    105
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 105
    Points : 86
    Points
    86
    Par défaut
    ah ok parce que si tu veux , les fonctions left et right je les connaissai mais pour les appliquer au titre de mon fichier, sa je ne savais pas qu'on pouvais le faire...

    En tout cas je te remercie de ton aide et de ton soutien totofe je vais essayer ce que tu m'a donné
      0  0

  3. #103
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    105
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 105
    Points : 86
    Points
    86
    Par défaut
    Encore une fois tu me sauve la vie totofe sa marche nikel de chez nikel j'ai une base de donnée access qui pete le feu grace à toi!!!

    Merci beaucoup !!!

    Sinon tu n'es pas obligé de mettre un "left(right(owkb.name,6),2)" si tu met juste "right(owkb.name,6) " sa fonctionnera quand même

    Il me reste qu'à éxecuter une requête avec cette table importé avec une autre table que j'ai creer.

    dois-je utiliser un recordset?
      0  0

  4. #104
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    411
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 411
    Points : 230
    Points
    230
    Par défaut
    Citation Envoyé par mike2302
    Il me reste qu'à éxecuter une requête avec cette table importé avec une autre table que j'ai creer.
    dois-je utiliser un recordset?
    ca dépend ce que tu veut faire?? qu'elle type de requête tu souhaite exécuter?
      0  0

  5. #105
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    105
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 105
    Points : 86
    Points
    86
    Par défaut
    c'est une requête très simple:

    Je souhaite lié ma table importé avec une autre table qui contient un mail correspondant à un sigle.
    Un mail est toujours associé à un sigle.
    Etant donné que dans la table importé il y a le champs mail je voudrai mettre le sigle correspondant.
      0  0

  6. #106
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    411
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 411
    Points : 230
    Points
    230
    Par défaut
    Citation Envoyé par mike2302
    c'est une requête très simple:

    Je souhaite lié ma table importé avec une autre table qui contient un mail correspondant à un sigle.
    Un mail est toujours associé à un sigle.
    Etant donné que dans la table importé il y a le champs mail je voudrai mettre le sigle correspondant.
    tu voudrais juste créer la jointure des 2 tables ou afficher les informations des 2 tables via une requête et un recordset?
      0  0

  7. #107
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    105
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 105
    Points : 86
    Points
    86
    Par défaut
    bien joindre les 2 tables et afficher les informations des 2 tables via une requête.

    Si tu veux dans les 2 tables il y a un champs qui se nomme HostEmail
    qui contient des mails.Dans une table il y a un sigle associé au mail et dans l'autre (la table importé) il y a le hostEmail mais il n'y a pas le sigle correspondant.

    Je voudrai la requete qui me permette d'avoir le sigle dans la table importé.Tu comprend?
      0  0

  8. #108
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    411
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 411
    Points : 230
    Points
    230
    Par défaut
    haaaa oki si j'ai bien compri tu devra avoir une requête de ce type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT champ1, champ2... FROM Table1 INNER JOIN Table2 ON Table1.Hostmail=Table2.hostmail
    puis ensuite pour affiché les information il te faut utiliser un recordset.
      0  0

  9. #109
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    105
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 105
    Points : 86
    Points
    86
    Par défaut
    exact c'est bien sa.

    Mais comment recuperer dans la table importé (table 1 dans ton exemple) le sigle correspondant au Hostmail contenu dans l'autre table (table 2 dans ton exemple)?
      0  0

  10. #110
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    411
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 411
    Points : 230
    Points
    230
    Par défaut
    ata tu voudrai stocké la valeur du champ sigle de la table 2 pour l'ajouter dans la table 1 avec lenregistrement qui lui corespond?
      0  0

  11. #111
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    105
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 105
    Points : 86
    Points
    86
    Par défaut
    voila exactement
      0  0

  12. #112
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    105
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 105
    Points : 86
    Points
    86
    Par défaut
    je pensé faire un code dans le genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    sub DAOOpenRecordset ()
        Dim db As DAO.Database, rst As DAO.Recordset, fld As DAO.Field
        Dim sSQL As String
        ' Ouverture de la base de données 
        Set db = currentDb
        sSQL =  "SELECT "champ1, champ2... FROM Table1 INNER JOIN Table2 ON Table1.Hostmail=Table2.hostmail;"
     
        ' Ouverture du recordset 
        Set rst = db.OpenRecordset (sSQL, dbOpenForwardOnly, dbReadOnly)
        ' Fermeture du Recordset
        rst.Close
    End Sub
      0  0

  13. #113
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    411
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 411
    Points : 230
    Points
    230
    Par défaut
    oki ba en faite c pas tout à fait ca
    mais plutot
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    sub DAOOpenRecordset ()
        Dim db As DAO.Database, rst As DAO.Recordset, fld As DAO.Field
        Dim sSQL As String
        ' Ouverture de la base de données 
        Set db = currentDb
        sSQL =  "SELECT Hostmail, sigle FROM Table2 ;"
     
        ' Ouverture du recordset 
        Set rst = db.OpenRecordset (sSQL, dbOpenForwardOnly, dbReadOnly)
        while not rst.EOF
          docmd.runsql "UPDATE table1 set sigle='" & rst(1) & "' WHRER Hostmail='" & rst(0) & "'"
          rst.movenext
        wend
        ' Fermeture du Recordset
        rst.Close
    End Sub
    un truc de ce genre. j'ai pas eu le temps de tester dsl jdoi y allé je re stap
      0  0

  14. #114
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    105
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 105
    Points : 86
    Points
    86
    Par défaut
    ok par contre est ce que je place ce code à la suite du precedent (a savoir le code d'import que tu m'a donné) ou alors je crée un nouveau bouton?

    Sinon sa m'affiche une erreur à ce niveau :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Private sub executer_Click ()
        Dim db As DAO.Database, rst As DAO.Recordset, fld As DAO.Field
        Dim sSQL As String
        ' Ouverture de la base de données 
        Set db = currentDb
        sSQL =  "SELECT Hostmail, sigle FROM Table2 ;"
     
        ' Ouverture du recordset 
        Set rst = db.OpenRecordset (sSQL, dbOpenForwardOnly, dbReadOnly)
        while not rst.EOF
          docmd.runsql "UPDATE table1 set sigle='" & rst(1) & "' WHRER Hostmail='" & rst(0) & "'"
          rst.movenext
        wend
        ' Fermeture du Recordset
        rst.Close
    End Sub
      0  0

  15. #115
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    411
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 411
    Points : 230
    Points
    230
    Par défaut
    Citation Envoyé par mike2302
    ok par contre est ce que je place ce code à la suite du precedent (a savoir le code d'import que tu m'a donné) ou alors je crée un nouveau bouton?
    c'est comme tu le souhaite tu peux le fair dans les deux cas
    Citation Envoyé par mike2302
    Sinon sa m'affiche une erreur à ce niveau :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Private sub executer_Click ()
        Dim db As DAO.Database, rst As DAO.Recordset, fld As DAO.Field
        Dim sSQL As String
        ' Ouverture de la base de données 
        Set db = currentDb
        sSQL =  "SELECT Hostmail, sigle FROM Table2 ;"
     
        ' Ouverture du recordset 
        Set rst = db.OpenRecordset (sSQL, dbOpenForwardOnly, dbReadOnly)
        while not rst.EOF
          docmd.runsql "UPDATE table1 set sigle='" & rst(1) & "' WHRER Hostmail='" & rst(0) & "'"
          rst.movenext
        wend
        ' Fermeture du Recordset
        rst.Close
    End Sub
    as-tu ajouté dans tes reférences microsoft DAO??
      0  0

  16. #116
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    105
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 105
    Points : 86
    Points
    86
    Par défaut
    non je vais le faire.Quelles autres references dois-je ajouter?

    Est ce que ce code me creera lui même le champs sigle ou dois-je le creer dans le CREATE TABLE?
      0  0

  17. #117
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    411
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 411
    Points : 230
    Points
    230
    Par défaut
    non ce code ne va pas te le créer. il faut effectivement que tu le fasse dans le créate table.
      0  0

  18. #118
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    105
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 105
    Points : 86
    Points
    86
    Par défaut
    ok je vais essayer merci totofe a ti suite
      0  0

  19. #119
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    105
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 105
    Points : 86
    Points
    86
    Par défaut
    Voici l'integralité de mon code et voici l'erreur en rouge:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    Private Sub importer_Click()
     
    Dim oApp As Excel.Application
    Dim oWkb As Excel.Workbook
    Dim oWSht As Excel.Worksheet
     
    Set oApp = CreateObject("excel.application")
    Set oWkb = oApp.Workbooks.Open(Me.NomChamp)
    Set oWSht = oWkb.Worksheets(1)
     
    
    'premier ligne ou on commence l'import
    i = 16
     
    'pour éviter les messages lors de l'ajout des enregistrements
    DoCmd.SetWarnings False
     
    'si la table existe déjà il y a un msgbox (module qui va avec)
     
    If fExistTable(oWSht.Name) Then
     
    MsgBox "Attention !! Cette Table a déjà été importer dans la Base de Donnée"
     
    Else
     
    DoCmd.RunSQL "CREATE TABLE " & oWSht.Name & "(ConfID Integer, HostEmail String, Duration Integer, Attendees Integer, Mois Integer, Année Integer, Sigle String);"
     
    'tant que la cellule n'est pas vide
    While oWSht.Range("A" & i).Value <> ""
     
    If DCount("*", oWSht.Name, "[HostEmail] LIKE '" & oWSht.Cells(i, 7) & "*'") = 0 Then
     
    cSQL = "insert into " & oWSht.Name & " ( [ConfID],[HostEmail],[Duration],[Attendees],[Mois],[Année]) values (" & Chr(34) & oWSht.Cells(i, 1) & Chr(34) & "," & Chr(34) & oWSht.Cells(i, 7) & Chr(34) & "," & Chr(34) & oWSht.Cells(i, 18) & Chr(34) & "," & Chr(34) & oWSht.Cells(i, 19) & Chr(34) & "," & Chr(34) & Right(oWSht.Name, 2) & Chr(34) & "," & Chr(34) & Left(oWSht.Name, 4) & Chr(34) & ")"
     
    'exécute la requète
      DoCmd.RunSQL cSQL
     
    End If
      i = i + 1
     
    Wend
     
    End If
     
    DoCmd.SetWarnings True
     
    End Sub
     
    
    Private Sub executer_Click()
     
        Dim db As DAO.Database, rst As DAO.Recordset, fld As DAO.Field
        Dim sSQL As String
        ' Ouverture de la base de données
        Set db = CurrentDb
        sSQL = "SELECT HostEmail, Sigles FROM HostEmail et sigles ;"
     
        ' Ouverture du recordset
        Set rst = db.OpenRecordset(sSQL, dbOpenForwardOnly, dbReadOnly)
        While Not rst.EOF
          DoCmd.RunSQL "UPDATE oWSht.Name set Sigle='" & rst(1) & "' WHERE HostEmail='" & rst(0) & "'"
          rst.MoveNext
        Wend
        ' Fermeture du Recordset
        rst.Close
        
    End Sub
      0  0

  20. #120
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    411
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 411
    Points : 230
    Points
    230
    Par défaut
    ta requête n'est pas bonne!!!!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
        sSQL = "SELECT HostEmail, Sigles FROM nom_de_ta_table"
      0  0

Discussion fermée
Cette discussion est résolue.
Page 6 sur 9 PremièrePremière ... 23456789 DernièreDernière

Discussions similaires

  1. importer les données d'un fichier Excel Protégé
    Par ARFY56 dans le forum Access
    Réponses: 15
    Dernier message: 21/11/2018, 21h11
  2. Réponses: 3
    Dernier message: 20/08/2010, 21h48
  3. importer les données d'un fichier excel vers oracle 10g
    Par sarita_ima dans le forum Documents
    Réponses: 2
    Dernier message: 04/09/2009, 13h52
  4. Importer les données d'un fichier excel dans une table
    Par dams95190 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 07/12/2007, 10h35
  5. Réponses: 3
    Dernier message: 27/07/2007, 13h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo