Momone21
Messages postés23Date d'inscriptiondimanche 17 avril 2005StatutMembreDernière intervention 4 décembre 2006
-
4 déc. 2006 à 12:51
TMONOD
Messages postés256Date d'inscriptionmardi 25 novembre 2003StatutMembreDerniè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
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
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
TMONOD
Messages postés256Date d'inscriptionmardi 25 novembre 2003StatutMembreDernière intervention 6 novembre 20091 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.
TMONOD
Messages postés256Date d'inscriptionmardi 25 novembre 2003StatutMembreDernière intervention 6 novembre 20091 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.
Momone21
Messages postés23Date d'inscriptiondimanche 17 avril 2005StatutMembreDerniè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
Vous n’avez pas trouvé la réponse que vous recherchez ?
TMONOD
Messages postés256Date d'inscriptionmardi 25 novembre 2003StatutMembreDernière intervention 6 novembre 20091 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 !