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 :

[VBA][Contrôle ActiveX] Pb A/N sous-form en utilisant Contrôle Calendrier 11.0 WIN


Sujet :

VBA Access

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Août 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Août 2006
    Messages : 67
    Points : 75
    Points
    75
    Par défaut [VBA][Contrôle ActiveX] Pb A/N sous-form en utilisant Contrôle Calendrier 11.0 WIN
    Bonjours à tous , tout d'abord voici l'information de ma base de données. Mon Premier formulaire ce nomme "Form_FS_Date" (qui ce trouve à être le calendrier ActiveX 11.0) et son 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
    Option Compare Database
     
    Private Sub FB_Annuler_Click()
    DoCmd.Close
     
    End Sub
     
    Private Sub FB_OK_Click()
    Dim Z_Date As Date
    Z_Date = FC_Date
    DoCmd.Close
    Screen.ActiveForm.ActiveControl = Z_Date
     
    End Sub
    Mon second formulaire ce nomme "Sasie" ( Formulaire principal de sasie de données )et son code est
    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
    Option Compare Database
     
    Private Sub Form_Current()
        Modifiable86 = Matricule 'Met à jour la zone de liste Trouver enregistrement.
    End Sub
     
    Private Sub Form_Open(Cancel As Integer)
    DoCmd.GoToRecord , , acNewRec
    End Sub
     
    Private Sub Modifiable86_AfterUpdate()
        ' Rechercher l'enregistrement correspondant au contrôle.
        Dim rs As Object
     
        Set rs = Me.Recordset.Clone
        rs.FindFirst "[Matricule] = '" & Me![Modifiable86] & "'"
        If Not rs.EOF Then Me.Bookmark = rs.Bookmark
    End Sub
    Private Sub B_back_Click()
    On Error GoTo Err_B_back_Click
     
     
        DoCmd.GoToRecord , , acPrevious
     
    Exit_B_back_Click:
        Exit Sub
     
    Err_B_back_Click:
        MsgBox Err.Description
        Resume Exit_B_back_Click
     
    End Sub
    Private Sub B_next_Click()
    On Error GoTo Err_B_next_Click
     
     
        DoCmd.GoToRecord , , acPrevious
     
    Exit_B_next_Click:
        Exit Sub
     
    Err_B_next_Click:
        MsgBox Err.Description
        Resume Exit_B_next_Click
     
    End Sub
    Private Sub B_add_Click()
    On Error GoTo Err_B_add_Click
     
     
        DoCmd.GoToRecord , , acNewRec
     
    Exit_B_add_Click:
        Exit Sub
     
    Err_B_add_Click:
        MsgBox Err.Description
        Resume Exit_B_add_Click
     
    End Sub
    Private Sub B_esc_Click()
    On Error GoTo Err_B_esc_Click
     
     
        DoCmd.DoMenuItem acFormBar, acEditMenu, acUndo, , acMenuVer70
     
    Exit_B_esc_Click:
        Exit Sub
     
    Err_B_esc_Click:
        MsgBox Err.Description
        Resume Exit_B_esc_Click
     
    End Sub
    Private Sub B_save_Click()
    On Error GoTo Err_B_save_Click
     
     
        DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
     
    Exit_B_save_Click:
        Exit Sub
     
    Err_B_save_Click:
        MsgBox Err.Description
        Resume Exit_B_save_Click
     
    End Sub
    Private Sub B_delete_Click()
    On Error GoTo Err_B_delete_Click
     
     
        DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
        DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70
     
    Exit_B_delete_Click:
        Exit Sub
     
    Err_B_delete_Click:
        MsgBox Err.Description
        Resume Exit_B_delete_Click
     
    End Sub
    Private Sub B_suivant_Click()
    On Error GoTo Err_B_suivant_Click
     
     
        DoCmd.GoToRecord , , acNext
     
    Exit_B_suivant_Click:
        Exit Sub
     
    Err_B_suivant_Click:
        MsgBox Err.Description
        Resume Exit_B_suivant_Click
     
    End Sub
    Et finalement mon dernier formulaire ce nomme "SF_Vaccin" ( sous formulaire ce trouvant dans mon formulaire "Saisie" ce dernier n'a aucun code pour l'instant.


    J'utilise un module également nommé "Mo_Fonction"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Function Fct_FS_Date()
    Dim Z_Date As Date
    DoCmd.OpenForm "FS_Date"
     
    End Function
    Voici finalement mon Pb, lorsque je suis en mode formulaire sur "Sasie" je doubles-clique sur mon champs date celui à pour évenement =Fct_FS_Date(). Qui ouvre le Formulaire "Form_FS_Date" et ce dernier me permet de choisir une date et selon ma séléction ce dernier renvois la date choisi dans le champs date de mon formulaire. Tout fonctionne très bien. Cependant lorsque je clique sur mon champs DATE qui ce situe dans mon sous formulaire "SF_Vaccin" il ouvre bien le calendrier et me permet de séléctionner la date et lorsque je clique sur le bouton ajouter il m'apparâit ce message d'erreur "erreur d'exécution 438" et me renvois au VBA. J'imagine que l'erreur ce situe A/N de l'instruction du formulaire en cours.

    J'aimerais que le code accepte les formulaires et sous formulaires.

    Alors si quelqu'un à une idée faite moi le savoir.

    Merci à vous

  2. #2
    Membre confirmé Avatar de timoth
    Homme Profil pro
    Responsable Outils Digitaux
    Inscrit en
    Octobre 2005
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Responsable Outils Digitaux

    Informations forums :
    Inscription : Octobre 2005
    Messages : 479
    Points : 474
    Points
    474
    Par défaut
    L'erreur 438 ne me parle pas beaucoup. Tu peux nous dire ce qu'il est marqué comme description?

    Je ne vois pas ou tu executes ta fonction qui t'ouvre ton formulaire avec ton calendrier.

    Ceci dit, je suppose que le probleme vient du fait que le controle actif sur ton formulaire n'est pas capable de recevoir une valeur.
    Ton formulaire avec le calendrier est censé s'ouvrir quand?? Tu as un bouton?

    Si ta textbox s'appelle et date et a un bouton a coté (on l'appelle view_calendar), tu mets dans le code du bouton, sur l'évenement On_Click:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private sub view_calendar_click()
    docmd.openform "FS_Date"
    date.setfocus
    End sub
    Comme ca, en ouvrant ton formulaire avec le calendrier tu mets le focus sur la textbox qui va recevoir la date.
    En esperant que ca marche!
    puis et puis et encore . Sinon sans oublier et

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Août 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Août 2006
    Messages : 67
    Points : 75
    Points
    75
    Par défaut Voici comment j'ai réglé mon pb
    Voici la modification que j'ai apporter au Form FS_Date


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub FB_OK_Click()
    Dim Z_Date As Date
    Z_Date = FC_Date
    DoCmd.Close
    Screen.ActiveControl.Value = Z_Date
    End Sub

    Fonctionne à 100% en formulaire ou sous formulaire


    Citation Envoyé par timoth
    L'erreur 438 ne me parle pas beaucoup. Tu peux nous dire ce qu'il est marqué comme description?

    Je ne vois pas ou tu executes ta fonction qui t'ouvre ton formulaire avec ton calendrier.

    Ceci dit, je suppose que le probleme vient du fait que le controle actif sur ton formulaire n'est pas capable de recevoir une valeur.
    Ton formulaire avec le calendrier est censé s'ouvrir quand?? Tu as un bouton?

    Si ta textbox s'appelle et date et a un bouton a coté (on l'appelle view_calendar), tu mets dans le code du bouton, sur l'évenement On_Click:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private sub view_calendar_click()
    docmd.openform "FS_Date"
    date.setfocus
    End sub
    Comme ca, en ouvrant ton formulaire avec le calendrier tu mets le focus sur la textbox qui va recevoir la date.
    En esperant que ca marche!

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 01/12/2014, 12h34
  2. sous macro créer un contrôle activeX
    Par russiane dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 09/12/2012, 00h43
  3. [VBA-E] Probleme avec Nombre stocké sous forme de texte
    Par AliochaBada dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 31/07/2006, 01h46
  4. Réponses: 4
    Dernier message: 21/04/2006, 22h08
  5. Réponses: 7
    Dernier message: 02/02/2005, 20h32

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