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 :

ACCESS 2003 : Code erreur d'execution '3075'


Sujet :

Access

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 190
    Points : 72
    Points
    72
    Par défaut ACCESS 2003 : Code erreur d'execution '3075'
    Bonjour,

    Aprés plusieurs tentative et grâce à l'aide de pros, j'ai trouvé ce que je cherchais : un code qui me permet d'ajouter des enregistrements d'une table à un autre.

    MAIS CA NE MARCHE PAS !!!!! il me met une erreur

    Voici ma BD : Pièce jointe 3704

    si ça tente quelqu'un.

    Merci

  2. #2
    Membre actif
    Inscrit en
    Septembre 2004
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 179
    Points : 217
    Points
    217
    Par défaut
    Salut,

    Voici le code SQL corrigé:


    Dim strSQL As String
    strSQL = "INSERT INTO T_avenants (NumCt_Avnt, Anc_Avnt, Dct_Avnt, Tct_Avnt, Hct_Avnt, Fct_Avnt, Date_Avnt, NumSal_Avnt) " & _
    "SELECT T_contrats.N_Ct, T_contrats.Anc_Ct, T_contrats.Début_Ct, T_contrats.Type_Ct, T_contrats.Heure_Ct, T_contrats.Fin_Ct, T_contrats.Av_Ct, T_contrats.NumSal_Ct " & _
    "FROM T_contrats " & _
    "WHERE (N_Ct Not In (select NumCt_Avnt from T_avenants)) and (Av_Ct Not In (select Date_Avnt from T_avenants));"
    CurrentDb.Execute (strSQL)
    Il manquait un espace a chaque fin de ligne et des parenthèses en trop

    J'ai également modifié l'évènement déclenchant l'insertion et j'ai mit "Après Insertion" sur le sous formulaire.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 190
    Points : 72
    Points
    72
    Par défaut
    Quand tu dis Après Insertion, tu veux dire Après Mise à jour ?

  4. #4
    Membre actif
    Inscrit en
    Septembre 2004
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 179
    Points : 217
    Points
    217
    Par défaut
    je veux dire "Après Insertion". L'évènement se trouve non pas sur un controle de ton sous-formulaire mais sur le sous-formulaire lui même.

    P.S :je te conseille de vérifier les données saisies par l'utilisateur avant l'insertion dans la table...

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 190
    Points : 72
    Points
    72
    Par défaut
    ça ne marche pas : rien ne se passe et aucun enregistrement n'est ajouté.

    Pourtant, lorsque l'on remplie le champ [T_contrats.Av_Ct], l'enregistrement correspondant devrait s'ajouter (en respectant bien les conditions du WHERE bien entendu)

    j'comprends pas

  6. #6
    Membre actif
    Inscrit en
    Septembre 2004
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 179
    Points : 217
    Points
    217
    Par défaut
    Sur Quel évènement ta requête s'execute ?

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 190
    Points : 72
    Points
    72
    Par défaut
    Comme tu m'as conseillé : Après insertion dans le formulaire lui-même

    voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub Form_AfterInsert()
    Dim strSQL As String
    strSQL = "INSERT INTO T_avenants (NumCt_Avnt, Anc_Avnt, Dct_Avnt, Tct_Avnt, Hct_Avnt, Fct_Avnt, Date_Avnt, NumSal_Avnt)" & _
             "SELECT T_contrats.N_Ct, T_contrats.Anc_Ct, T_contrats.Début_Ct, T_contrats.Type_Ct, T_contrats.Heure_Ct, T_contrats.Fin_Ct, T_contrats.Av_Ct, T_contrats.NumSal_Ct" & _
             "FROM T_contrats" & _
             "WHERE ((N_Ct Not In (select NumCt_Avnt from T_avenants)) and ((Av_Ct Not In (select Date_Avnt from T_avenants));"
    CurrentDb.Execute (strSQL)
    End Sub

  8. #8
    Membre actif
    Inscrit en
    Septembre 2004
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 179
    Points : 217
    Points
    217
    Par défaut
    Tu l'as bien saisie ta procédure sur l'évènement du sous-formulaire et non pas du formulaire ?

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 190
    Points : 72
    Points
    72
    Par défaut
    Je l'ai saisi dans le formulaire "T_contrats Sous-formulaire", qui lui même, est sous formulaire : pour cela, dans objets 'FORMULAIRES', j'ai ouvert le sous formulaire "T_contrats Sous-formulaire" en mode création, et ensuite dans les propriétés, j'ai créer la procédure sur l'évènement Après insertion. Voilà.

    je vois pas oû j'aurais pu le mettre sinon

  10. #10
    Membre actif
    Inscrit en
    Septembre 2004
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 179
    Points : 217
    Points
    217
    Par défaut
    tient voila base modifié. cela fonctionne (en tout cas chez moi)
    Fichiers attachés Fichiers attachés

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 190
    Points : 72
    Points
    72
    Par défaut
    dis moi, quelle manip tu as fais pour que les enregistrement s'ajoutent à la base AVENANTS.

    Merci

  12. #12
    Membre actif
    Inscrit en
    Septembre 2004
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 179
    Points : 217
    Points
    217
    Par défaut
    j'ai modifié la requête (les parenthèses en trop et les espaces au bout de chaque ligne) et changé l'évènement par rapport à ta base initiale

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 190
    Points : 72
    Points
    72
    Par défaut
    oui ça j'avais compris, ce que je voudrais comprendre (car chez moi ça ne marche toujours pas), c'est quels champs tu as rempli ou modifié pour que l'enregistrement s'ajoute à la table.

    je pige rien : chez toi ça marche et chez moi non ; donc ça veut dire que je ne procède pas de la même façon que toi ou alors c'est le contraire.

    Je résume :
    Normalement, lorsqu'on entre une date d'avenant dans le champ [Av_Ct] du sous formulaire "T_contrats Sous-formulaire" , alors l'enregistrement en question doit s'jouter à la table AVENANTS SAUF si le même contrat AVEC la même date d'avenant figure déjà dans la table AVENANTS.

    En fait il ne faut pas qu'il y ait de doublons dans la table AVENANTS, à savoir, 2 enregistrements carrément identiques.

  14. #14
    Membre actif
    Inscrit en
    Septembre 2004
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 179
    Points : 217
    Points
    217
    Par défaut
    Attention j'ai testé la requête pour voir si elle s'excute mais je n'ai pas regardé ce qu'elle fait...

    je regarde dès que j'ai 2 minutes

  15. #15
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 190
    Points : 72
    Points
    72
    Par défaut
    ok merci

  16. #16
    Membre actif
    Inscrit en
    Septembre 2004
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 179
    Points : 217
    Points
    217
    Par défaut
    Ce n'est pas un problème d'execution de requête que tu as, mais un problème sur la requête.

    La formulation du "Not In" n'est pas exacte et ne renvoie aucun enregistrement a ajouter. Je n'ai jamais utilisé les sous-requêtes dans une requête donc je ne suis pas un spécialiste.

    Donc la requête n'ajoute pas 2 fois la même association de N_CT et de AV_CT

    OR N_Ct est toujours différent de ce que tu as dans la table T_Avenants dans NumCt_Avnt puisqu'il s'agit d'un numéro auto. Donc il faut trouver un autre type de vérification pour éviter les doublons.

    Je pencherais pour une vérif par Type_Ct à condition de changer le type de champ en numérique et enregistrer les type de contrat dans une table, et par Anc_CT et par N_Sal

  17. #17
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 190
    Points : 72
    Points
    72
    Par défaut
    oui en effet ça s'avère plus compliqué qu'on aurait pu le penser.

    j'ai réfléchi à ta solution et j'ai réalisé un petit schéma qui pourrait peut-être aider.

    le voici : Pièce jointe 3743

    Qu'en penses tu ?

  18. #18
    Membre expérimenté
    Avatar de Mahefasoa
    Homme Profil pro
    Manager IT
    Inscrit en
    Octobre 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Manager IT

    Informations forums :
    Inscription : Octobre 2003
    Messages : 835
    Points : 1 664
    Points
    1 664
    Par défaut
    Salut Eric26,
    J'ai relu plusieurs fois ton post et comme toi j'ai cherché et je n'ai pas trouvé ... car j'ai suivi ton raisonnement:
    Eric26 a écrit:
    alors l'enregistrement en question doit s'jouter à la table AVENANTS SAUF si le même contrat AVEC la même date d'avenant figure déjà dans la table AVENANTS
    et le code que tu as proposé (une partie de l'instruction SQL)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    "WHERE ((N_Ct Not In (select NumCt_Avnt from T_avenants)) and ((Av_Ct Not In (select Date_Avnt from T_avenants));"
    Ce qui ne donne rien la deuxième fois que l'on modifie Date_Avnt.
    En fait j'ai changé cette partie en ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    
    "WHERE ((([N_Ct] & [Av_CT]) Not In (select NumCt_Avnt & Date_Avnt As Tes from T_avenants)));"
    Je l'ai testé et ça marche... en tout cas chez moi.

    Bon courage!

  19. #19
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 190
    Points : 72
    Points
    72
    Par défaut
    Salut Mahefasoa,

    J'ai copié et collé ton WHERE ; et il me met la même erreur qu'au début "ERREUR 3075".

    C'est quoi 'As Tes'

    merci

  20. #20
    Membre habitué
    Inscrit en
    Juin 2006
    Messages
    162
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 162
    Points : 197
    Points
    197
    Par défaut
    je pense que ça doit venir d'un apostrophe qui traine dans ton where
    A+

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [access 2003][Requete] Erreur : Incohérence avec le type d'expression
    Par Milyshyn76 dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 15/02/2008, 12h23
  2. [DEBUTANT][access 2003][VBA] Erreur d'execution '3075'
    Par Milyshyn76 dans le forum VBA Access
    Réponses: 31
    Dernier message: 02/01/2008, 11h50
  3. Réponses: 7
    Dernier message: 08/05/2007, 11h43
  4. Requete Sql erreur d'execution 3075
    Par torNAdE dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 18/07/2006, 19h55
  5. erreur d'execution 3075
    Par issam16 dans le forum Access
    Réponses: 5
    Dernier message: 10/07/2006, 15h26

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