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 :

VBA et requête ajout dans une table avec case oui/non


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2023
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2023
    Messages : 53
    Par défaut VBA et requête ajout dans une table avec case oui/non
    Bonjour
    Voilà, en VBA, je migre certaines données d'une table vers une autre. Tous les champs passent bien sauf un champ de case à cocher oui/non.

    Mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Set rst = CurrentDb.OpenRecordset("SELECT Num_affaire, Date_decision, Appel FROM cdpi")
    rst.MoveFirst
    While Not rst.EOF
        sql = AutoNumber("tdecisions", "Id_decision", "E" & Right(Year(Date), 2), 3, Year(Date))
        DoCmd.RunSQL "INSERT INTO tdecisions (Id_decion, Num_affaire, Date_decision, Appel) VALUES ('" & sql & "', '" & rst("Num_affaire") & "', '" & rst("Date_decision") & "', '" & rst("Appel") & "');"
        rst.MoveNext
    Wend
    En rouge, mon champ case à cocher de mes deux tables (champs oui/non)

    Tout le code s'exécute. Dans la table que je copie (recordset) 80 % des cases sont cochées... Dans la table de destination, 0%

    Quelqu'un a t-il une idéee.

    Merci
    Marie.

  2. #2
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 615
    Billets dans le blog
    67
    Par défaut
    Bonjour,

    Avez-vous désactivé les warnings au début du code avec DoCmd.SetWarnings False :
    https://learn.microsoft.com/fr-fr/of...md.setwarnings

    Si c'est le cas les réactiver et peut-être remplacer le DoCmd.RunSQL ... par la commande currentdb.Execute ..., dbFailOnError qui n'afficher pas d'avertissement quand on exécute une requête action.

    Voir aussi si une table des erreurs a été générée.

    Cdlt
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  3. #3
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2023
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2023
    Messages : 53
    Par défaut
    Bonjour
    Merci de ta réponse.
    j'ai réactivé DoCmd.SetWarnings True
    Voilà l'erreur
    Nom : {B97E8C83-D1BC-40A9-BC99-3FFC533F2A0B}.png
Affichages : 78
Taille : 3,5 Ko

    j'ai transformé ma commande avec CurrentDb.Execute
    J'ai une erreur 3464 - Type de données incompatible dans l'expression du critère

    Marie

  4. #4
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 615
    Billets dans le blog
    67
    Par défaut
    Bonjour,


    Il y a une valeur à null probablement dans le champ Appel de la table cdpi, je serais tenté d'utiliser la fonction nz pour remplacer un null par 0 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    currentdb.Execute "INSERT INTO tdecisions (Id_decion, Num_affaire, Date_decision, Appel) VALUES ('" & sql & "', '" & rst("Num_affaire") & "', '" & rst("Date_decision") & "', '" & nz(rst("Appel"),0) & "');", dbFailOnError
    Cdlt
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  5. #5
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2023
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2023
    Messages : 53
    Par défaut
    C'est désespérant.
    J'ai bien remplacé par Nz(rst("Appel"), 0)... je n'y comprend rien.


    Nom : {BD314AB6-86BC-4BC4-8FDA-1B604BAFA7F8}.png
Affichages : 74
Taille : 5,8 Ko

  6. #6
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mars 2022
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Mars 2022
    Messages : 140
    Par défaut
    Une remarque sans doute inutile, mais je la fais quand même :

    Ligne 5 du code dans le 1er post, il y a "Id_decion" au lieu de "Id_decision" je suppose !?

+ Répondre à la discussion
Cette discussion est résolue.

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