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

IHM Discussion :

Récuperer mon champ dans un formulaire et l'ajouter à une nouvelle table


Sujet :

IHM

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juillet 2007
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 106
    Points : 31
    Points
    31
    Par défaut Récuperer mon champ dans un formulaire et l'ajouter à une nouvelle table
    bonjour à tous,

    J'utilise ACCESS 2003;

    J'ai fait une fonction recherche et je voudrai que quand la valeur de mon champ de mon formulaire n'est pas trouvé, ça ajoute cestte donnée dans une nouvelle table.

    Cdlt,

    Merci

  2. #2
    Membre confirmé Avatar de timoth
    Homme Profil pro
    Responsable Outils Digitaux
    Inscrit en
    Octobre 2005
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Responsable Outils Digitaux

    Informations forums :
    Inscription : Octobre 2005
    Messages : 479
    Points : 474
    Points
    474
    Par défaut
    Je te conseille de regarder le tutoriel de Cristphe Warin sur les fonctions DAO, il y a plein de moyens simples (et surtout bien expliqués) de: ajouter des nouvelles tables, des nouveaux champs, en supprimer, ajouter, modifier ou supprimer des enregistrements.
    Tu le trouveras ici

    Bien a toi

  3. #3
    Nouveau membre du Club
    Inscrit en
    Juillet 2007
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 106
    Points : 31
    Points
    31
    Par défaut
    A priori je n'ai pas trouver ce que je voulais faire,
    si quelqu'un a une autre idée....

    Merci

  4. #4
    Membre confirmé Avatar de timoth
    Homme Profil pro
    Responsable Outils Digitaux
    Inscrit en
    Octobre 2005
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Responsable Outils Digitaux

    Informations forums :
    Inscription : Octobre 2005
    Messages : 479
    Points : 474
    Points
    474
    Par défaut
    Euhhhh, si tu cherches savoir ajouter une nouvelle table, tout est là:
    Paragraphe: 4.3.4.4. Créer une nouvelle table

    Si ce n'est pas ca que tu cherches, dis nous ce que tu veux de facon un peu plus détaillé. Si tu attends que qq1 te ponde un code tout cuit, tu peux toujours attendre et ca ne te rendra pas grand grand service.

    Bien a toi

  5. #5
    Nouveau membre du Club
    Inscrit en
    Juillet 2007
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 106
    Points : 31
    Points
    31
    Par défaut
    En faites, j'ai un formulaire.
    J'ouvre mon formulaire et je saisie une info (chiffres). Ma fonction recherche donc dans ma table si elle trouve elle l'affiche sinon je voudrai que si elle trouve pas , cette info soit stocké dans une nouvelle table. Genre comme nom de table elements manquants.

    Cdlt,

  6. #6
    Membre confirmé Avatar de timoth
    Homme Profil pro
    Responsable Outils Digitaux
    Inscrit en
    Octobre 2005
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Responsable Outils Digitaux

    Informations forums :
    Inscription : Octobre 2005
    Messages : 479
    Points : 474
    Points
    474
    Par défaut
    Bon, je vois que tu n'as pas tres tres envie de te creuser la tete.

    Si ta table dans laquelle tu recherches s'appelle TABLE1, ta table d'éléments manquants TABLE2, ton champ s'appelle id1 et ton bouton RECHERCHER, voici le code que tu dois mettre derriere ton bouton:

    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
    Private Sub RECHERCHER_Click()
    Dim rec1 As DAO.Recordset
    Dim rec2 As DAO.Recordset
    'ouvre un jeu d'enregistrement correspondant a la TABLE1
    Set rec1 = CurrentDb.OpenRecordset("TABLE1", dbOpenTable)
    'Cherche dans le champ ID de cette table une valeur identique à celle que tu as tapé dans la textbox id1
    rec1.FindFirst "[ID]='" & Me.id1 & "'"
     
    If rec.NoMatch Then 'S'il ne la trouve pas
        MsgBox "Inconnu" 'Envoi d'un message
        'ouverture d'un jeu d'enregistrement de ta TABLE2
        Set rec2 = CurrentDb.OpenRecordset("TABLE2", dbOpenTable)
        'ajout d'un nouvel enregistrement
        rec2.AddNew
        'Ecris dans le champ ID de la TABLE2 le numéro rentré dans la textbox
        rec2.Fields("ID") = Me.id1
        'met a jour TABLE2
        rec2.Update
    Else 'S'il l'a trouvé
        MsgBox "Trouvé" 'envoi d'un message
    End If
    rec1.Close
    rec2.Close
    Set rec1 = Nothing
    Set rec2 = Nothing
    End Sub
    Avant de l'executer, dans l'éditeur VB, tu vas sur Outils/Reference et tu coches (ou tu vérifies qu'elle soit bien cochée) la reference Microsoft DAO 3.x Object Library

  7. #7
    Nouveau membre du Club
    Inscrit en
    Juillet 2007
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 106
    Points : 31
    Points
    31
    Par défaut
    Petit souci au niveau de cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rec1.FindFirst "[ID]='" & Me.cbo_champ & "'"
    cela me met une erreur :
    Erreur d'éxecution :"3251".
    Opération is not supported for this type of objet

  8. #8
    Nouveau membre du Club
    Inscrit en
    Juillet 2007
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 106
    Points : 31
    Points
    31
    Par défaut
    voila mon 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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    Private Sub cmd_recherche_Click()
     
    Dim rec1 As DAO.Recordset
    Dim rec2 As DAO.Recordset
    'ouvre un jeu d'enregistrement correspondant a la TABLE1
    Set rec1 = CurrentDb.OpenRecordset("Produits", dbOpenTable)
    'Cherche dans le champ ID de cette table une valeur identique à celle que tu as tapé dans la textbox id1
    rec1.FindFirst "[ID]='" & Me.cbo_champ & "'"
     
    If rec.NoMatch Then 'S'il ne la trouve pas
        MsgBox "Inconnu" 'Envoi d'un message
        'ouverture d'un jeu d'enregistrement de ta TABLE2
        Set rec2 = CurrentDb.OpenRecordset("NonTrouver", dbOpenTable)
        'ajout d'un nouvel enregistrement
        rec2.AddNew
        'Ecris dans le champ ID de la TABLE2 le numéro rentré dans la textbox
        rec2.Fields("ID") = Me.cbo_champ
        'met a jour TABLE2
        rec2.Update
    Else 'S'il l'a trouvé
        MsgBox "Trouvé" 'envoi d'un message
    End If
    rec1.Close
    rec2.Close
    Set rec1 = Nothing
    Set rec2 = Nothing
     
    End Sub

  9. #9
    Membre confirmé Avatar de timoth
    Homme Profil pro
    Responsable Outils Digitaux
    Inscrit en
    Octobre 2005
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Responsable Outils Digitaux

    Informations forums :
    Inscription : Octobre 2005
    Messages : 479
    Points : 474
    Points
    474
    Par défaut
    et.... ça marche???

  10. #10
    Nouveau membre du Club
    Inscrit en
    Juillet 2007
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 106
    Points : 31
    Points
    31
    Par défaut
    Non j'ai un probleme a cette ligne lorsque le debogueur se lance:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rec1.FindFirst "[ID]='" & Me.cbo_champ & "'"

  11. #11
    Membre confirmé Avatar de timoth
    Homme Profil pro
    Responsable Outils Digitaux
    Inscrit en
    Octobre 2005
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Responsable Outils Digitaux

    Informations forums :
    Inscription : Octobre 2005
    Messages : 479
    Points : 474
    Points
    474
    Par défaut
    N'oublie pas les balises de code quand tu inseres des morceaux de VBA (bouton #)

    Euhh, quel est le message ?? Tu as bien un champ ID dans ta table Produits??

  12. #12
    Nouveau membre du Club
    Inscrit en
    Juillet 2007
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 106
    Points : 31
    Points
    31
    Par défaut
    J'ai changé mon champ ID car j'en avais pas mais meme en mettant le nom du champ de ma table a la place de ID cela ne fonctionne pas , l'erreur est decrit plus haut erreur 3251.

  13. #13
    Membre confirmé Avatar de timoth
    Homme Profil pro
    Responsable Outils Digitaux
    Inscrit en
    Octobre 2005
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Responsable Outils Digitaux

    Informations forums :
    Inscription : Octobre 2005
    Messages : 479
    Points : 474
    Points
    474
    Par défaut
    Excuse-moi, je pensais que ca marcherait en ouvrant le recordset comme ca, mais non. Il vaut mieux écrire la requete directement.

    J'ai repéré deux erreurs potentielles, prends ce code là 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
    18
    19
    20
    21
    22
    23
    24
    25
    Private Sub cmd_recherche_Click()   
    Dim rec1 As DAO.Recordset 
    Dim rec2 As DAO.Recordset 
    'ouvre un jeu d'enregistrement correspondant a la TABLE1 
    Set rec1 = CurrentDb.OpenRecordset("SELECT * FROM Produits")
    'ouverture d'un jeu d'enregistrement de ta TABLE2  
    Set rec2 = CurrentDb.OpenRecordset("NonTrouver", dbOpenTable) 
     'Cherche dans le champ ID de cette table une valeur identique à celle que tu as tapé dans la textbox id1 
    rec1.FindFirst "[ID]='" & Me.cbo_champ & "'"   
    If rec1.NoMatch Then 'S'il ne la trouve pas  
    MsgBox "Inconnu" 'Envoi d'un message  
    'ajout d'un nouvel enregistrement  
    rec2.AddNew  
    'Ecris dans le champ ID de la TABLE2 le numéro rentré dans la textbox  
    rec2.Fields("ID") = Me.cbo_champ 
     'met a jour TABLE2  
    rec2.Update 
    Else 'S'il l'a trouvé  
    MsgBox "Trouvé" 'envoi d'un message 
    End If 
    rec1.Close 
    rec2.Close 
    Set rec1 = Nothing 
    Set rec2 = Nothing   
    End Sub

  14. #14
    Nouveau membre du Club
    Inscrit en
    Juillet 2007
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 106
    Points : 31
    Points
    31
    Par défaut
    Encore un petit souci c'est que dans ma table "NonTrouver" ca affiche mon etiquette de mon champ et pas le champ que je tappe.

    Aurai-tu une idée?

  15. #15
    Membre confirmé Avatar de timoth
    Homme Profil pro
    Responsable Outils Digitaux
    Inscrit en
    Octobre 2005
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Responsable Outils Digitaux

    Informations forums :
    Inscription : Octobre 2005
    Messages : 479
    Points : 474
    Points
    474
    Par défaut
    Je suis surpris... C'est bien un TextBox que tu as mis ?

    Ecris plutot:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rec2.Fields("ID") = Me.cbo_champ.Value
    Sinon, quel est le format de ton champ ID dans ta table NonTrouver??

  16. #16
    Nouveau membre du Club
    Inscrit en
    Juillet 2007
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 106
    Points : 31
    Points
    31
    Par défaut
    Rectification : je tappe ce que je veux recherché non pas dans unetextbox mais dans un champ je pense que le souci vient de la si tu veux j'avais commencer ma fonction de recherche, c'est la meme que ce qu'il y a dans ce tuto

    http://loufab.developpez.com/recursivite/#LII

    sinon pas de format spécifique

    Meme avec le .Value ca merde

  17. #17
    Membre confirmé Avatar de timoth
    Homme Profil pro
    Responsable Outils Digitaux
    Inscrit en
    Octobre 2005
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Responsable Outils Digitaux

    Informations forums :
    Inscription : Octobre 2005
    Messages : 479
    Points : 474
    Points
    474
    Par défaut
    Ton controle cbo_champ a bien une race.

    Un champ correspond a une case dans une table. Les champs sont projetés dans les formulaires avec des TextBox, des Combo, des Listes, des Checkbox etc...

    Je n'ai pas le temps de lire le tuto en lien pour identifier ton pb, mais la case dans laquelle tu tapes ce que tu veux rechercher a forcement un type.

    Supprime le "truc" dans lequel tu écris et créé un TextBox a qui tu donneras le nom cbo_champ.

    Ca doit marcher

  18. #18
    Nouveau membre du Club
    Inscrit en
    Juillet 2007
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 106
    Points : 31
    Points
    31
    Par défaut
    Peut-etre pas le temps cette apres midi mais je vais jeter un coup d'oeil

    Merci de m'accorder du temps

  19. #19
    Membre confirmé Avatar de timoth
    Homme Profil pro
    Responsable Outils Digitaux
    Inscrit en
    Octobre 2005
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Responsable Outils Digitaux

    Informations forums :
    Inscription : Octobre 2005
    Messages : 479
    Points : 474
    Points
    474
    Par défaut
    Tu es tout pret du but. Ton pb devrait pouvoir se résoudre en 5 min, je pense !
    Bon courage

  20. #20
    Nouveau membre du Club
    Inscrit en
    Juillet 2007
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 106
    Points : 31
    Points
    31
    Par défaut
    probleme au niveau de
    comme message d'erreur ca me met :
    "erreur d'éxecution 3314, the field "NonTrouver.NuméroInontrouvé" cannot contain a Null value because the Required property for this field is set to true . Enter a value in this field"

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

Discussions similaires

  1. [AC-2010] Afficher dans un formulaire les données d'une autre table
    Par GéraldineB dans le forum IHM
    Réponses: 4
    Dernier message: 23/02/2015, 09h08
  2. Réponses: 7
    Dernier message: 19/03/2014, 19h42
  3. Réponses: 3
    Dernier message: 04/05/2006, 09h26
  4. Réponses: 1
    Dernier message: 04/05/2006, 09h26
  5. Réponses: 2
    Dernier message: 12/02/2003, 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