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

VBA Access Discussion :

Requête insert qui ne fonctionne pas .


Sujet :

VBA Access

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 20
    Points : 13
    Points
    13
    Par défaut Requête insert qui ne fonctionne pas .
    Bonjour à tous,

    Voila, j'ai un probléme, en fait j'ai une table tbl_machines et une table tbl_référence qui sont lié par une table tbl_Nomenclature qui contient les 2 clés primaires de mes tables références et machines (ID_référence et ID_Machine). J'ai donc fais un formulaire qui permet à l'utilisateur d'ajouter une référence à une machine.Quand je valide, le code suivant s'éxcecute

    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
    Dim id_référence, id_machine As Integer
    Dim reference, ligne, machine As String
    Dim oDb As DAO.Database
     
    If IsNull(Me.listeRéférence) Or IsNull(Me.listeMachine) Or IsNull(Me.listeLigne) Then
        message = MsgBox("Vous devez remplir tous les champs", vbCritical, "Erreur")
        Exit Sub
    End If
     
     
    id_référence = Me.listeRéférence
    id_machine = Me.listeMachine
     
    reference = Me.listeRéférence.Column(1)
    ligne = Me.listeLigne.Column(1)
    machine = Me.listeMachine.Column(1)
     
    Set oDb = CurrentDb
    sql = "SELECT count(*) from (SELECT ID_Machine FROM tbl_Nomenclature where ID_Référence =" & id_référence & " and ID_Machine=" & id_machine & ");"
    Set oRst = oDb.OpenRecordset(sql, dbOpenDynaset)
     
     
    If oRst.Fields(0).Value <> 0 Then
       erreur = MsgBox("L'association " & reference & "  et " & machine & " existe deja, vous ne pouvez l'ajouter une deuxiéme fois", vbCritical, "Doublon")
        Exit Sub
    End If
     
    message = MsgBox("Etes-vous sûre d'ajouter la référence " & reference & " à la machine " & machine & " de la ligne " & ligne & "?", vbQuestion + vbOKCancel, "Confirmation")
    If message = 1 Then
        Set oDb = CurrentDb
        sql = "INSERT into tbl_Nomenclature values (" & id_référence & "," & id_machine & ")"
        'sql = "INSERT into tbl_Nomenclature values (1,91)"
        oDb.Execute (sql)
     
    oRst.Close
    oDb.Close
    Set oRst = Nothing
    Set oDb = Nothing
     
    message = MsgBox("L'association " & reference & " et la machine " & machine & " est une réussite", vbInformation, "Réussite")
    Celui-ci se déroule parfaitement (enfin y'a pas d'erreur à l'excecution) mais lorsque je vais voir dans tbl_nomemclature les données n'ont pas été inséres ....

    SI quelqu'un peut m'aider ... !!!

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    503
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 503
    Points : 503
    Points
    503
    Par défaut
    Salut,

    tente voir

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    msgbox message & vbcrlf & id_référence & vbcrlf & id_machine
    juste avant le for each

    6ril

  3. #3
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 124
    Points : 55 905
    Points
    55 905
    Billets dans le blog
    131
    Par défaut
    Bonjour

    Je suis peut-être passé à côté de quelque chose, mais...

    As-tu vérifié la valeur de tes ID?
    Sont-ils bien numériques?
    As-tu une intégrité référentielle entre les tables? Si oui, les ID existent-ils dans les tables source?
    As-tu bien seulement DEUX champs dans tbl_nomenclature?
    ...

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 20
    Points : 13
    Points
    13
    Par défaut
    Citation Envoyé par 6ril25 Voir le message
    Salut,

    tente voir

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    msgbox message & vbcrlf & id_référence & vbcrlf & id_machine
    juste avant le for each

    6ril
    merci de ta réponse mais je n'ai pas de for each dans ce code ...
    mais je l'ai inserer juste avant l'insert et juste aprés et les valeurs retournées sont bien bonnes !

  5. #5
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 124
    Points : 55 905
    Points
    55 905
    Billets dans le blog
    131
    Par défaut
    ...

    Quelles sont les réponses aux questions que je posais?

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 20
    Points : 13
    Points
    13
    Par défaut
    Citation Envoyé par Pierre Fauconnier Voir le message
    Bonjour

    Je suis peut-être passé à côté de quelque chose, mais...

    As-tu vérifié la valeur de tes ID?
    Sont-ils bien numériques?
    As-tu une intégrité référentielle entre les tables? Si oui, les ID existent-ils dans les tables source?
    As-tu bien seulement DEUX champs dans tbl_nomenclature?
    ...

    Oui en utilisant la msgbox indiqué par 6ril je vois que par exemple mes id prennent la valeur 18 et 125 ce qui correspond bien à leur ID de leur tables respectives
    Je t'envoi les relations entre les tables mais je pense que l'intégtrité référentielle est bonne.
    Les ID existe bien dans les tables car je vais les chercher dedans via des listes deroulantes....
    Et j'ai bien uniquement 2 champs dans tbl_nomenclature...

    Les 2 champs ID_Machine et ID_Référence de la table tbl_nomenclature sont bien de type numérique entier long ce qui correspond aussi au type du champ ID_Machine de la table tbl_Machines et du champ ID_référence de la tbl_Référence

    De plus l'ajout fonctionne lorque je le fais manuellement directement dans la table ....

    Images attachées Images attachées  

  7. #7
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 124
    Points : 55 905
    Points
    55 905
    Billets dans le blog
    131
    Par défaut
    Cela me semble correct, mais...

    Avec ta requête Insert..., comme tu ne précises pas les champs, tu dois les proposer dans l'ordre de la table des nomenclatures, et tu passes la référence avant la machine, alors que l'illustration que tu montres donne la machine avant la référence... Si tu inverses les valeurs dans la requête en mettant d'abord la machine, cela corrige-t-il le problème?

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 20
    Points : 13
    Points
    13
    Par défaut
    Mais c'est bien sûr !!

    J'avais pourtant le sentiment d'avoir vérifié l'ordre plusieur fois ....


    MERCI de ta disponibilité !!

Discussions similaires

  1. Requête INSERT qui ne fonctionne pas
    Par Skriggz dans le forum Android
    Réponses: 2
    Dernier message: 22/05/2015, 14h42
  2. [ODBC] une requete d'insertion qui ne fonctionne pas
    Par boulhous dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 26/05/2006, 13h56
  3. Insert qui ne fonctionne pas
    Par Nyrianne dans le forum Outils
    Réponses: 7
    Dernier message: 09/01/2006, 17h50
  4. [MySQL] Requête update qui ne fonctionne pas
    Par Sylvain245 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 05/12/2005, 16h40
  5. [SQL] Requête à jointure qui ne fonctionne pas
    Par Bensor dans le forum Langage SQL
    Réponses: 2
    Dernier message: 09/12/2004, 16h10

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