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

IHM Discussion :

pb access formulaire dynamique


Sujet :

IHM

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 214
    Points : 208
    Points
    208
    Par défaut [RESOLU] pb access formulaire dynamique
    Bonjour à tous,
    voila mon pb :
    je crée un formulaire dynamiquement (je lance une requete et je crée autant de controles que j'ai de resultats).
    Mon problème est que, les controles étant créés dynamiquement, je ne peux pas leur associer d'évènement à l'avance.
    Or, il faudrait que je détecte si on clique dessus pour pouvoir lancer une série d'instructions
    J'imagine que ce pb a déjà du etre soulevé, mais si quelqu'un veut bien me dire ou je peux trouver la réponse à mon pb (à défaut de me la donner), ce serait déjà serait fantastique.
    En tout cas, je vais continuer mes recherches sur ce forum qui n'est pas petit.
    Merci d'avance

  2. #2
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Désolé mais je crains qu'il n'y est pas de solution à ton problème.

    Pourquoi passes tu par un formulaire dynamique ?

  3. #3
    Membre expérimenté
    Avatar de FRED.G
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    1 032
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 032
    Points : 1 505
    Points
    1 505
    Par défaut
    Citation Envoyé par Tofalu
    Désolé mais je crains qu'il n'y est pas de solution à ton problème.
    Pas si sûr

    Voici un emxple de code qui crée un formulaire et des contrôles (2 traits et deux boutons de commande) avec du code sur clic des boutons et sur le timer du form :
    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
    Sub sDynamic()
     
    Dim frm As Form
    Dim mdl As Module
    Dim lng As Long
    Dim str As String
    Dim ctl As Control
     
    Set frm = Application.CreateForm()
    With frm
      .Width = 12 * 567
      .Section(acDetail).Height = 10 * 567
      .HasModule = True
      Set mdl = .Module
     
      Set ctl = Application.CreateControl(.Name, acLine, , , , 567, 567, 0, 0)
      ctl.Name = "trtH"
      Set ctl = Application.CreateControl(.Name, acLine, , , , 567, 567, 0, 0)
      ctl.Name = "trtV"
     
      Set ctl = Application.CreateControl(.Name, acCommandButton, , , , 8 * 567, 567, 2 * 567, 567)
      ctl.Name = "btcInitialise"
      ctl.Caption = "Initialise"
      lng = mdl.CreateEventProc("Click", ctl.Name)
      str = vbTab & "trtH.Width = 0" & vbCrLf & _
            vbTab & "trtV.Height = 0" & vbCrLf & _
            vbTab & "Me.TimerInterval = 0"
      mdl.InsertLines lng + 2, str
     
      Set ctl = Application.CreateControl(.Name, acCommandButton, , , , 8 * 567, 2 * 567, 2 * 567, 567)
      ctl.Name = "btcGo"
      ctl.Caption = "Go"
      lng = mdl.CreateEventProc("Click", ctl.Name)
      str = vbTab & "Me.TimerInterval = 1"
      mdl.InsertLines lng + 1, str
     
      lng = mdl.CreateEventProc("Timer", "Form")
      str = vbTab & "Select Case trtH.Width" & vbCrLf & _
            vbTab & "  Case Is >= (6 * 567)" & vbCrLf & _
            vbTab & "    Me.TimerInterval = 0" & vbCrLf & _
            vbTab & "    Me.TimerInterval = 0" & vbCrLf & _
            vbTab & "  Case Else" & vbCrLf & _
            vbTab & "    trtH.Width = trtH.Width + 48" & vbCrLf & _
            vbTab & "End Select" & vbCrLf & _
            vbTab & "Select Case trtV.Height" & vbCrLf & _
            vbTab & "  Case Is >= (6 * 567)" & vbCrLf & _
            vbTab & "    Me.TimerInterval = 0" & vbCrLf & _
            vbTab & "  Case Else" & vbCrLf & _
            vbTab & "    trtV.Height = trtV.Height + 48" & vbCrLf & _
            vbTab & "End Select"
      mdl.InsertLines lng + 2, str
     
      DoCmd.OpenForm .Name
    End With
    Set ctl = Nothing
    Set mdl = Nothing
    Set frm = Nothing
     
    End Sub
    jibouze, je pense que tu sauras adapter ce code sans problème, sinon fait-nous signe
    (\ _ /)
    (='.'=)
    (")-(")

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 214
    Points : 208
    Points
    208
    Par défaut
    Bonjour,
    merci pour la solution. Je ne connaissai pas la méthode CreateEventProc. Je vais regarder de ce pas dans l'aide d'access des fois que... et je vais me servir de l'exemple que vous m'avez fourni.
    Pour répondre à la question du pourquoi, et bien c'est tout simplement que si je connais bien le nombre de champs à l'avance, je ne connais pas le nombre de lignes que je vais avoir. De plus, il me faut un formattage particulier (donc pas dans une listbox) selon les lignes. En gros j'ai :
    - chapitre 1
    - sous-chapitre 1
    -sous-sous-chapitre 1
    ...
    Et comme je veux pouvoir ajouter des sous-sous-chapitres ou en enlever, il faut que je détecte si on clique dessus.
    Je pense pouvoir m'en sortir avec ce que vous m'avez donné, mais si quelqu'un a une autre astuce du tonnerre...je suis preneur
    Merci encore

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

Discussions similaires

  1. Réponses: 14
    Dernier message: 24/06/2015, 18h26
  2. Access 2003 formulaire dynamique
    Par MaxLaMenaX dans le forum IHM
    Réponses: 5
    Dernier message: 07/11/2008, 21h41
  3. [ACCESS] formulaire dynamique
    Par Dryss51 dans le forum IHM
    Réponses: 2
    Dernier message: 23/07/2007, 15h01
  4. formulaire dynamique
    Par shirya dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 19/10/2004, 16h13
  5. [struts]Formulaire dynamique
    Par GreenJay dans le forum Struts 1
    Réponses: 8
    Dernier message: 28/05/2004, 16h35

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