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 :

Suggestion de code VBA pour un nouvel ajout/enregistrement


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2017
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2017
    Messages : 45
    Par défaut Suggestion de code VBA pour un nouvel ajout/enregistrement
    Voici la situation:
    je voudrais faire un nouvel enregistrement des réservation pour un client donné.
    le controle effectué est la même ne peut pas être réservée plusieurs fois à la date.
    par exemple si la salle s1 est réservée du 21/10/2017 au 30/10/2017 alors elle ne peut plus être réservée à ces mêmes dates.
    j'ai mon code dont j'ignore qu 'il fonctionnera et que je vous soumet pour des suggestions ou appréciations.
    En attendant je vais revoir la relations entre mes tables qui à chaque fois m'affiche un message me disant qu'il est impossible de supprimer ou modifier l’enregistrement car la table "RÉSERVATION" comprend des enregistrements connexes.
    Voici mon pour un nouvel enregistrement:
    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
    Private Sub CmdEnreg_Click()
    Dim sal As String
    Dim cdate1, cdate2 As Date
     
     
    'vérifie si une salle n'est pas sélectionnée par l'utilisateur
    If (IsNull(Forms!Frm_Reservation_Salle_Client.sfReservationSalleClient.Form!code_sal)) Then
        MsgBox ("Veuillez sélectionner une salle")
      Else
        'vérifie si une date de début n'est pas entrée par l'utilisateur
        If (IsNull(Forms!Frm_Reservation_Salle_Client.sfReservationSalleClient.Form!date_debut)) Then
            MsgBox ("Veuillez entrer une date de debut")
            'vérifie si une date de fin n'est pas entrée par l'utilisateur
        ElseIf (IsNull(Forms!Frm_Reservation_Salle_Client.sfReservationSalleClient.Form!date_fin)) Then
            MsgBox ("Veuillez entrer une date de fin")
          Else
     
            'recherche dans la table reservation les sallées qui sont déja reservées a cette même période et le stock dans la variable sal
            cdate1 = Forms!Frm_Reservation_Salle_Client.sfReservationSalleClient.Form!date_debut
            cdate2 = Forms!Frm_Reservation_Salle_Client.sfReservationSalleClient.Form!date_fin
            sal = DLookup("code_sal", "RESERVATION", (between(date_debut = cdate1) And (date_fin = cdate2)))
            'sal = DLookup("code_sal", "RESERVATION", ("date_debut=#" & Forms!Frm_Reservation_Salle_Client.sfReservationSalleClient.Form!date_debut & "# and date_fin = #" & Forms!Frm_Reservation_Salle_Client.sfReservationSalleClient.Form!date_fin & "#")
            'si la salle sélectionnée correspond a la sallée reservée enregistrée dans la base de données
            If (sal = code_sal) Then
                MsgBox "Salle occupée à cette période"
              Else
                Set db = CurrentDb
     
                Set rsReservation = db.OpenRecordset("RESERVATION")
                With rsReservation
                    'Ajoute une nouvelle reservation du client
                    .AddNew
                    .Fields("code_res") = Forms!Frm_Reservation_Salle_Client.Form!sfReservationSalleClient!code_res
                    .Fields("code_sal") = Forms!Frm_Reservation_Salle_Client.Form!sfReservationSalleClient!code_sal
                    .Fields("objet_res") = Forms!Frm_Reservation_Salle_Client.Form!sfReservationSalleClient!objet_res
                    .Fields("date_debut") = Forms!Frm_Reservation_Salle_Client.Form!sfReservationSalleClient!date_debut
                    .Fields("date_fin") = Forms!Frm_Reservation_Salle_Client.Form!sfReservationSalleClient!date_fin
                    .Fields("heure_debut") = Forms!Frm_Reservation_Salle_Client.Form!sfReservationSalleClient!heure_fin
                    .Fields("heure_fin") = Forms!Frm_Reservation_Salle_Client.Form!sfReservationSalleClient!heure_fin
                    .Fields("statut") = Forms!Frm_Reservation_Salle_Client.Form!sfReservationSalleClient!statut
     
                    Set rsClient = .Fields("code_cl").Value
                    'ajouter un client
                    With rsClient
                       .AddNew
                       rsClient!code_cl = Me.code_cl
                       rsClient!nom_prenom = Me.nom_prenom
                       rsClient!tel1 = Me.tel1
                       rsClient!tel2 = Me.tel2
                       rsClient!email = Me.email
     
                       rsClient.Update
                    End With
                    rsReservation.Update
                End With
     
     
            End If
        End If
    End If
     
    End Sub
    je joins le fichier contenant les relations et le formulaire de reservation:relation et formulaire.docx

  2. #2
    Expert éminent
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 960
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 960
    Par défaut
    rebonjour,
    un début de réponse ici dans un autre de tes posts : https://www.developpez.net/forums/d1...-base-donnees/

Discussions similaires

  1. Un code VBA pour récupérer un type de donnée ?
    Par KEROZEN dans le forum VBA Access
    Réponses: 22
    Dernier message: 26/09/2019, 11h12
  2. [XL-2010] Code VBA pour ajout d'une date lorsqu'elle n'existe pas
    Par Jey14 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 25/10/2013, 13h39
  3. [VBA-A] Code vba pour inclure un formulaire Acces
    Par MadSquirrel dans le forum VBA Access
    Réponses: 2
    Dernier message: 12/04/2006, 18h19
  4. Réponses: 3
    Dernier message: 06/09/2005, 10h27

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