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 :

bouton plus pour ne plus ecrire


Sujet :

VBA Access

  1. #1
    Membre confirmé
    Homme Profil pro
    fonctionnaire
    Inscrit en
    Avril 2009
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : fonctionnaire

    Informations forums :
    Inscription : Avril 2009
    Messages : 169
    Par défaut bouton plus pour ne plus ecrire
    bonjour

    afin d'ajouter une bouton plus dans mon forulaire de saisie je voudrais ajoutée un bouton pour ne plus ecrire le numero des tirs

    en effet des mon masque de saisie des serie un de vous ma données le code VBA suivant pour ne plus ecrire manuellement
    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    Option Compare Database: Option Explicit
    Private Sub Ctl__Click()
     
        If IsNull(Me.Num_serie) Then
            Me.Num_serie = CalculerProchainNoSerie(Me.Parent.Id_match, Me.Parent.id_tireur)
        End If
     
    End Sub
     
    Private Function CalculerProchainNoSerie(prmIdMatch As Variant, prmIdTireur As Variant) As Long
        Dim result As Long
     
        Dim dernierNoSerie As Variant
        Dim critere As String
        critere = "Id_match=" & prmIdMatch & " and Id_tireur=" & prmIdTireur
        result = Nz(DMax("Num_serie", "serie", critere), 0) + 1
     
        CalculerProchainNoSerie = result
    End Function
    Private Sub Form_AfterDelConfirm(Status As Integer)
        Call GererMaxSerie
    End Sub
     
    Private Sub Form_AfterInsert()
        Call GererMaxSerie
    End Sub
     
    Sub Form_Current()
     
        On Error GoTo Form_Current_Err
     
        Dim ParentDocName As String
     
        ParentDocName = Me.Parent.Name
        Me.Parent![nouveautir].Requery
     
    Form_Current_Exit:
        Exit Sub
     
    Form_Current_Err:
     
        Select Case Err.Number
            Case 2452
                'Ne rien faire, c'est une erreur prévue
     
            Case Else
                'Autre cas d'erreur non prévue
                MsgBox "Erreur : " & Err.Number & ", " & Err.Description
     
        End Select
     
        Resume Form_Current_Exit
    End Sub
     
    Private Function LireNombreSerie() As Long
        'Retrouve le nombre de séries actuellement enregistrées
        Dim result As Long
     
        Dim r As DAO.Recordset: Set r = Me.RecordsetClone
        r.MoveLast 'Force la lecture de tous les energistrements pour savoir combien il y en a.
        result = r.RecordCount
        r.Close: Set r = Nothing 'Ferme l'objet Recordset et libère explicitement la mémoire associée.
     
        LireNombreSerie = result
    End Function
     
    Private Function LireMatchNomDiscipline(prmIdMatch As Variant, prmIdTireur As Variant) As Variant
        'J'ai mis des variant pour pouvoir gérer les nulls
        Dim result As Variant: result = Null
     
        If Not IsNull(prmIdMatch) And Not IsNull(prmIdTireur) Then
            'Va chercher le nom de la discipline
            result = DFirst("Nom_Discipline", "Match", "[Id_match]=" & prmIdMatch & " and [Id_Tireur]=" & prmIdTireur)
        End If
     
        LireMatchNomDiscipline = result
    End Function
     
    Private Function LireNbMaxSerieDiscipline(prmNomDiscipline As Variant) As Long
        'Donne le nombre maximum de séries autorisées pour la discipline choisie
        Dim result As Long
     
        If Not IsNull(prmNomDiscipline) Then
            result = Nz(DFirst("Nb_serie", "Discipline", "[Nom_discipline]=""" & prmNomDiscipline & """"), 0)
        End If
     
        LireNbMaxSerieDiscipline = result
     
    End Function
     
    Private Function MaxSerieAtteint() As Boolean
        'Détermine si on atteint le nombre maximum de séries pour la discipline choisie
        Dim result As Boolean
     
        Dim nomDiscipline As Variant: nomDiscipline = LireMatchNomDiscipline(Me![Id_match], Me![id_tireur]) 'Le me! permet d'accéder aux champs de la source de données, même s'ils ne sont pas affichés
        Dim nombreMaxSerie As Long: nombreMaxSerie = LireNbMaxSerieDiscipline(nomDiscipline)
        Dim nombreSerie As Long: nombreSerie = LireNombreSerie()
     
        If nombreSerie >= nombreMaxSerie Then
                result = True
            Else
                result = False
        End If
     
        MaxSerieAtteint = result
     
    End Function
     
    Private Sub GererMaxSerie()
     
        If MaxSerieAtteint() Then 'If MaxSerieAtteint() Then est équivalent à If MaxSerieAtteint()=true Then
                Me.AllowAdditions = False
                MsgBox "Vous avez atteind le maximum de " & LireNbMaxSerieDiscipline(LireMatchNomDiscipline(Me![Id_match], Me![id_tireur])) & " série(s) autorisée(s).", vbInformation
            Else
                Me.AllowAdditions = True
        End If
     
    End Sub
    je voudrais le même pour mais tir cela évitera d’écrire a chaque fois 1 2 3 4 5 6 7 8 9 10

    en vous remerciant d'avance
    Images attachées Images attachées  

Discussions similaires

  1. Réponses: 8
    Dernier message: 29/09/2008, 20h11
  2. Travailler plus pour travailler plus
    Par bidou dans le forum Politique
    Réponses: 15
    Dernier message: 10/07/2008, 08h47
  3. [travail] Travailler plus pour gagner plus ?
    Par Mat.M dans le forum Politique
    Réponses: 216
    Dernier message: 16/01/2008, 15h38
  4. Une petit plus pour barre d'outils personnalisée
    Par CBleu dans le forum Access
    Réponses: 1
    Dernier message: 27/01/2006, 11h55

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