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 :

Atteindre valeur de sous formalaire pour test VBA


Sujet :

VBA Access

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2011
    Messages : 8
    Par défaut Atteindre valeur de sous formalaire pour test VBA
    Bonjour, je suis en train de mettre en place un système de gestion de stock et de dispensation de médicament (=Spécialité ATU) au sein d'un hôpital. J'ai créé un formulaire de dispensation qui permet de renseigner plusieurs champs (par exemple un nom de patient et un nom de médicament entre autre). Dans ce formulaire principal se trouve un sous formulaire affichant le numéro d'autorisation (=N° ATU) pour le patient. (En effet, ce sous formulaire est lié au principal par l'intermédiaire des champs père: médicament et patient.)
    Mon problème consiste à faire un test en VBA sur l'évènement "Après MAJ" du champ médicament (Le dernier renseigné) pour vérifier que le numéro existe bien, et secondairement tester si la date de péremption de cette autorisation n'est pas dépassée.
    Je suis parti sur ce début de code mais ne connait pas très bien le VBA.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub Specialite_ATU_AfterUpdate()
     
    If Formulaires![Nouvelle Délivrance hospitalisation]![Numéros et péremptions des ATU sous-formulaire].Form![N° d'ATU ou N° d'inclusion].Value <> 0 Then
        If DateDiff("d", Formulaires![Nouvelle Délivrance hospitalisation]![Numéros et péremptions des ATU sous-formulaire].Form![Péremption de l'ATU].Value, Now) < 0 Then
        Else
        MsgBox ("ATTENTION! Vous ne pouvez pas délivrer ce médicament pour ce patient car l'ATU est périmée. Veuillez contacter le pharmacien responsable des ATU pour effectuer un renouvellement d'ATU auprès du médecin en charge du patient.")
        End If
    Else
    MsgBox ("ATTENTION! Vous ne pouvez pas délivrer ce médicament pour ce patient car l'ATU n'existe pas. Veuillez contacter le pharmacien responsable des ATU pour effectuer une demande initiale d'ATU auprès du médecin en charge du patient.")
    End If
     
    End Sub
    Merci d'avance pour votre aide.

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    357
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 357
    Par défaut
    Bonjour,

    Un petit coup d'oeil sur la FAQ peut-être ? http://access.developpez.com/faq/?page=Ctrl#ctlsForm

    Si vous avez plusieurs sou formulaires imbriqués, vous devez utiliser une synthaxe dans cet esprit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Forms![NomFormulaire]![NomSousFormulaire1].Form![NomSousFormulaire2].Form![MonControle]
    PS : Petit "conseil", il est préférable d'éviter de mettre des accents, des espaces ou des caractères spéciaux dans les noms de tous vos composants (formulaires, boutons, contrôles ...) ca évite des soucis !

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2011
    Messages : 8
    Par défaut
    Merci de votre réponse, j'ai effectivemement vu cette nomenclature mais le problème, c'est que même avec la bonne synthaxe, le test VBA ne semble pas fonctionner puisque les messages d'erreur n'apparaissent pas lors de la saisie dans le formulaire.

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    357
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 357
    Par défaut
    Sinon, pour avoir la bonne synthaxe, vous pouvez vous servir des requetes access, créez une requete via l'editeur, puis mettez vous sur une ligne de critères, faites un clic droit puis cliquez sur créer. Ensuite accédez à votre contrôle. Ca y est vous avez le code qui va bien (attention en récupérant le code, il faut remplacer le mot "formulaires" par "forms").

  5. #5
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2011
    Messages : 8
    Par défaut
    Merci pour votre réponse. Serait-il possible de faire la meme démarche avec une macro?

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    357
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 357
    Par défaut
    Oulala ... les macros ... ce n'est pas du tout ma specialité !

    Personellement, je ne m'en sers pas donc je laisse quelqu'un répondre qui s'y connait mieux que moi !

  7. #7
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2011
    Messages : 8
    Par défaut
    Bonjour, dans une autre partie du forum j'ai eu ce 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
    Private Sub txtMedoc_BeforeUpdate(Cancel As Integer)
    Dim strMedicamentNum                                   As String
    Dim vntVerif                                           As Variant
     
        strMedicamentNum = Me.txtMedoc.Value
        vntVerif = DLookup("[MedicamentNum]", "TableMidicaments", "MedicamentNum='" & strMedicamentNum & "'")
        If IsNull(vntVerif) Then
            MsgBox "Ouh ouh, y a pas de médoc comme ça dans la table !", vbExclamation
            Cancel = True
        Else
            vntVerif = DLookup("[DatePeremption]", "TableMidicaments", "MedicamentNum='" & strMedicamentNum & "'")
            If IsDate(vntVerif) Then
                If CLng(vntVerif) < CLng(Now) Then
                    MsgBox "Ouh ouh, faudrait voir à pas délivrer des truc périmés, humm !!", vbExclamation
                    Cancel = True
                End If
            End If
        End If
    End Sub
    Mais le problème, c'est que quand je rentre les champs au format que vous m'avez suggéré (Forms![...]!Form![...] etc), Il me retourne une erreur et n'accepte apparemment pas ce format????

  8. #8
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    357
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 357
    Par défaut
    Bonjour,

    Dans le bout de code que vous donnez je ne vois pas ou se situe la ligne avec forms!...

    PS : vous pouvez mettre votre base en PJ ? (en dénaturant les données si besoin)

Discussions similaires

  1. FTP sous VBS pour test débit avec affichage du résultat
    Par bolzardp dans le forum VBScript
    Réponses: 23
    Dernier message: 09/06/2012, 00h32
  2. Recherche membre sous BSD pour test !
    Par ubuntu380 dans le forum BSD
    Réponses: 1
    Dernier message: 26/04/2009, 14h33
  3. Réponses: 3
    Dernier message: 13/06/2008, 14h41
  4. Réponses: 18
    Dernier message: 11/07/2007, 17h38
  5. PB recuperation valeur requetes sous VBA
    Par stan314 dans le forum Access
    Réponses: 2
    Dernier message: 25/05/2006, 11h09

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