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 :

interdire une selection dans une liste selon valeur


Sujet :

Access

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 153
    Points : 89
    Points
    89
    Par défaut interdire une selection dans une liste selon valeur
    Bonjour à tous,

    en fait j'ai 3 Table T_Dossier ( clé primaire NumDossier), T_Offre ( clé primaire NumOffre, il y a un champ Cas de type liste pour donner la suite donnée à l'offre Retenue, rejeté, ou sélectionnée), enfin la table T_Offre_Dossier (clé primaire N°, deux clé étrangeres : NumDossier, et NumOffre)
    et tous ça pour relié l'offre au dossier ( chaque offre peut correspondre a plusieurs dossier et chaque dossier peut avoir plusieurs offre)
    Mon souci que je veux interdire la selection "retenue" pour une offre tant qu'il y a déja une offre retenue pour le meme dossier

    Donc j'ai fais ce code là:
    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
    Private Sub Modifiable71_Change()
    Dim numD As Integer, sql As String
     
    Dim rs As DAO.Recordset
    numD = Form_F_liste_dossiers.NumDossier.Value
    sql = "select * from R_Retenue where NumDossier=" & numD
    Set rs = CurrentDb.OpenRecordset(sql, dbOpenSnapshot)
     
    If Len(sql) = 0 Then
    Exit Sub
    End If
    If rs.Fields("NumOffre") <> Me.NumOffre.Value And Me.Modifiable71.Value = "Retenue" Then
    MsgBox " Cette offre ne peut être retenue, car une autre offre est déjà retenue pour ce dossier", , "Avertissement"
    Me.Modifiable71.Value = ""
    End If
    rs.Close
     
     
    End Sub
    R_retenue est une requete qui selectionne tout dossier avec son offre retenue

    ce code marche quand il y a une offre déjà retenue, mais qd il n y a pa il bloque et il me dit il n y a aucun enregistrement erreur 3021..
    quelqu'un peut m'aider svp?
    merci

  2. #2
    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
    Citation Envoyé par polianita
    Bonjour à tous,

    (...)
    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
    Private Sub Modifiable71_Change()
    Dim numD As Integer, sql As String
     
    Dim rs As DAO.Recordset
    numD = Form_F_liste_dossiers.NumDossier.Value
    sql = "select * from R_Retenue where NumDossier=" & numD
    Set rs = CurrentDb.OpenRecordset(sql, dbOpenSnapshot)
     
    If Len(sql) = 0 Then
    Exit Sub
    End If
    If rs.Fields("NumOffre") <> Me.NumOffre.Value And Me.Modifiable71.Value = "Retenue" Then
    MsgBox " Cette offre ne peut être retenue, car une autre offre est déjà retenue pour ce dossier", , "Avertissement"
    Me.Modifiable71.Value = ""
    End If
    rs.Close
     
     
    End Sub
    (...)
    ce code marche quand il y a une offre déjà retenue, mais qd il n y a pa il bloque et il me dit il n y a aucun enregistrement erreur 3021..
    quelqu'un peut m'aider svp?
    merci
    Salut,
    Avant de lire un enregistrement, prends soin de vérifier si enregistrement il y a dans le recordset.
    Avant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    If rs.Fields("NumOffre") <> Me.NumOffre.Value And Me.Modifiable71.Value = "Retenue" Then
    ajoutes ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    If rs.RecordCoutnt <> 0 Then
       'Ici tu ajoutes to code If rs.Fields ...
    Else
       'Aucun enregistrement
    End If
    La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi. Ici nous avons réuni théorie et pratique: Rien ne fonctionne ... et personne ne sait pourquoi!
    Albert Einstein

  3. #3
    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
    Citation Envoyé par polianita
    Bonjour à tous,

    (...)
    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
    Private Sub Modifiable71_Change()
    Dim numD As Integer, sql As String
     
    Dim rs As DAO.Recordset
    numD = Form_F_liste_dossiers.NumDossier.Value
    sql = "select * from R_Retenue where NumDossier=" & numD
    Set rs = CurrentDb.OpenRecordset(sql, dbOpenSnapshot)
     
    If Len(sql) = 0 Then
    Exit Sub
    End If
    If rs.Fields("NumOffre") <> Me.NumOffre.Value And Me.Modifiable71.Value = "Retenue" Then
    MsgBox " Cette offre ne peut être retenue, car une autre offre est déjà retenue pour ce dossier", , "Avertissement"
    Me.Modifiable71.Value = ""
    End If
    rs.Close
     
     
    End Sub
    (...)
    ce code marche quand il y a une offre déjà retenue, mais qd il n y a pa il bloque et il me dit il n y a aucun enregistrement erreur 3021..
    quelqu'un peut m'aider svp?
    merci
    Salut,
    Avant de lire un enregistrement, prends soin de vérifier si enregistrement il y a dans le recordset.
    Avant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    If rs.Fields("NumOffre") <> Me.NumOffre.Value And Me.Modifiable71.Value = "Retenue" Then
    ajoutes ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    If rs.RecordCount <> 0 Then
       'Ici tu ajoutes to code If rs.Fields ...
    Else
       'Aucun enregistrement
    End If
    La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi. Ici nous avons réuni théorie et pratique: Rien ne fonctionne ... et personne ne sait pourquoi!
    Albert Einstein

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 153
    Points : 89
    Points
    89
    Par défaut Nickel
    génial
    ça marche
    c ce qu'il me fallai exact
    Merci

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

Discussions similaires

  1. [XL-2007] Afficher une checkbox dans une feuille si une checkbox d'une autre feuille est cochée
    Par JessieCoutas dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/08/2009, 13h35
  2. portée d'une variable dans une fonction dans une méthode
    Par laurentg2003 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/06/2009, 19h05
  3. Réponses: 1
    Dernier message: 04/04/2008, 12h14
  4. [POO] dans une classe, appeler une fonction dans une méthode
    Par arnaudperfect dans le forum Langage
    Réponses: 3
    Dernier message: 26/08/2007, 23h04
  5. Envoyer une formulaire dans une page dans une Frame
    Par zooffy dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 29/06/2007, 10h13

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