MS Access: Comment remplacer les valeurs vides (nulles) par 0 pour tous les enregistrements?
Je suppose que cela doit être fait en utilisant SQL. Je peux utiliser Rechercher et remplacer pour remplacer 0 par un blanc, mais pas l'inverse (ne "trouvera" pas un blanc, même si j'entre dans la [Ctrl-barre d'espace] qui insère un espace.
Donc, je suppose que je dois faire du SQL où je trouve des valeurs nulles pour MyField, puis les remplace toutes par 0.
Accédez à la fenêtre du concepteur de requête, passez en mode SQL et essayez ceci:
Update Table Set MyField = 0
Where MyField Is Null;
Si vous essayez de le faire avec une requête, voici votre réponse:
SELECT ISNULL ([champ], 0) FROM [table]
Modifier
La fonction ISNULL n'a pas été utilisée correctement - cette version modifiée utilise IIF
SELECT IIF(ISNULL([field]), 0, [field]) FROM [table]
Si vous souhaitez remplacer les valeurs réelles dans la table, procédez de la manière suivante:
UPDATE [table] SET [FIELD] = 0 WHERE [FIELD] IS NULL
UPDATE table SET column=0 WHERE column IS NULL
UPDATE YourTable SET MyField = 0 WHERE MyField IS NULL
fonctionne dans la plupart des dialectes SQL. Je n'utilise pas Access, mais cela devrait vous aider à démarrer.
sans 'où est et' si est ...
Update Table Set MyField = Nz(MyField,0)
Une meilleure solution consiste à utiliser la fonction NZ (null à zéro) lors de la génération de la table => NZ ([NomColonne]) Elle est égale à 0, où "null" dans NomColonne.
La requête suivante fonctionne également et vous n'aurez pas besoin d'une requête de mise à jour si c'est ce que vous préférez:
IIF(Column Is Null,0,Column)
Utiliser rechercher et remplacer fonctionnera si vous tapez "null" dans la recherche et mettez un zéro dans le remplacement ... vous serez averti que cela ne peut pas être annulé.
J'ai utilisé un processus en deux étapes pour modifier les lignes avec des valeurs "vides" en "Null" en tant que paramètres réservés.
UPDATE [TableName] SET [TableName].[ColumnName] = "0"
WHERE ((([TableName].[ColumnName])=""));
UPDATE [TableName] SET [TableName].[ColumnName] = "Null"
WHERE ((([TableName].[ColumnName])="0"));
Je voudrais changer l'instruction SQL ci-dessus pour être plus générique. L'utilisation de caractères génériques n'est jamais une mauvaise idée quand il s'agit de population de masse d'éviter les valeurs nulles.
Essaye ça:
Update Table Set * = 0 Where * Is Null;
Je viens d'avoir ce même problème, et j'ai fini par trouver la solution la plus simple qui convient à mes besoins. Dans les propriétés de la table, j'ai défini la valeur par défaut sur 0 pour les champs pour lesquels je ne souhaite pas afficher les valeurs NULL. Super facile.