Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > IHM
IHM Ce forum est dédié aux questions relatives à la création de formulaires et d'états, avec ou sans code VBA, et macros.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/04/2011, 09h31   #1
Membre habitué
 
Homme Christian Roignot
Logisticien
Inscription : janvier 2009
Messages : 308
Détails du profil
Informations personnelles :
Nom : Homme Christian Roignot
Âge : 59
Localisation : France

Informations professionnelles :
Activité : Logisticien
Secteur : Industrie

Informations forums :
Inscription : janvier 2009
Messages : 308
Points : 112
Points : 112
Par défaut comment changer la valeur d'un champ d'un s/formulaire continue

Bonjour,

J'ai un formulaire qui à le champ "TotalModeDégradé"
J'ai un s/formulaire continue avec 2 champs "IdHNP" et "TpsHNP".
J'aimerai pouvoir changer la valeur du champ "TpsHNP" par la valeur du champ "TotalModeDégradé" dont le champ "IdHNP" est = à "4"

J'ai essayé par le code suivant:
Code :
1
2
3
4
 
If Forms![frmSaisieProduction]![sfrm_frmSaisieHNP].IdHNP = "4" Then
            Forms![frmSaisieProduction]![sfrm_frmSaisieHNP].TpsHNP = Me.TotalModeDegrade.Value
End If
Merci d'avance de votre aide
rch05 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/04/2011, 10h40   #2
Membre confirmé
 
Homme
Développeur amateur
Inscription : mars 2009
Messages : 176
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Maroc

Informations professionnelles :
Activité : Développeur amateur

Informations forums :
Inscription : mars 2009
Messages : 176
Points : 255
Points : 255
Bonjour rch05,

Tu ne dis pas si ton code marche ou pas ?

Cordialement
reedy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/04/2011, 10h48   #3
Membre habitué
 
Homme Christian Roignot
Logisticien
Inscription : janvier 2009
Messages : 308
Détails du profil
Informations personnelles :
Nom : Homme Christian Roignot
Âge : 59
Localisation : France

Informations professionnelles :
Activité : Logisticien
Secteur : Industrie

Informations forums :
Inscription : janvier 2009
Messages : 308
Points : 112
Points : 112
Bonjour reedy,

Non le code ne fonctionne pas.
Je viens d'essayer ceci:
Code :
1
2
3
4
 
If Forms![frmSaisieProduction]![SaisieHNP].Form![IdHNP] = "4" Then
            Forms![frmSaisieProduction]![SaisieHNP].Form![TpsHNP] = Me.TotalModeDegrade.Value
End If
J'avais une erreur dans le nom du s/formulaire.
Mais, là aussi rien ne se passe. la modif ne s'effectue pas.


Merci de ton aide
rch05 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/04/2011, 13h22   #4
Rédacteur/Modérateur
 
Avatar de User
 
Homme Denis
Développeur informatique
Inscription : août 2004
Messages : 3 205
Détails du profil
Informations personnelles :
Nom : Homme Denis
Âge : 42
Localisation : France

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : août 2004
Messages : 3 205
Points : 5 256
Points : 5 256
Bonjour Christian,

Sur quel évènement as-tu mis ton code ?

A+
__________________
Merci de ne pas poster sur mon profil pour des problèmes techniques. Pour celà vous pouvez utiliser le forum ou m'envoyer un mp.

Bon développement !


Mes tutoriels et contributions sur ma page perso:
Ma page personnelle
User est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/04/2011, 13h38   #5
Membre habitué
 
Homme Christian Roignot
Logisticien
Inscription : janvier 2009
Messages : 308
Détails du profil
Informations personnelles :
Nom : Homme Christian Roignot
Âge : 59
Localisation : France

Informations professionnelles :
Activité : Logisticien
Secteur : Industrie

Informations forums :
Inscription : janvier 2009
Messages : 308
Points : 112
Points : 112
Bonjour denis,

Je l'ai sur un bouton "Verification" du formulaire principal
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
Private Sub cmdVerification_Click()
 
    If Me.txtTempsDirect < Me.TotalTpsProd And Me.TotalModeDegrade > 0 Then
        MsgBox "Le Temps Direct est inférieur au Temps de la production.", vbOKOnly
        If Forms![frmSaisieProduction]![SaisieHNP].Form![IdHNP] = "4" Then
            Forms![frmSaisieProduction]![SaisieHNP].Form![TpsHNP].Value = Me.tpsModeDégradé.Value
        End If
        Me.txtTempsDirect.Value = Me.TotalTpsProd.Value
        Exit Sub
    End If
 
End Sub
Actuellement, le calcul s'effectue à la main.
Donc, avant de valider la saisie, j'effectue une verification.
Et j'ailmerai , qu'après cette vérification effectuer les modifs qui s'imposent.

Merci
rch05 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/04/2011, 16h11   #6
Rédacteur/Modérateur
 
Avatar de User
 
Homme Denis
Développeur informatique
Inscription : août 2004
Messages : 3 205
Détails du profil
Informations personnelles :
Nom : Homme Denis
Âge : 42
Localisation : France

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : août 2004
Messages : 3 205
Points : 5 256
Points : 5 256
Re,

Est-ce que le message :

Code :
MsgBox "Le Temps Direct est inférieur au Temps de la production.", vbOKOnly
S'affiche ?
__________________
Merci de ne pas poster sur mon profil pour des problèmes techniques. Pour celà vous pouvez utiliser le forum ou m'envoyer un mp.

Bon développement !


Mes tutoriels et contributions sur ma page perso:
Ma page personnelle
User est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/04/2011, 16h13   #7
Membre habitué
 
Homme Christian Roignot
Logisticien
Inscription : janvier 2009
Messages : 308
Détails du profil
Informations personnelles :
Nom : Homme Christian Roignot
Âge : 59
Localisation : France

Informations professionnelles :
Activité : Logisticien
Secteur : Industrie

Informations forums :
Inscription : janvier 2009
Messages : 308
Points : 112
Points : 112
Re Denis,

J'ai essayé ceci, après la lecture du tuto Interaction des formulaires et états de Fabrice Constants:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
Private Sub cmdVerification_Click()
 
    If Me.txtTempsDirect < Me.TotalTpsProd And Me.TotalModeDegrade > 0 Then
        'MsgBox "Le Temps Direct est inférieur au Temps de la production.", vbOKOnly
        If Forms.frmSaisieProduction.SaisieHNP.Form.IdHNP = "4" Then
            Forms.frmSaisieProduction.SaisieHNP.Form.TpsHNP.Value = Forms.frmSaisieProduction.tpsModeDégradé.Value
        End If
        Me.txtTempsDirect.Value = Me.TotalTpsProd.Value
        Exit Sub
    End If
 
End Sub
Cela ne fonctionne pas.........
rch05 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/04/2011, 16h24   #8
Rédacteur/Modérateur
 
Avatar de User
 
Homme Denis
Développeur informatique
Inscription : août 2004
Messages : 3 205
Détails du profil
Informations personnelles :
Nom : Homme Denis
Âge : 42
Localisation : France

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : août 2004
Messages : 3 205
Points : 5 256
Points : 5 256
Tu as essayé sans les guillemets :

Code :
1
2
3
...
if Forms.frmSaisieProduction.SaisieHNP.Form.IdHNP = 4 then
...
__________________
Merci de ne pas poster sur mon profil pour des problèmes techniques. Pour celà vous pouvez utiliser le forum ou m'envoyer un mp.

Bon développement !


Mes tutoriels et contributions sur ma page perso:
Ma page personnelle
User est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/04/2011, 18h45   #9
Membre habitué
 
Homme Christian Roignot
Logisticien
Inscription : janvier 2009
Messages : 308
Détails du profil
Informations personnelles :
Nom : Homme Christian Roignot
Âge : 59
Localisation : France

Informations professionnelles :
Activité : Logisticien
Secteur : Industrie

Informations forums :
Inscription : janvier 2009
Messages : 308
Points : 112
Points : 112
Re,

Oui le message s'affiche, et j'ai essayé ce que tu me cites
Citation:
...
if Forms.frmSaisieProduction.SaisieHNP.Form.IdHNP = 4 then
...
et la mise à jour de
Citation:
Me.txtTempsDirect.Value = Me.TotalTpsProd.Value
s'effectue bien.
j'ai même essayé
Citation:
If Forms.frmSaisieProduction.SaisieHNP.Form.IdHNP = "4" Then
Forms.frmSaisieProduction.SaisieHNP.Form.TpsHNP.setfocus
End If
afin de savoir si le curseur pointe sur le champ.

Rien............
rch05 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/04/2011, 09h07   #10
Membre habitué
 
Homme Christian Roignot
Logisticien
Inscription : janvier 2009
Messages : 308
Détails du profil
Informations personnelles :
Nom : Homme Christian Roignot
Âge : 59
Localisation : France

Informations professionnelles :
Activité : Logisticien
Secteur : Industrie

Informations forums :
Inscription : janvier 2009
Messages : 308
Points : 112
Points : 112
Bonjour Denis,

Ce matin j'aii effectué le test suivant:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
Private Sub cmdVerification_Click()
Dim newsModedégradé As Long
 
newsModedégradé = Me.tpsModeDégradé
 
    If Me.txtTempsDirect < Me.TotalTpsProd And Me.TotalModeDegrade > 0 Then
        MsgBox "Le Temps Direct est inférieur au Temps de la production.", vbOKOnly
        Me.SaisieHNP.SetFocus
        Me.[SaisieHNP].Form.Recordset.MoveFirst
        While Not Me.[SaisieHNP].Form![IdHNP] = "4"
            Me.[SaisieHNP].Form![TpsHNP].SetFocus
            'Me.[SaisieHNP].Form![TpsHNP] = newsModedégradé
             Me.[SaisieHNP].Form.Recordset.MoveNext
        Wend
        Me.txtTempsDirect.Value = Me.TotalTpsProd.Value
        Exit Sub
    End If
 
End Sub
Le curseur pointe bien sur le champ, dont il faut changer la valeur.
J'ai rajouté le code:
Code :
1
2
 
Me.[SaisieHNP].Form![TpsHNP] = newsModedégradé
afin de changer la valeur.
Le pb, c'est qu'il change la valeur de tous les enregistrements qui sont en amont.

Je ne suis pas loin de la solution..........
rch05 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/04/2011, 09h40   #11
Membre habitué
 
Homme Christian Roignot
Logisticien
Inscription : janvier 2009
Messages : 308
Détails du profil
Informations personnelles :
Nom : Homme Christian Roignot
Âge : 59
Localisation : France

Informations professionnelles :
Activité : Logisticien
Secteur : Industrie

Informations forums :
Inscription : janvier 2009
Messages : 308
Points : 112
Points : 112
Re,

Voila, j'ai trouvé la solution.
Je ne sais si c'est jolie, mais le code fonctionne.
Code :
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
 
Private Sub cmdVerification_Click()
Dim newsModedégradé As Long
 
newsModedégradé = Me.tpsModeDégradé
 
    If Me.txtTempsDirect < Me.TotalTpsProd And Me.TotalModeDegrade > 0 Then
        MsgBox "Le Temps Direct est inférieur au Temps de la production.", vbOKOnly
        Me.SaisieHNP.SetFocus
        Me.[SaisieHNP].Form.Recordset.MoveFirst
 
ModeDégradé:
        If Me.[SaisieHNP].Form![IdHNP] = "4" Then
            Me.[SaisieHNP].Form![TpsHNP].SetFocus
            Me.[SaisieHNP].Form![TpsHNP] = newsModedégradé
            Me.txtTempsDirect.Value = Me.TotalTpsProd.Value
            Exit Sub
        Else
            Me.[SaisieHNP].Form.Recordset.MoveNext
            GoTo ModeDégradé
        End If
 
    End If
 
End Sub


Merci et bon WE Pascal
rch05 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h11.


 
 
 
 
Partenaires

Hébergement Web