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 :

[Access 2002] Zone texte : Proprieté en lecture seule


Sujet :

IHM

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2003
    Messages : 182
    Points : 110
    Points
    110
    Par défaut [Access 2002] Zone texte : Proprieté en lecture seule
    Bonjour,

    J'ai un petit problème sur un formulaire, je parcours un jeu d'enregistrement via un adodb, et j'aimerais mettre dans une zone de texte les données de chaque enregistrement. Voici ma boucle:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
        rs.MoveFirst
            For i = 1 To 12
                Form_frmPersonnelEdit.Controls("txtMois" & i).SetFocus
                Form_frmPersonnelEdit.Controls("txtMois" & i).Enabled = True
                Form_frmPersonnelEdit.Controls("txtMois" & i).Locked = False
                Form_frmPersonnelEdit.Controls("txtMois" & i).Text = rs!brut_mensuel
                rs.MoveNext
            Next i
    Or' au moment d'inscire la valeur, j'ai un message d'erreur : "Cette proprieté est en lecture seule, impossible de la définir".
    Dans la zone de proprieté, je définis pourtant la zone en "actif" et dans l'aide d'access ils ne font référence qu'a cela.

    Merci pour votre aide.
    Ce n'est pas parce qu'ils sont beaucoup a avoir tort qu'ils ont raison.

  2. #2
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Bonjour,

    La propriété .Text est accessible en lecture et écriture, mais pour un contrôle qui a le focus. Je te conseillerais d'utiliser plutôt la propriété .Value.

    Bon courage,

    PGZ
    pluritas non est ponenda sine necessitate - Le rasoir d'Okham
    Ne jamais attribuer à la malignité ce que la stupidité peut expliquer -Le rasoir d'Hanlon

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2003
    Messages : 182
    Points : 110
    Points
    110
    Par défaut
    Merci de ta réponse.

    Je mets bien le focus sur le contrôle

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Form_frmPersonnelEdit.Controls("txtMois" & i).SetFocus
    mais après cela ne fonctionne donc pas.

    Quant à la proprieté .Value, le message d'erreur m'indique qu'il ne peut pas attribuer de valeur à cet objet.
    En VB s'est nettement plus simple, je ne comprends pas pourquoi cela ne fonctionne pas.
    Ce n'est pas parce qu'ils sont beaucoup a avoir tort qu'ils ont raison.

  4. #4
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Bonjour,

    Dans ton formulaire, les mises à jour sont bien autorisées?

    PGZ
    pluritas non est ponenda sine necessitate - Le rasoir d'Okham
    Ne jamais attribuer à la malignité ce que la stupidité peut expliquer -Le rasoir d'Hanlon

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2003
    Messages : 182
    Points : 110
    Points
    110
    Par défaut
    Dans la proprieté du formulaire :
    Aux champs suivants j'ai mis la proprieté "OUI":
    - Filtrage autorisé,
    - Modif Autorisé
    - Suppr autorisée
    - Ajout autorisé
    - Entrées données
    Ce n'est pas parce qu'ils sont beaucoup a avoir tort qu'ils ont raison.

  6. #6
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Et ce formulaire, il s'appelle?

    Il est bien ouvert ?

    PGZ
    pluritas non est ponenda sine necessitate - Le rasoir d'Okham
    Ne jamais attribuer à la malignité ce que la stupidité peut expliquer -Le rasoir d'Hanlon

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2003
    Messages : 182
    Points : 110
    Points
    110
    Par défaut
    il s'appelle donc Form_frmPersonnelEdit.
    En fait dans ce formulaire j'ai mis une liste déroulante que j'ai relié à une requette et quand je clic sur un enregistrement, j'effectue une requêtte via un adodb.

    Voilà même le code du formulaire :

    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
     
    Option Compare Database
    '-----------------------
    Private Sub Form_Load()
    '-----------------------
     
        '--- Appel procèdure principale (Voir Module -> ModMain)
        Call Main
     
    End Sub
     
    '--------------------------------
    Private Sub LstPersonnel_Click()
    '--------------------------------
    Dim NumLine As Integer          '--- ID ligne selectionnée par user
    Dim IdMatricule As String       '--- Matricule de la personne selectionnée
    Dim rs As New ADODB.Recordset   '--- Recordset
    Dim i As Integer                '--- Compteur Boucle
     
     
        '--- RECUPERE MATRICULE DE LA PERSONNE
        NumLine = LstPersonnel.ListIndex
        IdMatricule = LstPersonnel.Column(1, NumLine)
     
        '--- SELECTION DU SALAIRE POUR L'ID
        Call OpenCnx
        cmd.ActiveConnection = cnx
        rs.CursorLocation = adUseClient
        rs.CursorType = adOpenForwardOnly
        rs.LockType = adLockOptimistic
     
                 sQuery = "SELECT * "
        sQuery = sQuery & "FROM BUDPAIE_MENSUEL "
        sQuery = sQuery & "WHERE matricule = '" & IdMatricule & "' "
        sQuery = sQuery & "ORDER BY mois ASC"
        cmd.CommandText = sQuery
        rs.Open cmd
     
        '--- TEST SI ENREGISTREMENT TROUVE
        If rs.RecordCount = 0 Then
            MsgBox ("Il y a un problème !"), vbCritical, "ERREUR"
            rs.Close
            Call CloseCnx
        Else
            '--- PARCOURS DE LA ZONE D'AFFICHAGE DU %/MOIS
            For i = 1 To 12
                'Form_frmPersonnelEdit.Controls(txtmois1.Text) = rs!brut_mensuel
                Form_frmPersonnelEdit.Controls("txtMois" & i).SetFocus
                Form_frmPersonnelEdit.Controls("txtMois" & i).Enabled = True
                Form_frmPersonnelEdit.Controls("txtMois" & i).Locked = False
                Form_frmPersonnelEdit.Controls("txtMois" & i).Text = rs!brut_mensuel
                rs.Delete
                'Form_frmPersonnelEdit.Controls("lblMois" & i).Caption = rs!brut_mensuel
                'MsgBox rs!brut_mensuel
                rs.MoveNext
            Next i
            rs.Close
            Call CloseCnx
        End If
     
     
    End Sub
    Ce n'est pas parce qu'ils sont beaucoup a avoir tort qu'ils ont raison.

  8. #8
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Et si au lieu de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Form_frmPersonnelEdit.Controls("txtMois" & i).Text = rs!brut_mensuel
    Tu écris
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.Controls("txtMois" & i).Value = rs!brut_mensuel
    Ca change qqc?
    Si ça ne change rien, y a-t-il qqc dans la source des contrôles txtMoisi?

    PGZ
    pluritas non est ponenda sine necessitate - Le rasoir d'Okham
    Ne jamais attribuer à la malignité ce que la stupidité peut expliquer -Le rasoir d'Hanlon

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2003
    Messages : 182
    Points : 110
    Points
    110
    Par défaut
    Je vais essayer, cependant, si jamais j'enlève le lien créé par access sur la liste et que je fais tout manuellement en code je n'ai pas de problème pour inscrire une valeure dans la textbox.

    Donc je pense que le problème vient de la liste pourtant la textbox n'a pas de source de contrôle.

    Merci beacoup pour ton aide
    Ce n'est pas parce qu'ils sont beaucoup a avoir tort qu'ils ont raison.

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2003
    Messages : 182
    Points : 110
    Points
    110
    Par défaut
    En fait j'ai trouvé la solution mais je comprends pas le problème.
    Si je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    me.txtmois1=rs!monchamps
    cela fonctionne,

    si je fais cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    me.controls(txtmois & "i").text = rs!monchamps
    cela me renvoie un nouveau message d'erreur...

    Bref comprend pas
    Ce n'est pas parce qu'ils sont beaucoup a avoir tort qu'ils ont raison.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 19/08/2009, 18h25
  2. Réponses: 17
    Dernier message: 08/08/2008, 20h13
  3. Réponses: 8
    Dernier message: 07/08/2008, 15h48
  4. [Access 2002]Centrer la zone détail
    Par napster dans le forum IHM
    Réponses: 3
    Dernier message: 21/01/2008, 09h56
  5. Réponses: 1
    Dernier message: 01/12/2007, 18h37

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