Chargement d'un formulaire VB 6
Melissa
-
Melissa -
Melissa -
Bonjour,
Bonjour et merci d'avance de votre aide.
J'ai 2 questions différentes sur Visual Basic
1- Comment faire pour afficher en rouge, dans Label1, un taux de pourcentage d'une valeur inférieure à 50, c'est-à-dire, 50%, et en vert si la valeur de ce taux de pourcentage est supérieure ou égale à 50, c'est-à-dire, 50% ?
2- J'ai crée 3 formulaires. Un formulaire Pssword avec deux zones de texte et deux boutons de commande (Valider et Annuler), un autre formulaire Menu principal et un troisième qui s'affiche, après l'identification de l'utilisateur dans la fenêtre Password, pour indiquer, avec une barre de progression (Shape), le chargement de la fenêtre Menu principal.
Une fois le chargement effectué, donc la connexion de l'utilisateur dans l'application, celui-ci peut décider de changer de session en cliquant sur le lien (Label) "Fermer la session" dans le Menu principal. La fenêtre Password apparaît pour mettre à l'utilisateur de renseigner des nouveaux identifiants.
Le problème c'est que si on valide ces nouveaux identifiants, il y a erreur à propos du fenêtre (F_splash) qui indique le chargement vers le Menu principal du fait que ce dernier (le Menu principal) est en mode Modal. J'ai besoin d'une solution à ce problème tout en sachant que je souhaite garder ces 3 formulaires.
P.J : Le code de ces 3 formulaires.
Formulaire Mot de passe (F_password)
Private Sub Cmd_Annuler_Click()
Unload Me
End
End Sub
Private Sub Cmd_Valider_Click()
Dim Sql As String
Static i As Byte
If Trim(Text_Nom_Utilisateur) = "" Then
MsgBox "Veuillez saisir votre nom d'utilisateur", vbInformation + vbOKOnly, "Identification de l'utilisateur"
Text_Mot_de_passe = ""
Text_Nom_Utilisateur.SetFocus
ElseIf Text_Mot_de_passe = "" Then
MsgBox "Veuillez saisir votre mot de passe", vbInformation + vbOKOnly, "Identification de l'utilisateur"
Text_Mot_de_passe.SetFocus
Else
Call connect
Sql = "Select Utilisateur.* From Utilisateur where Login='" & Text_Nom_Utilisateur & "' and Password ='" & Text_Mot_de_passe & "'"
RsUtilisateur.Open Sql, MaConnection, adOpenStatic, adLockOptimistic
If RsUtilisateur.RecordCount = 0 Then
Call Deconnect
i = i + 1
MsgBox "Nom d'utilisateur ou mot de passe invalide. Veuillez ressayer.", vbCritical + vbOKOnly, "Identification de l'utilisateur"
Text_Mot_de_passe = ""
Text_Nom_Utilisateur.SetFocus
Text_Nom_Utilisateur.SelStart = 0
Text_Nom_Utilisateur.SelLength = Len(Text_Nom_Utilisateur)
Else
Call Deconnect
F_splash.Show
F_menu.Label15.Caption = LCase$(Text_Nom_Utilisateur)
F_menu.Label13.Caption = "Connecté"
F_menu.Label13.ForeColor = vbGreen
Unload Me
End If
End If
If i = 3 Then End
End Sub
Formulaire Chargement (F_splash)
Private Sub Timer1_Timer()
If Shape2.Width >= 4855 Then
F_menu.Show
Unload Me
Exit Sub
Else
Shape2.Width = Shape2.Width + 90
End If
End Sub
Formulaire Menu Principal
Private Sub Label_Fermer_Session_Click()
If (MsgBox("Voulez-vous vraiment fermer cette session ?", vbYesNo + vbQuestion, "Fermeture de session") = vbYes) Then
Label15.Caption = "-----"
Label13.Caption = "Déconnecté"
Label13.ForeColor = vbRed
F_password.Show vbModal
End If
End Sub
Private Sub Label_Quitter_Application_Click()
If (MsgBox("Etes vous sûr de vouloir quitter l'application ?", vbYesNo + vbQuestion, "Quitter") = vbYes) Then
Unload Me
End
End If
End Sub
Merci de votre aide.
Bonjour et merci d'avance de votre aide.
J'ai 2 questions différentes sur Visual Basic
1- Comment faire pour afficher en rouge, dans Label1, un taux de pourcentage d'une valeur inférieure à 50, c'est-à-dire, 50%, et en vert si la valeur de ce taux de pourcentage est supérieure ou égale à 50, c'est-à-dire, 50% ?
2- J'ai crée 3 formulaires. Un formulaire Pssword avec deux zones de texte et deux boutons de commande (Valider et Annuler), un autre formulaire Menu principal et un troisième qui s'affiche, après l'identification de l'utilisateur dans la fenêtre Password, pour indiquer, avec une barre de progression (Shape), le chargement de la fenêtre Menu principal.
Une fois le chargement effectué, donc la connexion de l'utilisateur dans l'application, celui-ci peut décider de changer de session en cliquant sur le lien (Label) "Fermer la session" dans le Menu principal. La fenêtre Password apparaît pour mettre à l'utilisateur de renseigner des nouveaux identifiants.
Le problème c'est que si on valide ces nouveaux identifiants, il y a erreur à propos du fenêtre (F_splash) qui indique le chargement vers le Menu principal du fait que ce dernier (le Menu principal) est en mode Modal. J'ai besoin d'une solution à ce problème tout en sachant que je souhaite garder ces 3 formulaires.
P.J : Le code de ces 3 formulaires.
Formulaire Mot de passe (F_password)
Private Sub Cmd_Annuler_Click()
Unload Me
End
End Sub
Private Sub Cmd_Valider_Click()
Dim Sql As String
Static i As Byte
If Trim(Text_Nom_Utilisateur) = "" Then
MsgBox "Veuillez saisir votre nom d'utilisateur", vbInformation + vbOKOnly, "Identification de l'utilisateur"
Text_Mot_de_passe = ""
Text_Nom_Utilisateur.SetFocus
ElseIf Text_Mot_de_passe = "" Then
MsgBox "Veuillez saisir votre mot de passe", vbInformation + vbOKOnly, "Identification de l'utilisateur"
Text_Mot_de_passe.SetFocus
Else
Call connect
Sql = "Select Utilisateur.* From Utilisateur where Login='" & Text_Nom_Utilisateur & "' and Password ='" & Text_Mot_de_passe & "'"
RsUtilisateur.Open Sql, MaConnection, adOpenStatic, adLockOptimistic
If RsUtilisateur.RecordCount = 0 Then
Call Deconnect
i = i + 1
MsgBox "Nom d'utilisateur ou mot de passe invalide. Veuillez ressayer.", vbCritical + vbOKOnly, "Identification de l'utilisateur"
Text_Mot_de_passe = ""
Text_Nom_Utilisateur.SetFocus
Text_Nom_Utilisateur.SelStart = 0
Text_Nom_Utilisateur.SelLength = Len(Text_Nom_Utilisateur)
Else
Call Deconnect
F_splash.Show
F_menu.Label15.Caption = LCase$(Text_Nom_Utilisateur)
F_menu.Label13.Caption = "Connecté"
F_menu.Label13.ForeColor = vbGreen
Unload Me
End If
End If
If i = 3 Then End
End Sub
Formulaire Chargement (F_splash)
Private Sub Timer1_Timer()
If Shape2.Width >= 4855 Then
F_menu.Show
Unload Me
Exit Sub
Else
Shape2.Width = Shape2.Width + 90
End If
End Sub
Formulaire Menu Principal
Private Sub Label_Fermer_Session_Click()
If (MsgBox("Voulez-vous vraiment fermer cette session ?", vbYesNo + vbQuestion, "Fermeture de session") = vbYes) Then
Label15.Caption = "-----"
Label13.Caption = "Déconnecté"
Label13.ForeColor = vbRed
F_password.Show vbModal
End If
End Sub
Private Sub Label_Quitter_Application_Click()
If (MsgBox("Etes vous sûr de vouloir quitter l'application ?", vbYesNo + vbQuestion, "Quitter") = vbYes) Then
Unload Me
End
End If
End Sub
Merci de votre aide.
A voir également:
- Chargement d'un formulaire VB 6
- Whatsapp formulaire opposition - Guide
- Formulaire de réclamation facebook - Guide
- Vb - Télécharger - Langages
- Nero 6 - Télécharger - Gravure
- Formulaire de reclamation instagram - Guide
6 réponses
Bonjour,
Pour la question 1, en admettant que le taux soit dans textbox1
Pour la question 2, modifier la procédure Cmd_Valider_Click() comme ci-dessous
Pour la question 1, en admettant que le taux soit dans textbox1
Private Sub TextBox1_Change() If Val(TextBox1.Text) > 50 Then Label1.ForeColor = vbGreen Else Label1.ForeColor = vbRed End If End Sub
Pour la question 2, modifier la procédure Cmd_Valider_Click() comme ci-dessous
Else Call Deconnect Unload Me F_splash.Show F_menu.Label15.Caption = LCase$(Text_Nom_Utilisateur) F_menu.Label13.Caption = "Connecté" F_menu.Label13.ForeColor = vbGreen End If
Bonjour,
Je tiens tout d'abord à vous remercier de votre aide tout en soulignant que votre solution sur la seconde question ne fonctionne pas comme je l'aurai souhaité. Quand je modifie la procédure, comme vous l'avez suggéré, à l'exécution, quand on ferme la session pour ouvrir une autre, d'abord le bouton "Valider" du formulaire Mot de passe (F_password), ce bouton là ne s'affiche pas. Toutefois je peux valider par le bouton Entrée du clavier. Après le formulaire Menu_principal s'affiche normalement sauf qu'ici le nom de l'utilisateur ne s'affiche pas. "F_menu.Label15.Caption = LCase$(Text_Nom_Utilisateur)".
Et pour la première question, je vous remercie également pour votre réponse.
Je tiens tout d'abord à vous remercier de votre aide tout en soulignant que votre solution sur la seconde question ne fonctionne pas comme je l'aurai souhaité. Quand je modifie la procédure, comme vous l'avez suggéré, à l'exécution, quand on ferme la session pour ouvrir une autre, d'abord le bouton "Valider" du formulaire Mot de passe (F_password), ce bouton là ne s'affiche pas. Toutefois je peux valider par le bouton Entrée du clavier. Après le formulaire Menu_principal s'affiche normalement sauf qu'ici le nom de l'utilisateur ne s'affiche pas. "F_menu.Label15.Caption = LCase$(Text_Nom_Utilisateur)".
Et pour la première question, je vous remercie également pour votre réponse.
Bonjour,
Essayez alors cette version:
A+.
Essayez alors cette version:
Else Call Deconnect Me.Hide F_splash.Show F_menu.Label15.Caption = LCase$(Text_Nom_Utilisateur) F_menu.Label13.Caption = "Connecté" F_menu.Label13.ForeColor = vbGreen End If
A+.
Bonjour,
Encore une fois, je te remercie de votre disponibilité et de ton aide.
Je viens de voir votre nouvelle solution et je vais essayer avec. Mais j'ai essayé de suivre encore et toujours votre idée de modifier la procédure et j'ai fini par trouver la solution en modifiant la procédure
Maintenant tout fonctionne comme je le souhaite et c'est grâce à vous. Merci encore !
Encore une fois, je te remercie de votre disponibilité et de ton aide.
Je viens de voir votre nouvelle solution et je vais essayer avec. Mais j'ai essayé de suivre encore et toujours votre idée de modifier la procédure et j'ai fini par trouver la solution en modifiant la procédure
Cmd_Valider_Click()comme se présente le code ci-dessous :
Else Call Deconnect F_menu.Label15.Caption = LCase$(Text_Nom_Utilisateur) F_menu.Label13.Caption = "Connecté" F_menu.Label13.ForeColor = vbGreen Unload Me F_splash.Show End If
Maintenant tout fonctionne comme je le souhaite et c'est grâce à vous. Merci encore !
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour Yoda,
En fait, je voulais vous demander une aide sur un sujet en Visual Basic 6. et voici le sujet :
Dans un formulaire VB, j'ai placé 3 contrôles image (Image1, Image2 et Image3), 3 labels (Label_Nom_J1, Label_Nom_J2 et Label_Nom_J3) et 2 boutons de commande (Cmd_Nom_J et Cmd_Image_J).
Maintenant, une fois qu'on est en mode exécution, je souhaite cliquer à chaque fois, d'abord, sur le bouton "Cmd_Nom_J" pour ajouter le nom du joueur et l'affecter dans le label. Ça devrait donc être du genre (Label_Nom_J1=Nom_Joueur1, Label_Nom_J2=Nom_Joueur2 et Label_Nom_J3=Nom_Joueur3).
Même principe pour les images : On clique sur le bouton "Cmd_Image_J" pour insérer une photo du joueur dans le formulaire, et ça devrait être du genre : (Image1=Photo_Joueur1, Image2=Photo_Joueur2 et Image3=Photo_Joueur3).
Ça me parait simple à faire si je dois considérer que pour chaque joueur il a un bouton pour ajouter son nom et un autre pour insérer sa photo. Or ce n'est pas ce que je veux, je trouve cette idée moins pratique surtout quand aurions à travailler sur plusieurs joueurs.
Voici ce que j'ai pu faire en code :
Ajout du nom du joueur :
Insertion d'une image du Joueur :
N.B : J'ai inséré dans le formulaire l'objet ActivX CommonDialog pour le chargement de la boite de dialogue Ouvrir de Windows. Dans la propriété Filter de ce contrôle, CommonDialog1, j'ai spécifié les types d'images qu'on peut charger.
J'espère avoir été assez claire pour obtenir une réponse. Et merci d'avance !!!
En fait, je voulais vous demander une aide sur un sujet en Visual Basic 6. et voici le sujet :
Dans un formulaire VB, j'ai placé 3 contrôles image (Image1, Image2 et Image3), 3 labels (Label_Nom_J1, Label_Nom_J2 et Label_Nom_J3) et 2 boutons de commande (Cmd_Nom_J et Cmd_Image_J).
Maintenant, une fois qu'on est en mode exécution, je souhaite cliquer à chaque fois, d'abord, sur le bouton "Cmd_Nom_J" pour ajouter le nom du joueur et l'affecter dans le label. Ça devrait donc être du genre (Label_Nom_J1=Nom_Joueur1, Label_Nom_J2=Nom_Joueur2 et Label_Nom_J3=Nom_Joueur3).
Même principe pour les images : On clique sur le bouton "Cmd_Image_J" pour insérer une photo du joueur dans le formulaire, et ça devrait être du genre : (Image1=Photo_Joueur1, Image2=Photo_Joueur2 et Image3=Photo_Joueur3).
Ça me parait simple à faire si je dois considérer que pour chaque joueur il a un bouton pour ajouter son nom et un autre pour insérer sa photo. Or ce n'est pas ce que je veux, je trouve cette idée moins pratique surtout quand aurions à travailler sur plusieurs joueurs.
Voici ce que j'ai pu faire en code :
Ajout du nom du joueur :
Private Sub Cmd_Nom_J1_Click() Dim Nom_J1 As String Nom_J1 = InputBox ("Taper le nom du joueur", "Ajout du nom du joueur") If Nom_J1 = "" Then Exit Sub Else Label_Nom_J1.Caption = Nom_J1 End If End Sub Private Sub Cmd_Nom_J2_Click() Dim Nom_J2 As String Nom_J2 = InputBox ("Taper le nom du joueur", "Ajout du nom du joueur") If Nom_J2 = "" Then Exit Sub Else Label_Nom_J2.Caption = Nom_J2 End If End Sub Private Sub Cmd_Nom_J3_Click() Dim Nom_J3 As String Nom_J3 = InputBox ("Taper le nom du joueur", "Ajout du nom du joueur") If Nom_J3 = "" Then Exit Sub Else Label_Nom_J3.Caption = Nom_J3 End If End Sub
Insertion d'une image du Joueur :
Private Sub Cmd_Image_J1_Click() CommonDialog1.ShowOpen Image1.Picture = LoadPicture (CommonDialog1.FileName) End Sub Private Sub Cmd_Image_J2_Click() CommonDialog1.ShowOpen Image2.Picture = LoadPicture (CommonDialog1.FileName) End Sub Private Sub Cmd_Image_J3_Click() CommonDialog1.ShowOpen Image3.Picture = LoadPicture (CommonDialog1.FileName) End Sub
N.B : J'ai inséré dans le formulaire l'objet ActivX CommonDialog pour le chargement de la boite de dialogue Ouvrir de Windows. Dans la propriété Filter de ce contrôle, CommonDialog1, j'ai spécifié les types d'images qu'on peut charger.
J'espère avoir été assez claire pour obtenir une réponse. Et merci d'avance !!!
Bonjour,
Tu peux très bien grouper les deux étapes , demander le nom du joueur (InputBox) et en même temps demander à charger la photo correspondante:
Enfin pour encore plus rationaliser le code, tu peux faire une seule procédure qui est appelée par les boutons.
J'espère que ça répond à to question.
A+
Tu peux très bien grouper les deux étapes , demander le nom du joueur (InputBox) et en même temps demander à charger la photo correspondante:
Private Sub Cmd_Nom_J1_Click() Dim Nom_J1 As String Nom_J1 = InputBox("Taper le nom du joueur n° " & "1" & vbCrLf _ & "Ensuite charger sa photo", _ "Ajout du nom du joueur et sa photo") If Nom_J1 = "" Then Exit Sub Else Label_Nom_J1.Caption = Nom_J1 CommonDialog1.ShowOpen Image1.Picture = LoadPicture (CommonDialog1.FileName) End If End Sub
Enfin pour encore plus rationaliser le code, tu peux faire une seule procédure qui est appelée par les boutons.
Private Sub Cmd_Nom_J1_Click() Charge_Joueur(1) End Sub Private Sub Cmd_Nom_J2_Click() Charge_Joueur(2) End Sub Private Sub Cmd_Nom_J3_Click() Charge_Joueur(3) End Sub Private Sub Charge_Joueur ( n as integer) Dim Nom_J As String Nom_J = InputBox("Taper le nom du joueur n° " & n & vbCrLf _ & "Ensuite charger sa photo", _ "Ajout du nom du joueur et sa photo") If Nom_J = "" Then Exit Sub Else CommonDialog1.ShowOpen End If Select case n case 1 Label_Nom_J1.Caption = Nom_J Image1.Picture = LoadPicture (CommonDialog1.FileName) case 2 Label_Nom_J2.Caption = Nom_J Image2.Picture = LoadPicture (CommonDialog1.FileName) case 3 Label_Nom_J3.Caption = Nom_J Image2.Picture = LoadPicture (CommonDialog1.FileName) end select End sub
J'espère que ça répond à to question.
A+