Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
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 02/05/2011, 14h43   #1
 
Homme
Inscription : mai 2011
Messages : 7
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Secteur : Industrie

Informations forums :
Inscription : mai 2011
Messages : 7
Points : -2
Points : -2
Par défaut Copier des informations vers des zones de texte

Bonjour, je suis en train de mettre en place un système de gestion des chutes dans mon entreprise.

Je suis au stage ou l'utilisateur rentre les chutes (Profil;Longueur;Quantité) et ou le stock est mit à jour.

Mon problème est le suivant:
Dans mon formulaire de sortie, j'ai un sous formulaire affichant le stock. Un premier tri est effectué avec une zone de liste déroulante sur les profils. Je souhaiterai que l'utilisateur selectionne le (profil-longueur) qu'il souhaite en double-clic sur le sous formulaire. Les informations (profil et longueur) venant s'afficher 2 zones de texte du formulaire. L'utilisateur n'aurait alors plus qu'à indiquer sa quantité.
Je ne veux pas que l'utilisateur ait à rentrer la longueur (elle pourrait etre différente de celle en stock)

En résumant, je voudrais afficher les valeurs d'une ligne de sous formulaire dans 2 zones de texte du formulaire. (Avec un double-clic sur la ligne)
Existe-il une requéte le permettant ou la vba est indispensable?
Si je dois passer par la vba, auriez vous un exemple de code.

Merci
Jonathan
droledepilote est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2011, 16h05   #2
Membre habitué
 
Denis Billo
Developpeur web et Access VBA
Inscription : janvier 2003
Messages : 282
Détails du profil
Informations personnelles :
Nom : Denis Billo
Localisation : France

Informations professionnelles :
Activité : Developpeur web et Access VBA
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : janvier 2003
Messages : 282
Points : 122
Points : 122
Je pense que tu dois utiliser du VBA.

Tu peux par exemple mettre les deux champs qui continnent les données de ton sous-formulaire en cachés (invisible) et sur l'évenement double clic sur le champ vu mettre comme code.
Form_tonformulaire.lechamp1_a_mettre_a_jour = champcaché1
Form_tonformulaire.lechamp2_a_mettre_a_jour = champcaché2

Même pas sur que tu sois obligé de mettre les 2 champs cachés dans ton sous-formulaire...
__________________
VrroOOOAAAAAPPPPPPPPPP !!!
Décibel est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 02/05/2011, 16h54   #3
 
Homme
Inscription : mai 2011
Messages : 7
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Secteur : Industrie

Informations forums :
Inscription : mai 2011
Messages : 7
Points : -2
Points : -2
C'est parfait! Et simple en plus (étant donné mon niveau en vba sa me fait plaisir d'avoir des codes simple .

Etant donnée la réponse rapide, je me permets une seconde question ;

Je voudrais qu'à la suite du double-clic(dans le sous-formulaire, le focus soit déplacé sur une zone de texte du formulaire.
J'ai mis ce code:

Code :
1
2
3
4
5
6
Private Sub Longueur_DblClick(Cancel As Integer)
'Copier la longueur en double clic dessus
Form_3Sortie_FM.Longueur = Longueur
'Déplacer le focus sur la case Quantité
Me.Quantité.SetFocus
End Sub
->le focus se déplace sur la cellule Quantité du sous formulaire
La zone de texte du formulaire s'appelle aussi Quantité; Comment lui indiquer le bon endroit ?= (comment changer de formulaire )
droledepilote est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 02/05/2011, 17h13   #4
Membre habitué
 
Denis Billo
Developpeur web et Access VBA
Inscription : janvier 2003
Messages : 282
Détails du profil
Informations personnelles :
Nom : Denis Billo
Localisation : France

Informations professionnelles :
Activité : Developpeur web et Access VBA
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : janvier 2003
Messages : 282
Points : 122
Points : 122
Il te faut indiquer ton formulaire avant ton champ...
Donc ne plus mettre Me.xxx mais Form_ à la place...
Mais Form_leNomDuFormulaire.leBonChamp
__________________
VrroOOOAAAAAPPPPPPPPPP !!!
Décibel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/05/2011, 17h31   #5
 
Homme
Inscription : mai 2011
Messages : 7
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Secteur : Industrie

Informations forums :
Inscription : mai 2011
Messages : 7
Points : -2
Points : -2
Effectivement il s'agit du .setfocus pour déplacer le focus, cependant sa ne marche pas dans mon cas
Pour être plus clair, je souhaite qu'à la suite d'un double clic sur une cellule d'un sous formulaire (en mode feuille de donnée ) le focus arrive sur une zone de texte du formulaire principal.
Hors le focus reste sur la cellule du sous formulaire.
Mon code :
J'ai essayé de déplacer le focus sur le double clic, mais la je le déplace après la modification apportée par celui-ci.

Code :
1
2
3
4
5
Private Sub Quantité_Dirty(Cancel As Integer)
'activation du bouton de commande
Me.Commande6.Enabled = True
'Déplacer le focus sur la case Quantité
Form_3Sortie_FM.Texte10.SetFocus
Le problème vient-il du fait que le sous formulaire soit en mode feuille de donnée?
droledepilote est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/05/2011, 18h01   #6
Membre régulier
 
Homme Thierry Pallier
Regisseur
Inscription : octobre 2006
Messages : 47
Détails du profil
Informations personnelles :
Nom : Homme Thierry Pallier
Âge : 51
Localisation : France, Seine Maritime (Haute Normandie)

Informations professionnelles :
Activité : Regisseur
Secteur : Arts - Culture

Informations forums :
Inscription : octobre 2006
Messages : 47
Points : 94
Points : 94
Bonjour droledepilote et le forum

Remplace :
Code :
Form_3Sortie_FM.Texte10.SetFocus
par :
Code :
Forms!3Sortie_FM!Texte10.SetFocus

c'est les bases du vba !

Et si il y a des espaces ou des caractères spéciaux dans les noms de formulaire ou de textbox ,cela donne :
Code :
Forms!["3Sortie_FM]!["Texte10"].SetFocus
A+
Thierry_PALLIER est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2011, 08h19   #7
 
Homme
Inscription : mai 2011
Messages : 7
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Secteur : Industrie

Informations forums :
Inscription : mai 2011
Messages : 7
Points : -2
Points : -2
Merci de ta réponse, j'ai essayé le code
Forms!3Sortie_FM!Texte10.SetFocus
Mais avant même que je puisse quitter VB, il me marque le message d'erreur et sélectionne "Sortie_FM" .
et en forçant la macro se bloque. (Si sa se dit?)
En ce qui concerne les "_", je les utilise pourtant dans toutes mes lignes de codes :
Form_3Sortie_FM.Étiquette21.Visible = True
Il ne faudrait pas que je ramènes le focus sur mon formulaire principal avant de l'envoyer sur ma zone souhaitée? - en 2 étapes.
droledepilote est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2011, 08h42   #8
Membre habitué
 
Denis Billo
Developpeur web et Access VBA
Inscription : janvier 2003
Messages : 282
Détails du profil
Informations personnelles :
Nom : Denis Billo
Localisation : France

Informations professionnelles :
Activité : Developpeur web et Access VBA
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : janvier 2003
Messages : 282
Points : 122
Points : 122
Essaye la base attachée
Fichiers attachés
Type de fichier : rar 2forms.rar (16,5 Ko, 3 affichages)
__________________
VrroOOOAAAAAPPPPPPPPPP !!!
Décibel est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 05/05/2011, 15h48   #9
 
Homme
Inscription : mai 2011
Messages : 7
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Secteur : Industrie

Informations forums :
Inscription : mai 2011
Messages : 7
Points : -2
Points : -2
Encore bloqué!
Je souhaite valider la présence d'une valeur (texte ) dans une table.
La valeur est inscrite dans une [zone de texteC] d'un formulaire.
-> [zone de texteA]"-"[zone de texteBe te] = [zone texteC]
Et j'avoue que je me pers dans les différents code proposés...
Pour info, ce test doit permettre d'afficher ou non des images d'avertissements.
Merci beaucoup!
droledepilote est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2011, 19h38   #10
Membre régulier
 
Homme Thierry Pallier
Regisseur
Inscription : octobre 2006
Messages : 47
Détails du profil
Informations personnelles :
Nom : Homme Thierry Pallier
Âge : 51
Localisation : France, Seine Maritime (Haute Normandie)

Informations professionnelles :
Activité : Regisseur
Secteur : Arts - Culture

Informations forums :
Inscription : octobre 2006
Messages : 47
Points : 94
Points : 94
Bonjour

plusieurs choses:
1_ decibel n'a pas mis de sous-formulaire ,ou bien, j'ai mal vu. Mais cela n'a pas d'importance sur le code .
2 _ decibel, je pense que c'est plus pratique un .zip qu'un .rar
3_ je pense qu'il y a un problème avec le nom de ton formulaire.
En effet, chez moi , 3Sortie_FM ,n'est pas accepté, meme avec des ""
4_ dans le fichier joint modifié, (en changeant le nom du Frm), ça marche

exemples:
Code :
1
2
3
4
Private Sub quantité_DblClick(Cancel As Integer)
Forms![Sortie_3_Blabla]!Texte10.SetFocus
Forms![Sortie_3_Blabla]!Texte10 = Me.quantité
End Sub
A+
Fichiers attachés
Type de fichier : zip 2FormsModifier.zip (48,4 Ko, 5 affichages)
Thierry_PALLIER est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 09/05/2011, 10h05   #11
 
Homme
Inscription : mai 2011
Messages : 7
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Secteur : Industrie

Informations forums :
Inscription : mai 2011
Messages : 7
Points : -2
Points : -2
Merci! J'avance j'avance.
Maintenant, je me demande pourquoi je dois cliquer sur une zone de texte (qui est le résultat d'une requéte ) avant de pouvoir l'exploiter. En gros je dois la sélectionner avant que ma fonction If ne fonctionne. Elle est mise à jour automatiquement.
J'ai essayer de remplacer le clic (pour la séléctionner) par une mise en focus puis ENTRER mais sans succés (Mon code marche mais la fonction IF ne fonctionne toujours pas)
Le fait de cliquer sur la zone de texte doit activer ou désactiver quelque chose mais je ne vois pas quoi.
Si quelqu'un a une idée sur ce mystere??
droledepilote est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2011, 13h51   #12
Membre régulier
 
Homme Thierry Pallier
Regisseur
Inscription : octobre 2006
Messages : 47
Détails du profil
Informations personnelles :
Nom : Homme Thierry Pallier
Âge : 51
Localisation : France, Seine Maritime (Haute Normandie)

Informations professionnelles :
Activité : Regisseur
Secteur : Arts - Culture

Informations forums :
Inscription : octobre 2006
Messages : 47
Points : 94
Points : 94
Bonjour
Tu peux supprimer le sous formulaire et dans le formulaire,en mode création, créer un evenement sur sortie du controle "type" avec le code suivant:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Private Sub type_Exit(Cancel As Integer)
    Dim MonRst As DAO.Recordset, MonString As String
    Dim MaFamille As String, MonType As String
 
    MaFamille = Me.famille
    MonType = Me.type
    MonString = "SELECT stock.quantité" & _
              " FROM famille, stock" & _
              " WHERE (((stock.famille)=" & Chr(34) & MaFamille & Chr(34) & ") AND ((stock.type)=" & Chr(34) & MonType & Chr(34) & "));"
    Debug.Print MonString
    Set MonRst = CurrentDb.OpenRecordset(MonString)
    With MonRst
        Me.Texte10 = MonRst![quantité]
    End With
    MonRst.Close
    Set MonRst = Nothing
End Sub
Cela te donnera la quantité en fonction de la famille et du type contenu dans le formulaire. Mais attention que dans chaque cas,une valeur soit retournée.
On peut aussi mettre ce code dans l'evenement after update. A+
Thierry_PALLIER est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 11/05/2011, 11h09   #13
 
Homme
Inscription : mai 2011
Messages : 7
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Secteur : Industrie

Informations forums :
Inscription : mai 2011
Messages : 7
Points : -2
Points : -2
Merci de ta réponse, mais au final j'ai suivie un autre chemin pour mon problème.
J'ai une question:
Lorsque je clic sur un bouton, j'ajoute un enregistrement et je lance une requête pour que cette dernière ligne vienne s'ajouter à une autre table.
Ma requête est en ajout avec comme calcul ; Dernier ; Le dernier enregistrement est bien ajouté à la table mais un autre est également ajouté(pourtant il se trouve au milieu de ma table).

Ma question est donc, le calcul "dernier" isole bien la dernière ligne d'une table ou elle se base sur un autre critère?

Dans tous les cas, je vais essayer d'ajouter mon 2éme enregistrement directement lors du clic sur le bouton.
Merci pour cette éclaircie!
Et bientôt le weekend!!
droledepilote est déconnecté   Envoyer un message privé Réponse avec citation 01
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h18.


 
 
 
 
Partenaires

Hébergement Web