USERCONTROL RICHTEXTBOX CORRECTEUR D'ORTHOGRAPHE

jmberriot Messages postés 19 Date d'inscription dimanche 19 janvier 2003 Statut Membre Dernière intervention 11 avril 2008 - 13 mai 2006 à 10:45
cs_amita Messages postés 151 Date d'inscription samedi 17 juillet 2004 Statut Membre Dernière intervention 11 mai 2012 - 21 mai 2008 à 20:49
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/37557-usercontrol-richtextbox-correcteur-d-orthographe

cs_amita Messages postés 151 Date d'inscription samedi 17 juillet 2004 Statut Membre Dernière intervention 11 mai 2012
21 mai 2008 à 20:49
merci jack c'est r?solu
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
21 mai 2008 à 19:04
Dans ton cas, si tu avais voulu entrer tout ton texte dans le dictionnaire (impossible), il aurait fallu entrer la commande :
Call DB_AjouterMot(rtbTexte.Text)
car l'objet qui contient le texte DANS le UC est la RichTextBox, pas le UC lui même qui est un ensemble de composants.
Par contre, depuis ta forme hôte qui héberge un exemplaire du UC, il n'existera que le ucRTBCorrecteur1 et ses fonctions.
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
21 mai 2008 à 19:00
Mais pourquoi veux-tu à tout prix lui transmettre le texte entier ?
Il s'agit d'ajouter un mot, pas plus.

Si tu travailles DANS le UC, il ne faut pas y faire référence.
Exemple d'utilisation du menu en question :
Private Sub mnuAjouterMot_Click()
Dim Texte As String
Texte = InputBox("Quel mot voulez-vous ajouter au dictionnaire ?", _
"Ajout de mot au dico", "")
If Texte = "" Then Exit Sub
DB_AjouterMot (Texte)
End Sub
cs_amita Messages postés 151 Date d'inscription samedi 17 juillet 2004 Statut Membre Dernière intervention 11 mai 2012
21 mai 2008 à 17:01
j'ai cr?e le menu
Private Sub mnuAjouterMot_Click
ucRTBCorrecteur.DB_AjouterMot rtbTexte.Text
End Sub
dans le control lui m?me le probl?me

c'est que ucRTBCorrecteur ne reconnais pas DB_AjouterMot
il me signale l'erreur ucRTBCorrecteur variable non d?finie

merci
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
20 mai 2008 à 19:34
"ucRTBCorrecteur1" est bien le nom du composant sur ta forme hôte ?
Appelles-tu cette fonction depuis le code de ta forme hôte ou bien depuis le code du UserControl (UC) ? Dans ce cas, bien sûr, il faut utiliser le nom de la RTB dans le UC !

Dans l'exemple, là, tu passes le texte entier de la RTB !
Il faut récupérer le seul et unique mot à insérer (à faire en t'inspirant du découpage de texte déjà présent dans le code).
Quelle erreur as-tu ?
Quel est le comportement du programme ?
La fonction accepte une chaine 'String'
cs_amita Messages postés 151 Date d'inscription samedi 17 juillet 2004 Statut Membre Dernière intervention 11 mai 2012
20 mai 2008 à 18:09
le problème se pose quand je met

If ucRTBCorrecteur1.DB_AjouterMot(ucRTBCorrecteur1.text) Then
Status.Panels(1).Text = "Mot """ & ucRTBCorrecteur1.text & """ ajouté au dictionnaire."
Else
' Pas la peine d'écrire un message, le composant s'occupe d'envoyer un
' RaiseEvent pour donner la cause du refus
End If

cad que ucRTBCorrecteur1.text est une variable de text
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
20 mai 2008 à 15:15
Salut Amita
En effet, cette fonction n'est appelée par personne.
Encore un 'truc' que j'avais prévu et que je n'ai pas utilisé.
A priori, la fonction devrait fonctionner.
Suffirait d'ajouter un menu contextuel (*) qui sélectionnerait le mot sous le curseur et qui enverrait ce mot dans la function :
(*) Menu contextuel : Voir la commande PopupMenu + l'aide + les sources de vbfrance

If ucRTBCorrecteur1.DB_AjouterMot(leMot) Then
Status.Panels(1).Text = "Mot """ & leMot & """ ajouté au dictionnaire."
Else
' Pas la peine d'écrire un message, le composant s'occupe d'envoyer un
' RaiseEvent pour donner la cause du refus
End If
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
20 mai 2008 à 08:36
pardon ?
cs_amita Messages postés 151 Date d'inscription samedi 17 juillet 2004 Statut Membre Dernière intervention 11 mai 2012
19 mai 2008 à 20:17
comment ajouter un mot ? liste par la fonction DB_AjouterMot
avec un menu contextuelle
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
8 mai 2007 à 15:45
Salut à toi aussi Hajyahia
Il te faut cliquer sur "Télécharger le Zip", les sources sont dedans.
HAJYAHIA Messages postés 1 Date d'inscription mardi 19 août 2003 Statut Membre Dernière intervention 8 mai 2007
8 mai 2007 à 15:32
ou est le code source ?
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
15 mai 2006 à 18:51
lol, merci Renfield
Encore une correction que je n'ai pas faite après ma modif organisationnelle.
Je corrige le zip dans la foulée.
Mikaels35 Messages postés 146 Date d'inscription dimanche 23 janvier 2005 Statut Membre Dernière intervention 17 novembre 2009 2
15 mai 2006 à 16:54
Merci beaucoup Renfield, ça marche impec !

@++
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
15 mai 2006 à 13:27
remplace simplement :

'SQL = "Delete * From Mots"

par :
Dim nDeleteCount As Long
For ff = 65 To 90
SQL = "Delete From [Mots_" & Chr$(ff) & "]"
maDB.Execute SQL, Nb
nDeleteCount = nDeleteCount + Nb
Next ff
Mikaels35 Messages postés 146 Date d'inscription dimanche 23 janvier 2005 Statut Membre Dernière intervention 17 novembre 2009 2
15 mai 2006 à 08:45
Salut Jack

J'essaie de tester ton programme, mais jobtiens cette erreur quand je fais la conversion TXT->MDB !

"-2157217865- Le moteur de base de données Microsoft Jet ne peut pas trouver la table ou la requête source 'Mots'.
Asssurez-vous qu'elle existe et qu'elle est correctement orthographiée."

Que dois-je faire pour pouvoir mener à bien cette conversion ?

Merci d'avance

@+
jmberriot Messages postés 19 Date d'inscription dimanche 19 janvier 2003 Statut Membre Dernière intervention 11 avril 2008
13 mai 2006 à 18:23
Non c'est impec
Maitrisant mal les bases de données je craignais des données perdues, déplacées ou écrasées j'ai eu des déboires dans un prog perso où des blocs de dizaines de données se trouvaient déplacées à l'ouverture sans raison apparente ; problème jamais résolu alors je manipule les données dans fichier txt mais il devient trop gros ........ en attendant merci pour la reponse
JMB
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
13 mai 2006 à 17:16
Exact, JM, je n'avais pas corrigé cette requète.
En fait, au début, tous les mots se trouvaient dans une seule table et j'ai modifié la structure après, pensant que ça rendrait plus rapide les recherches. Ca n'a pas changé grand chose. Je mets à jour le Zip.
Une fois cette correction faite, tout fonctionne. Tu as encore une erreur ?
jmberriot Messages postés 19 Date d'inscription dimanche 19 janvier 2003 Statut Membre Dernière intervention 11 avril 2008
13 mai 2006 à 10:45
Trés interessant

J'ai rajouté 2 menus contextuels (Supprimer mot et Ajouter mot)
mais >>>>

dans la Function DB_AjouterMot

>>>>>>>>>>>Signale Erreur : "Mots" non trouvé
'---------------- Ok, on l'insère
SQL = "Insert Into Mots (Mot, Soundex) " & "Values ('" & Texte & "', '" & xDB_SoundEX(Texte) & "')"


>>>>>>>>>>>> Remplacé par
'---------------- Ok, on l'insère
SQL = "Insert Into Mots_" & sLettre & " Values ('" & Texte & "', '" & xDB_SoundEX(Texte) & "')"
>>>>>>>>>> et ça marche.....


Pas assez doué sur les bases alors d'ou vient l'erreur , si tu as une idée à l'occasion

JMB Bonne programmation
Rejoignez-nous