Vb: form et module
raro
Messages postés
140
Date d'inscription
Statut
Membre
Dernière intervention
-
sam3000 Messages postés 1225 Date d'inscription Statut Membre Dernière intervention -
sam3000 Messages postés 1225 Date d'inscription Statut Membre Dernière intervention -
salut à tous!
afin d'aérer mon programme j'ai décidé de mettre toutes mes procédure dans un module le problème c'est que lorsque j'exécute l'application j'ai un message d'erreur comme si l'application ne lisait pas ce qu'il y a dans le module
voici le code module:
et voici ce qu'il y a dans ma form (elle n'est pas fini mais cmd_ouvrir devrait me faire apparaitre la frame1 à l'écran, au lieu de cela j'ai le message "un objet est requis" en l'occurence p_afficher_frame1 qui se trouve dans le module):
merci encore
"Donne un poisson à un homme, il mangera une journée.
Apprends-lui à pêcher, il mangera toute sa vie"
afin d'aérer mon programme j'ai décidé de mettre toutes mes procédure dans un module le problème c'est que lorsque j'exécute l'application j'ai un message d'erreur comme si l'application ne lisait pas ce qu'il y a dans le module
voici le code module:
Sub p_charger_donnees() text_licence.Text = rs("licence_nageur").Value text_nom.Text = rs("nom_nageur").Value text_prenom.Text = rs("prenom_nageur").Value text_datnais.Text = rs("datnais_nageur").Value text_sexe.Text = rs("sexe_nageur").Value End Sub Sub p_transfert_donnees_disque() rs.Fields("licence_nageur") = text_licence.Text rs.Fields("nom_nageur") = text_nom.Text rs.Fields("prenom_nageur") = text_prenom.Text rs.Fields("datnais_nageur") = text_datnais.Text rs.Fields("sexe_nageur") = text_sexe.Text End Sub Sub p_blanc() text_licence.Text = "" text_nom.Text = "" text_prenom.Text = "" text_datnais.Text = "" text_sexe.Text = "" End Sub Sub p_afficher_frame1() Frame1.Visible = True End Sub Sub p_afficher_frame2() Frame2.Visible = True text_nom.Visible = False text_prenom.Visible = False text_datnais.Visible = False text_sexe.Visible = False End Sub Sub p_test_caracteres() Const alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZÄËÏÖÜÀÁÂÃÄÅÆÇÈÉÊËÒÓÔÕÖÙÚÛÜÝÌÍÎÏ-" Dim h As Integer Dim dum As String Dim rep As Long dum = "Caractère" h = 0 For h = 1 To Len(dum) rep = InStr(1, alphabet, UCase(Trim(Mid(dum, h, 1))), vbTextCompare) If (rep = 0) Then MsgBox "La saisie ne peut comporter que des lettres" dum = "" Exit Sub End If Next h text_nom = UCase(text_nom.Text) End Sub Sub p_chiffres() Dim i As Integer i = 0 For i = 1 To Len(text_licence.Text) If UCase(Trim(Mid(text_licence.Text, i, 1))) Like "[!0-9]" Then MsgBox "La saisie ne peut comporter que des chiffres" text_licence = "" text_licence.SetFocus Exit Sub End If Next i End Sub Sub p_nombre_chiffres() If Len(text_licence) <> 16 Then MsgBox "La saisie doit comporter exactement 16 chiffres" text_licence = "" text_licence.SetFocus Exit Sub End If End Sub Sub p_prenom() Dim m As Integer m = 0 text_prenom = UCase(Left(text_prenom, 1)) & LCase(Mid(text_prenom, 2)) If InStr(text_prenom, " ") > 0 Or InStr(text_prenom, "-") > 0 Or InStr(text_prenom, ".") > 0 Then For m = 2 To Len(text_prenom) Select Case Mid(text_prenom, 1) Case " ", "-", "." text_prenom = Trim(Left(text_prenom, m - 1)) & " " & UCase(Mid(text_prenom, m + 1, 1)) & Mid(text_prenom, m + 2) End Select Next m End If p_test_caracteres text_prenom = UCase(text_prenom.Text) End Sub Sub p_format_date() If (text_datnais Like "##/##/####") = False Then MsgBox "Saisie invalide,format demandé: JJ/MM/AAAA" Exit Sub End If End Sub Sub p_caractere_sexe() If Len(text_sexe) <> 1 Then MsgBox "La saisie ne peut comporter qu'un seul caractère" Const alphabet = "FM" Dim j As Integer Dim lum As String Dim reponse As Long lum = "Caractère" h = 0 For j = 1 To Len(lum) reponse = InStr(1, alphabet, UCase(Trim(Mid(lum, j, 1))), vbTextCompare) If (reponse = 0) Then MsgBox "La saisie ne peut comporter que la lettre M ou F" lum = "" Exit Sub End If Next j text_sexe = UCase(text_sexe.Text) End Sub
et voici ce qu'il y a dans ma form (elle n'est pas fini mais cmd_ouvrir devrait me faire apparaitre la frame1 à l'écran, au lieu de cela j'ai le message "un objet est requis" en l'occurence p_afficher_frame1 qui se trouve dans le module):
Option Explicit Private Sub cmd_annuler_Click() p_blanc Frame2.Visible = False End Sub Private Sub cmd_debut_Click() If rs.RecordCount > 0 Then rs.MoveFirst p_blanc p_charger_donnees End If End Sub Private Sub cmd_fermer_Click() Unload Me End Sub Private Sub cmd_fermer2_Click() Unload Me End Sub Private Sub cmd_fin_Click() If rs.RecordCount > 0 Then rs.MoveLast p_blanc p_charger_donnees End Sub Private Sub cmd_modifier_Click() Frame2.Visible = True rs.Edit p_transfert_donnees_disque rs.Update End Sub Private Sub cmd_ouvrir_Click() p_afficher_frame1 p_charger_donnees End Sub Private Sub Form_Load() 'frame 1 et 2 invisible (seul le bouton "ouvrir apparait" Frame1.Visible = False Frame2.Visible = False Set db = OpenDatabase("C:\Documents and Settings\PARENTS\Mes documents\ROGER\dossier_toutelanat\tln.mdb") Set rs = db.OpenRecordset("NAGEURS") End Sub
merci encore
"Donne un poisson à un homme, il mangera une journée.
Apprends-lui à pêcher, il mangera toute sa vie"
A voir également:
- Vb: form et module
- Vb - Télécharger - Langages
- Vb cable - Télécharger - Audio & Musique
- Vb editor - Télécharger - Langages
- Vb runtime - Télécharger - Divers Utilitaires
- Vb express - Télécharger - Langages
1 réponse
à partir d'un module tu ne peut pas acceder au objets de la form uniquement par leurs noms!
exemple, dans la form tu ecrivais:
si tu deplace dans un module, ca doit devenir (en supposant que la form s'appelle 'MaForm'):
exemple, dans la form tu ecrivais:
Sub p_charger_donnees() text_licence.Text = rs("licence_nageur").Value text_nom.Text = rs("nom_nageur").Value text_prenom.Text = rs("prenom_nageur").Value text_datnais.Text = rs("datnais_nageur").Value text_sexe.Text = rs("sexe_nageur").Value End Sub
si tu deplace dans un module, ca doit devenir (en supposant que la form s'appelle 'MaForm'):
public Sub p_charger_donnees() MaForm.text_licence.Text = MaForm.rs("licence_nageur").Value MaForm.text_nom.Text = MaForm.rs("nom_nageur").Value MaForm.text_prenom.Text = MaForm.rs("prenom_nageur").Value MaForm.text_datnais.Text = MaForm.rs("datnais_nageur").Value MaForm.text_sexe.Text = MaForm.rs("sexe_nageur").Value End Sub