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 :

Nouvel enregistrement si n'est pas dans liste


Sujet :

IHM

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    208
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 208
    Points : 76
    Points
    76
    Par défaut Nouvel enregistrement si n'est pas dans liste
    Re-Bonjour ( c'est mon second du jour )

    J'ai une liste déroulante qui permet d'afficher la commande voulue après mise à jour :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub Modifiable10_AfterUpdate()
        ' Rechercher l'enregistrement correspondant au contrôle.
        Dim rs As Object
     
        Set rs = Me.Recordset.Clone
        rs.FindFirst "[commande] = '" & Me![Modifiable10] & "'"
        If Not rs.EOF Then Me.Bookmark = rs.Bookmark
    End Sub
    Comment puis je faire pour que si la commande spécifiée n'existe pas mon formulaire s'ouvre sur un nouvel enregistrement ?
    J'ai pensé à mettre dans si absent de la liste :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Modifiable10_NotInList(NewData As String, Response As Integer)
    DoCmd.GoToRecord , , acNewRec
    End Sub
    Mais y'a pas bon

    Merci

  2. #2
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    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
    Private Sub RéfClient_NotInList(NewData As String, Response As Integer)
    Dim entDemande As Integer
    Dim bds As Database, rst As Recordset
     
    entDemande = MsgBox("Ajouter un nouveau client ?", vbQuestion + vbYesNo)
     
    If entDemande = vbYes Then
     
        Set bds = CurrentDb
        Set rst = bds.OpenRecordset("tblClients")
        rst.AddNew
        rst!Nom = NewData
        rst.Update
        Response = acDataErrAdded
        MsgBox ("Il faut mettre les données à jour!!!")
    Else
        'Response = acDataErrDisplay
        Exit Sub
    End If
    rst.Close
    End Sub
    Voilà un code que j'utilise et qui fonctionne.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    208
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 208
    Points : 76
    Points
    76
    Par défaut
    Intéressant ! Je teste et je reviens vers toi

    Gracias

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    208
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 208
    Points : 76
    Points
    76
    Par défaut
    Bonjour,

    Après adaptation à ma base ça ne marche pas
    N'y a t'il rien à faire dans cette partie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Modifiable10_AfterUpdate()  
    ' Rechercher l'enregistrement correspondant au contrôle.  
    Dim rs As Object   
    Set rs = Me.Recordset.Clone  rs.FindFirst "[commande] = '" & Me![Modifiable10] & "'"  If Not rs.EOF Then Me.Bookmark = rs.Bookmark End Sub
    Pour rappel il s'agit d'un combo de sélection et non de mise à jour
    Comment faire pour que si je tape un élément qui n'appartient pas à la liste mon formulaire se mette automatiquement sur un nouvel enregistrement ?

    Encore merci

  5. #5
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Je viens seulement de me rendre compte que c'était un combo de sélection;

    Il faut tester si le recordset est vide ou pas et avec une condition, aller vers un nouvel enregistrement.

    Regarde ICI § 5.6.18

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    208
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 208
    Points : 76
    Points
    76
    Par défaut
    Citation Envoyé par Heureux-oli
    Je viens seulement de me rendre compte que c'était un combo de sélection;

    Il faut tester si le recordset est vide ou pas et avec une condition, aller vers un nouvel enregistrement.

    Regarde ICI § 5.6.18
    Salut,

    J'ai encore du mal sur les recordset, j'ai testé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub Modifiable10_AfterUpdate()
        ' Rechercher l'enregistrement correspondant au contrôle.
        Dim rs As Object
     
        Set rs = Me.Recordset.Clone
        rs.FindFirst "[commande] = '" & Me![Modifiable10] & "'"
        If rs.NoMatch = True Then DoCmd.GoToRecord , , acNewRec
        If Not rs.EOF Then Me.Bookmark = rs.Bookmark
    End Sub
    Mais ça n'est pas encore ça et je n'arrive pas à déterminer ce qui ne va pas

    Merci

  7. #7
    Expert éminent
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Points : 8 268
    Points
    8 268
    Par défaut
    Salut,
    Citation Envoyé par Sami Xite
    Mais ça n'est pas encore ça et je n'arrive pas à déterminer ce qui ne va pas

    Merci
    Tu n'as pas un message d'erreur ???

    Personnellement, j'aurais déclaré rs de cette manière
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim rs As DAO.Recordset

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    208
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 208
    Points : 76
    Points
    76
    Par défaut
    J'ai remplacé par DAO.Recordset mais ça ne fonctionne toujours pas
    En gros si je rentre un numéro de commande qui n'est pas dans la liste le formulaire se met sur le premier enregistrement
    C'est rageant

  9. #9
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Voila, je viens de faire quelques essais et ce code devrait fonctionner

    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
    Private Sub Combo2_AfterUpdate()
    ' Rechercher l'enregistrement correspondant au contrôle.
        Dim rs As DAO.Recordset
     
    retour:
        Set rs = Me.Recordset.Clone
        rs.FindFirst "[id] = " & Me![Combo2]
        If rs.NoMatch = True Then
        rs.AddNew
        rs.Fields("id") = Me.Combo2
        rs.Update
        Me.Combo2.Requery
        GoTo retour
        End If
        If Not rs.EOF Then Me.Bookmark = rs.Bookmark
     
    End Sub

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    208
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 208
    Points : 76
    Points
    76
    Par défaut
    Citation Envoyé par Heureux-oli
    Voila, je viens de faire quelques essais et ce code devrait fonctionner

    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
    Private Sub Combo2_AfterUpdate()
    ' Rechercher l'enregistrement correspondant au contrôle.
        Dim rs As DAO.Recordset
     
    retour:
        Set rs = Me.Recordset.Clone
        rs.FindFirst "[id] = " & Me![Combo2]
        If rs.NoMatch = True Then
        rs.AddNew
        rs.Fields("id") = Me.Combo2
        rs.Update
        Me.Combo2.Requery
        GoTo retour
        End If
        If Not rs.EOF Then Me.Bookmark = rs.Bookmark
     
    End Sub
    Salut,

    Merci beaucoup pour ton implication
    J'ai adapté ton 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
    Private Sub Modifiable10_AfterUpdate()
        ' Rechercher l'enregistrement correspondant au contrôle.
        Dim rs As DAO.Recordset
    retour:
        Set rs = Me.Recordset.Clone
        rs.FindFirst "[commande] = '" & Me![Modifiable10] & "'"
        If Not rs.NoMatch = True Then
        rs.AddNew
        rs.Fields("commande") = Me.Modifiable10
        rs.Update
        Me.Modifiable10.Requery
        GoTo retour
        End If
        If Not rs.EOF Then Me.Bookmark = rs.Bookmark
     
    End Sub
    mais j'ai l'impression qu'il ne teste pas si la valeur existe et qu'il passe directement à un nouvel enregistrement. En fait même quand je rentre une valeur appartenant à la liste il me retourne une erreur de doublons

    Encore merci

  11. #11
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Je n'avais pas ce problème ?

    Je vais regarder, en fait comme j'ai pris ce qui existait sur mon pc, le champ sur lequel je fait la recherche est un numérique.

  12. #12
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    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
     
    Private Sub Combo2_AfterUpdate()
    ' Rechercher l'enregistrement correspondant au contrôle.
        Dim rs As DAO.Recordset
     
    retour:
        Set rs = Me.Recordset.Clone
        rs.FindFirst "[id] = '" & Me![Combo2] & "'"
        If rs.NoMatch = True Then
        rs.AddNew
        rs.Fields("id") = Me.Combo2
        rs.Update
        Me.Combo2.Requery
        GoTo retour
        End If
        If Not rs.EOF Then Me.Bookmark = rs.Bookmark
     
    End Sub
    Voilà avec du texte ce que ça donne.

    Voilà la DB que j'ai utilisé pour le test.

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    208
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 208
    Points : 76
    Points
    76
    Par défaut
    Merci beaucoup
    Je vais essayer de trouver ce qui coince et je te tiens au courant

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    208
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 208
    Points : 76
    Points
    76
    Par défaut
    Salut

    Ca y est c'est ok !!
    Un problème de " et/ou de ' dans mon code
    Je te remercie infiniment pour ton aide et pour ton esprit de partage

    Muchas Gracias !!

  15. #15
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    de nada

  16. #16
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 16
    Points : 15
    Points
    15
    Par défaut
    Bonjour,
    je voudrais savoir comment ajouter un nouvel enregistrement dans une table à partir d'une inscription dans un formulaire?
    merci

  17. #17
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Ca se fait tout seul.

    Je te conseille si tu as une question, d'ouvrir un nouveau message plutôt que de poster à la suite d'un message existant.

  18. #18
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 16
    Points : 15
    Points
    15
    Par défaut
    oui mais ça marche pas car on voudrait un truk spécial. Quand la personne arrive sur le formulaire d'inscription on voudrait que son numéro et la soirée auquel il s'inscrit soit deja inscrit (on va les chercher à d'autres emplacement que dans la table et du coup le problème c'est que ça n'enregistre pas cette table....

  19. #19
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Mets un nouveau post avec ta demande exprimée clairement.

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

Discussions similaires

  1. Chercher un enregistrement qui N'EST PAS dans une table
    Par ZeBandit dans le forum Requêtes
    Réponses: 13
    Dernier message: 05/05/2015, 11h02
  2. [JComboBox] Afficher du text qui n'est pas dans la liste
    Par metaska dans le forum Composants
    Réponses: 3
    Dernier message: 10/09/2008, 13h30
  3. elements qui n'est pas dans une liste
    Par KEnder dans le forum Général Python
    Réponses: 2
    Dernier message: 16/05/2008, 01h52
  4. Réponses: 6
    Dernier message: 09/01/2008, 11h56
  5. Réponses: 2
    Dernier message: 28/08/2006, 15h00

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