Effacement automatique de valeurs à l'intérieur de tables

2 réponses
Avatar
jymgo
Bonsoir ou bonjour

Y a t-il un moyen rapide d'effacer le contenu de certains champs dans une ou
plusieurs tables ??? je m'explique :

Lorsque j'importe une feuille XL, comme l'import d'une cellule vide ne
fonctionne pas, je demande à XL de remplacer le vide par '999999'.

Donc : Y a t-il un code ou une commande qui permette d'effacer, dans une
table, toutes les cellules qui contiennent 999999 et qui sont, par nature
aléatoire.

(vu le caractère atypique du nombre, peu de risque d'effacer un résultat
valide).
Je vous remercie pour vos proposition
Jymgo

2 réponses

Avatar
Francis SLAWNY
Pour effacer un champ donné d'une table donnée : requête mise à jour
exemple :

UPDATE ANIMATEURS SET ANIMATEURS.LIEU = Null
WHERE (((ANIMATEURS.LIEU)="siège"));

Si on cherche dans toutes les tables et tous les champs, boucle emboitées :
(à adapter)
Function Mise_A_null_Champs(contenu)
On Error Resume Next
Dim Db As Database
Dim Tb As TableDef
Dim Ch As Field
Set Db = CurrentDb
For Each Tb In Db.TableDefs
NomTab = Tb.Name
For Each Ch In Tb.Fields
NomChamp = Ch.Name
NomChamp = NomTab & "." & NomChamp
req = " UPDATE " & NomTab & " set " & NomChamp & " = null "
req = req & "WHERE (((" & NomChamp & ")=" & Chr(34) & contenu & Chr(34) &
"));"
Debug.Print req
DoCmd.RunSQL req
Next
Next
End Function

FS




"jymgo" a écrit dans le message de news:

Bonsoir ou bonjour

Y a t-il un moyen rapide d'effacer le contenu de certains champs dans une
ou
plusieurs tables ??? je m'explique :

Lorsque j'importe une feuille XL, comme l'import d'une cellule vide ne
fonctionne pas, je demande à XL de remplacer le vide par '999999'.

Donc : Y a t-il un code ou une commande qui permette d'effacer, dans une
table, toutes les cellules qui contiennent 999999 et qui sont, par nature
aléatoire.

(vu le caractère atypique du nombre, peu de risque d'effacer un résultat
valide).
Je vous remercie pour vos proposition
Jymgo


Avatar
jymgo
Bonjour
Merci beaucoup pour le tuyau. j'ai en partie résolu mon problème.
Crdt
Jymgo

"Francis SLAWNY" a écrit :

Pour effacer un champ donné d'une table donnée : requête mise à jour
exemple :

UPDATE ANIMATEURS SET ANIMATEURS.LIEU = Null
WHERE (((ANIMATEURS.LIEU)="siège"));

Si on cherche dans toutes les tables et tous les champs, boucle emboitées :
(à adapter)
Function Mise_A_null_Champs(contenu)
On Error Resume Next
Dim Db As Database
Dim Tb As TableDef
Dim Ch As Field
Set Db = CurrentDb
For Each Tb In Db.TableDefs
NomTab = Tb.Name
For Each Ch In Tb.Fields
NomChamp = Ch.Name
NomChamp = NomTab & "." & NomChamp
req = " UPDATE " & NomTab & " set " & NomChamp & " = null "
req = req & "WHERE (((" & NomChamp & ")=" & Chr(34) & contenu & Chr(34) &
"));"
Debug.Print req
DoCmd.RunSQL req
Next
Next
End Function

FS




"jymgo" a écrit dans le message de news:

> Bonsoir ou bonjour
>
> Y a t-il un moyen rapide d'effacer le contenu de certains champs dans une
> ou
> plusieurs tables ??? je m'explique :
>
> Lorsque j'importe une feuille XL, comme l'import d'une cellule vide ne
> fonctionne pas, je demande à XL de remplacer le vide par '999999'.
>
> Donc : Y a t-il un code ou une commande qui permette d'effacer, dans une
> table, toutes les cellules qui contiennent 999999 et qui sont, par nature
> aléatoire.
>
> (vu le caractère atypique du nombre, peu de risque d'effacer un résultat
> valide).
> Je vous remercie pour vos proposition
> Jymgo