RECHERCHER ET REMPLACER UN CARACTERE DANS 1 CHAMP D'UNE TABLE
3 réponses
Emilie
Bonjour à tous,
Dans une table nommée Tbl j'ai 2 champs :
- Code (clé primaire)
- Designation
J'aimerais en cliquant sur un bouton vérifier que toutes les Designations ne
contiennent pas le caractère guillemet ".
Si c'est le cas il faut alors que je supprime ce caractère.
Quelqu'un sait-il comment réaliser ce petit programme en VBA ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
bradabus
tu fais une requete sur la table en question en mettant dans la zone critère sous le champ DESIGNATION la formule suivante comme "*"*" comme ça tu auras toutes les entrées qui contiennent des guillemets et à toi de les supprimer par la suite
tu fais une requete sur la table en question en mettant dans la zone
critère sous le champ DESIGNATION la formule suivante comme "*"*"
comme ça tu auras toutes les entrées qui contiennent des guillemets
et à toi de les supprimer par la suite
tu fais une requete sur la table en question en mettant dans la zone critère sous le champ DESIGNATION la formule suivante comme "*"*" comme ça tu auras toutes les entrées qui contiennent des guillemets et à toi de les supprimer par la suite
Gérard
Bonsoir,
Tu peux aussi utiliser essayer ces quelques lignes de code en les plaçant derrière un bouton qui lancera le contrôle.
************************************************************** Dim Sql As String Dim Rs As Recordset Dim DB As Database Dim stVar, stInt, stInt2 As String Dim i as Integer
Sql = "SELECT Tbl.Code, Tbl.Designation FROM Tbl;"
'création du jeu d'enregistrement Set DB = Application.CurrentDb Set Rs = DB.OpenRecordset(Sql, dbOpenDynaset)
'si des enregistrements sont présents, position sur le premier pour départ If Rs.EOF = False Then Rs.MoveFirst Else 'sinon sortie MsgBox "Aucun enregistrement à modifier" Exit Sub End If
'tant que l'on n'est pas à la fin du jeu enregistrement While Rs.EOF = False 'récupération de l'information valeur dans champ 'Désignation' stVar = Rs.Fields(1).Value 'vérification et élimination du caractère " (code ascii 34) et le 'remplace par un espace sauf si premier caractère 'cette partie peut être remplacée par la fonction "replace" suivant la version 'Access 'remise à blanc des variables stInt = "" stInt2 = "" For i = 1 To Len(stVar) stInt = Mid(stVar, i, 1) If Asc(stInt) = 34 Then If i = 1 Then stInt = "" Else stInt = " " End If End If stInt2 = stInt2 & stInt Next i 'mise à jour de l'enregistrement With Rs .Edit .Fields(1).Value = stInt2 .Update 'passage à l'élément suivant .MoveNext End With Wend
'clôture Rs.Close DB.Close Set Rs = Nothing Set DB = Nothing
Petit conseil, tu peux ajouter un champ oui/non ayant une valeur à défaut sur non et que tu passes sur oui lors de la mise à jour du champ désignation. La requête devient : Sql = "SELECT Tbl.Code, Tbl.Designation, Tbl.Maj FROM Tbl WHERE ((Tbl.Mal)úlse);" Il faut ajouter lors de la mise à jour la ligne .Fields(2).Value=True
Cela évitera au programme de parcourir à nouveau l'ensemble des enregistrements mais seulement les éléments non contrôlés
A tester, sans garantie.
Gérard
"bradabus" a écrit dans le message de news:
tu fais une requete sur la table en question en mettant dans la zone critère sous le champ DESIGNATION la formule suivante comme "*"*" comme ça tu auras toutes les entrées qui contiennent des guillemets et à toi de les supprimer par la suite
Bonsoir,
Tu peux aussi utiliser essayer ces quelques lignes de code en les plaçant
derrière un bouton qui lancera le contrôle.
**************************************************************
Dim Sql As String
Dim Rs As Recordset
Dim DB As Database
Dim stVar, stInt, stInt2 As String
Dim i as Integer
Sql = "SELECT Tbl.Code, Tbl.Designation FROM Tbl;"
'création du jeu d'enregistrement
Set DB = Application.CurrentDb
Set Rs = DB.OpenRecordset(Sql, dbOpenDynaset)
'si des enregistrements sont présents, position sur le premier pour
départ
If Rs.EOF = False Then
Rs.MoveFirst
Else
'sinon sortie
MsgBox "Aucun enregistrement à modifier"
Exit Sub
End If
'tant que l'on n'est pas à la fin du jeu enregistrement
While Rs.EOF = False
'récupération de l'information valeur dans champ 'Désignation'
stVar = Rs.Fields(1).Value
'vérification et élimination du caractère " (code ascii 34) et le
'remplace par un espace sauf si premier caractère
'cette partie peut être remplacée par la fonction "replace" suivant
la version
'Access
'remise à blanc des variables
stInt = ""
stInt2 = ""
For i = 1 To Len(stVar)
stInt = Mid(stVar, i, 1)
If Asc(stInt) = 34 Then
If i = 1 Then
stInt = ""
Else
stInt = " "
End If
End If
stInt2 = stInt2 & stInt
Next i
'mise à jour de l'enregistrement
With Rs
.Edit
.Fields(1).Value = stInt2
.Update
'passage à l'élément suivant
.MoveNext
End With
Wend
'clôture
Rs.Close
DB.Close
Set Rs = Nothing
Set DB = Nothing
Petit conseil, tu peux ajouter un champ oui/non ayant une valeur à défaut
sur non et que tu passes sur oui
lors de la mise à jour du champ désignation.
La requête devient :
Sql = "SELECT Tbl.Code, Tbl.Designation, Tbl.Maj FROM Tbl WHERE
((Tbl.Mal)úlse);"
Il faut ajouter lors de la mise à jour la ligne
.Fields(2).Value=True
Cela évitera au programme de parcourir à nouveau l'ensemble des
enregistrements mais seulement les éléments non contrôlés
A tester, sans garantie.
Gérard
"bradabus" <issamjatte@gmail.com> a écrit dans le message de news:
1151429914.371919.299060@j72g2000cwa.googlegroups.com...
tu fais une requete sur la table en question en mettant dans la zone
critère sous le champ DESIGNATION la formule suivante comme "*"*"
comme ça tu auras toutes les entrées qui contiennent des guillemets
et à toi de les supprimer par la suite
Tu peux aussi utiliser essayer ces quelques lignes de code en les plaçant derrière un bouton qui lancera le contrôle.
************************************************************** Dim Sql As String Dim Rs As Recordset Dim DB As Database Dim stVar, stInt, stInt2 As String Dim i as Integer
Sql = "SELECT Tbl.Code, Tbl.Designation FROM Tbl;"
'création du jeu d'enregistrement Set DB = Application.CurrentDb Set Rs = DB.OpenRecordset(Sql, dbOpenDynaset)
'si des enregistrements sont présents, position sur le premier pour départ If Rs.EOF = False Then Rs.MoveFirst Else 'sinon sortie MsgBox "Aucun enregistrement à modifier" Exit Sub End If
'tant que l'on n'est pas à la fin du jeu enregistrement While Rs.EOF = False 'récupération de l'information valeur dans champ 'Désignation' stVar = Rs.Fields(1).Value 'vérification et élimination du caractère " (code ascii 34) et le 'remplace par un espace sauf si premier caractère 'cette partie peut être remplacée par la fonction "replace" suivant la version 'Access 'remise à blanc des variables stInt = "" stInt2 = "" For i = 1 To Len(stVar) stInt = Mid(stVar, i, 1) If Asc(stInt) = 34 Then If i = 1 Then stInt = "" Else stInt = " " End If End If stInt2 = stInt2 & stInt Next i 'mise à jour de l'enregistrement With Rs .Edit .Fields(1).Value = stInt2 .Update 'passage à l'élément suivant .MoveNext End With Wend
'clôture Rs.Close DB.Close Set Rs = Nothing Set DB = Nothing
Petit conseil, tu peux ajouter un champ oui/non ayant une valeur à défaut sur non et que tu passes sur oui lors de la mise à jour du champ désignation. La requête devient : Sql = "SELECT Tbl.Code, Tbl.Designation, Tbl.Maj FROM Tbl WHERE ((Tbl.Mal)úlse);" Il faut ajouter lors de la mise à jour la ligne .Fields(2).Value=True
Cela évitera au programme de parcourir à nouveau l'ensemble des enregistrements mais seulement les éléments non contrôlés
A tester, sans garantie.
Gérard
"bradabus" a écrit dans le message de news:
tu fais une requete sur la table en question en mettant dans la zone critère sous le champ DESIGNATION la formule suivante comme "*"*" comme ça tu auras toutes les entrées qui contiennent des guillemets et à toi de les supprimer par la suite
3stone
Salut,
"Emilie" | Dans une table nommée Tbl j'ai 2 champs : | - Code (clé primaire) | - Designation | | J'aimerais en cliquant sur un bouton vérifier que toutes les Designations ne | contiennent pas le caractère guillemet ". | Si c'est le cas il faut alors que je supprime ce caractère.
"Emilie"
| Dans une table nommée Tbl j'ai 2 champs :
| - Code (clé primaire)
| - Designation
|
| J'aimerais en cliquant sur un bouton vérifier que toutes les Designations ne
| contiennent pas le caractère guillemet ".
| Si c'est le cas il faut alors que je supprime ce caractère.
"Emilie" | Dans une table nommée Tbl j'ai 2 champs : | - Code (clé primaire) | - Designation | | J'aimerais en cliquant sur un bouton vérifier que toutes les Designations ne | contiennent pas le caractère guillemet ". | Si c'est le cas il faut alors que je supprime ce caractère.