Besoin d'aide pour un code que je comprend plus

Résolu
Momone21 Messages postés 23 Date d'inscription dimanche 17 avril 2005 Statut Membre Dernière intervention 4 décembre 2006 - 4 déc. 2006 à 12:51
TMONOD Messages postés 256 Date d'inscription mardi 25 novembre 2003 Statut Membre Dernière intervention 6 novembre 2009 - 5 déc. 2006 à 00:04
Bonjour à tous
j'ai besoin d'aide pour mon code suivant, je ne comprend plus pourquoi à partir de "Private Sub Text1_Validate(Cancel As Boolean)" rien ne se passe.
Ceci devrais aller rechercher dans un fichier Txt une chaine, c'est a dire que quand "Text1" est taper il faudrais que dans "Text2" s'incrit une phrase.
merci d'avance de votre aide
Coordialement
Sylvain





<hr />


dans module:

Type ContactStruc
    strSex As String * 12
    sSéparateur1 As String * 1
    strNom As String * 20
    sSéparateur2 As String * 1
    strPrenom As String * 20
    sSéparateur3 As String * 1
    strTel As String * 15
    sSéparateur4 As String * 1
    strMail As String * 25
    sSéparateur5 As String * 1
    strService As String * 40
    sSéparateur6 As String * 1
    strSurnom As String * 80
    sSéparateur7 As String * 1
    strVisuel As String * 40
    sSéparateur8 As String * 1


End Type


Type ProStruc
    strAB As String * 20
    sSéparateur1 As String * 1
    strPro As String * 20
    sSéparateur2 As String * 1
End Type

Global contact As ContactStruc


Global Procedure As ProStruc
   





<hr />


dans une form:


Option Explicit
Dim i As Integer
Dim EndOfFile As Integer


Private Sub MAJRech3()
On Error GoTo Erreur
Dim NomRech3 As String
Text1.Text = UCase(Text1.Text)
    Open "C:\Procedure.txt" For Random As #1 Len = Len(Procedure)
    EndOfFile = LOF(1) / Len(Procedure)
    For i = 1 To EndOfFile
        Get #1, i, Procedure
        Text1.Text Trim(Procedure.strAB)


    Next i


    Close
Erreur:
End Sub


<hr />

Private Sub Ajouter_Click()
On Error GoTo Erreur
 

    Open "C:\Procedure.txt" For Random As #1 Len = Len(Procedure)       EndOfFile LOF(1) / Len(Procedure)   If Text1 "" Then
    MsgBox "Veuillez entrer le nom de recherche", 16, "Attention"
    Text1.SetFocus
    Else
    If Text2 = "" Then
        MsgBox "Veuillez entrer le nom de la Procédure", 16, "Attention"
        Text2.SetFocus
        Else
       
                                    Procedure.strAB = Chr(13) + Chr(10) & Text1
                                    Procedure.sSéparateur1 = ";"
                                    Procedure.strPro = Text2
                                    Procedure.sSéparateur2 = ";" & vbNewLine
                                    
                                    Put #1, EndOfFile + 1, Procedure

                                    MsgBox "Procédure ajouté avec succés!!"   
    End If
End If
Close #1
 Text1.Text = "Taper ici un mots pour rechercher une procedure"
 Text2.Text = ""
Erreur:
End Sub

<hr />Private Sub Text1_Validate(Cancel As Boolean)
Dim NomRech3 As String
Text1.Text = UCase(Text1.Text)
NomRech3 = Text1.Text

    Open "C:\Procedure.txt" For Random As #1 Len = Len(Procedure)
    
    EndOfFile = LOF(1) / Len(Procedure)
    For i = 1 To EndOfFile
        Get #1, i, Procedure
        If UCase(Trim(NomRech3)) = UCase(Trim(Procedure.strAB)) Then
          
            Text1.Text = Trim(Procedure.strAB)
            Text2.Text = Trim(Procedure.strPro)
       
      Else
      If Trim(Procedure.strPro) = 0 Then
        Text2.Text = ""
        MsgBox "pas de procedure pour cette recherche"
        Text1.Text = "Veillez reformuler une recherche"
    End If
    End If
    Next i
Close #1
End Sub

<hr />
Private Sub Text2_Validate(Cancel As Boolean)
Text2.Text = UCase(Text2.Text)
End Sub
<hr />Private Sub Command2_Click()
 Me.Hide
 Text1.Text = "Taper ici un mots pour rechercher une procedure"
 Text2.Text = ""
End Sub

<hr />
Private Sub FICHIERTXT_Click()
Shell "notepad.exe c:\Procedure.txt", vbMaximizedFocus
End Sub
<hr />
Private Sub Text1_Click()
Text1 = ""
End Sub

Momone21

5 réponses

TMONOD Messages postés 256 Date d'inscription mardi 25 novembre 2003 Statut Membre Dernière intervention 6 novembre 2009 1
4 déc. 2006 à 19:44
Tu ajoutes un nouveau module de classe  à ton projet, tu peux l'appeler GestionDeFichier, tu y met tes types de donnée et les fonction d'ajout de suppression et de recherche dans tes fichiers sequentiels.


A partir de ton module de Form tu ajoute une variable pointant sur une instance de ton  objet GestionDeFichier :
Dim mgdf as New GestionDeFichier
dans les ONClick etc... tu accèdes à ton fichier à travers l'objet
mgdf.Ajouter(nouveaucontact as ContactStruct) ....
....

Tu peux déclarer des variables propres à ton module de classe (le nom du fichier courrant, l'emplacement du contact courant etc...) de manière à y acceder "de l'exterieur"

Tu devrais consulter un bon tutoriel de vb pour en apprendre un peu plus sur la programmation objet (ou du moins "Orientée objet" en VB6). et la programmation structurée.
Quelques règles simple suffisent pour obtenir un code lisible et facilement déboguable.

Jcbé[^]
3
TMONOD Messages postés 256 Date d'inscription mardi 25 novembre 2003 Statut Membre Dernière intervention 6 novembre 2009 1
4 déc. 2006 à 15:43
Bonjour,
Je te conseille de créer un module de classe à part pour la gestion de ta base de donnée afin de bien l'isoler de ton interface,
tu crée une instance de ton module sur ton appli principale à laquelle tu fera appel dans ta gestion d'évenements. Les

Tu y veras ainsi beaucoup plus clair et tu pourras modifier ton interface graphique sans avoir à toucher la partie "metier" et vice versa.

Jcbé[^]
0
Momone21 Messages postés 23 Date d'inscription dimanche 17 avril 2005 Statut Membre Dernière intervention 4 décembre 2006
4 déc. 2006 à 18:23
je ne comprend pas, je suis débutant alors comment faire

Momone21
0
Momone21 Messages postés 23 Date d'inscription dimanche 17 avril 2005 Statut Membre Dernière intervention 4 décembre 2006
4 déc. 2006 à 23:45
ok je te remerci  TMONOD de dont aide, encore une petite question où pourrais je acheter un livre, car j'ai fait plussieur librairie mais il y a que Visaul Basic 5 et non le 6
merci d'avance
sylvain

Momone21
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
TMONOD Messages postés 256 Date d'inscription mardi 25 novembre 2003 Statut Membre Dernière intervention 6 novembre 2009 1
5 déc. 2006 à 00:04
Je ne sais pas quel est ton niveau mais je pense que les tutos sur le net sont suffisants. Je ne connais pas de bouquins sur le VB (en vérité je viens du C et suis passé trés rapidement à .Net).
A mon avis tu devrais faire le pas vers VB.Net pour faire un grand ecart vers C# plus tard.
Si tu es encore étudiant je ne saurais que trop te conseiller de passer 1 ou 2 UV de fac ou d'aller au CNAM  le plus proche.

Les bases de la programmation ne s'acquièrent pas aussi facilement qu'il n'y parait et les autodidactes qui "réussissent" doivent souvent repasser par la case "Fac" pour consolider leur savoir.

Le problème quand on aprend tout seul, c'est qu'on est....tout seul !

Jcbé[^]
0
Rejoignez-nous