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

Macros et VBA Excel Discussion :

Ecriture dans une BDD access via Excel


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Ecriture dans une BDD access via Excel
    Bonjour à tous,

    J'essaye de rentrer mes données (issues de la saisie par différents utilisateurs dans un userform) dans une base de données acces BDD.mbd (avec une table Management contenant les champs: Utilisateur, Projet, Tache, Temps et Date). Le pb est que mon code ne fonctionne pas, et malgrès tout ce que je peux lire, je ne comprend pas pourquoi (la galère quand on est novice!).
    Si une ame charitable pouvait me venir en aide...

    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
    Dim db As Database, rs As Recordset, r As Long
        Set db = OpenDatabase("C:\Users\c.dugue\Desktop\matthieu keip\Antares Managemnt\BDD.mdb")
        ' open the database
        Set rs = db.OpenRecordset("Management", dbOpenTable)
        ' get all records in a table
              With rs
                .AddNew ' create a new record
                ' add values to each field in the record
                .Fields("Projet") = UserForm1.ComboBox1
                .Fields("Utilisateur") = UserForm1.ComboBox2
                .Fields("Taches") = UserForm1.ComboBox3
                .Fields("Temps") = UserForm1.TextBox1 & " : " & UserForm1.TextBox2
                .Fields("Date") = Date
                ' add more fields if necessary...
                .Update ' stores the new record
            End With
     
    rs.Close
        Set rs = Nothing
        db.Close
        Set db = Nothing
    Merci d'avance pour votre aide.

  2. #2
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Août 2007
    Messages
    117
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Août 2007
    Messages : 117
    Points : 133
    Points
    133
    Par défaut
    bonjour,

    essayes ce code:

    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
     
     
     Sub enregistrer()
     
     Dim cnn As ADODB.Connection
     Dim sql As String
     Dim ChaineDeConnexion As String
     
     ChaineDeConnexion = "Driver={Microsoft Access Driver (*.mdb)}; DBQ=C:\Users\c.dugue\Desktop\matthieu keip\Antares Managemnt\BDD.mdb; ReadOnly=False"
        Set cnn = New ADODB.Connection
        cnn.ConnectionString = ChaineDeConnexion
        cnn.Open
     
        sql = "Insert into Management (Projet,Utilisateur,Taches,Temps,Date) values " & _
        "('" & UserForm1.ComboBox1.Value & "','" & UserForm1.ComboBox2.Value & "','" & UserForm1.ComboBox3.Value & "'," & UserForm1.TextBox1 & " : " & UserForm1.TextBox2 & ",#" & Date & "#)"
     
        cnn.Execute (sql)
     
     End Sub
    pour tes valeurs :
    - si c'est du texte faut que ton combobox soit entre ' ' : exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     "'" & UserForm1.ComboBox3.Value & "'"
    -si c'est numérique alors tu met rien : exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     "" & UserForm1.ComboBox3.Value & ""
    - si c'est une date alors entre # # : exemple:
    tu doit préalablement activer la référence Microsoft ActiveX Data Objects x.x Library
    Dans l'éditeur de macros:
    Menu Outils.
    Références.
    Coche la ligne "Microsoft ActiveX Data Objects x.x Library".
    Cliquez sur le bouton OK pour valider.

    x.x dépend de la version installée sur ton poste.


    et aussi la référence Microsoft ADO ext x.x for DLL and Security.

    tu trouveras un bon tuto sur cette page :
    http://silkyroad.developpez.com/VBA/ClasseursFermes/

    Cdt.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Bug dans la requete
    Merci bcp pour ton aide. Il semblerait néanmoins qu'il subsiste un bug dans la requete... Connais-tu ce message d'erreur (voir en piece jointe)?
    Merci.
    Images attachées Images attachées  

  4. #4
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Août 2007
    Messages
    117
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Août 2007
    Messages : 117
    Points : 133
    Points
    133
    Par défaut
    Bonjour,

    Oui je connais ce message, n'ayant pas ta base de donnée et donc ne sachant pas comment est faite ta table je n'ai fait que te donner un exemple:

    lis bien les précision après ou envoi moi une copie d'ecran de ta table en mode creation (nom du champ , type de donnée) ainsi qu'une copie ecran de ton userform

    merci

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Les captures...
    Alors voici ma capture pour la bdd. Pour le userform, il n'y a pas de souci, on a bien les bons types.
    Images attachées Images attachées   

  6. #6
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Août 2007
    Messages
    117
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Août 2007
    Messages : 117
    Points : 133
    Points
    133
    Par défaut
    Bonjour,

    désolé pour cette réponse tardive, les deux problèmes c'est les deux points dans temps qui est numérique donc le " : " n'est pas accepté, et le nom du champ "Date" qui est un mot réservé,
    solution: tu changes ton champs temps en texte ou date ou alors t'enlèves les deux points pour laisser seulement une valeur numérique, et surtout tu renommes ton champs "Date" par quelque chose comme "DateProjet" comme tu veux

    Cdt

Discussions similaires

  1. [XL-2003] Envoi d'une variable EXCEL vers un champ dans une BDD ACCESS ouverte
    Par Baloo84 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 05/07/2012, 16h52
  2. [XL-2007] Moteur de recherche dans une BD Access via Excel.
    Par McCandeless dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 23/05/2012, 14h34
  3. Réponses: 6
    Dernier message: 02/07/2008, 16h28
  4. [VBA-E]Ouvrir une BDD access sous Excel
    Par toniox dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 02/05/2006, 16h45
  5. Probleme d'ecriture dans une base access
    Par mohamed_simo dans le forum ASP
    Réponses: 5
    Dernier message: 05/04/2006, 09h55

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