Enregistrements vides
Le
Albert

Bonjour
Votre opinion, doit on supprimer les enregistements vides?
merci de vos commentaires.
--
albertri-at-videotron.ca.invalid
Votre opinion, doit on supprimer les enregistements vides?
merci de vos commentaires.
--
albertri-at-videotron.ca.invalid
Bonjour,
C'est quoi les enregistrements vides ?
Comment sont-ils apparus ?
Votre présence se fait rare.....
Les enregistrements vides sont les dates de paiement ainsi que montant.
Dans une nouvelle requête regroupée, ci desssous
SELECT TBLmbcc.[ACTIF], TBLmbcc.LASTNAME, TBLmbcc.FIRSTNAME,
TBLmbcc.DUEDATE, Max(TBLcotisation.DateCotisation) AS MaxDeDateCotisation,
Last(TBLcotisation.MontantCotisation) AS DernierDeMontantCotisation,
Last(TBLcotisation.ArgentCheque) AS DernierDeArgentCheque,
Last(TBLcotisation.Note1) AS DernierDeNote1, Last(TBLcotisation.Note2) AS
DernierDeNote2
FROM TBLmbcc RIGHT JOIN TBLcotisation ON TBLmbcc.Numéro =
TBLcotisation.Numéro
GROUP BY TBLmbcc.[ACTIF], TBLmbcc.LASTNAME, TBLmbcc.FIRSTNAME,
TBLmbcc.DUEDATE
HAVING (((TBLmbcc.[ACTIF])=Yes) AND ((TBLmbcc.DUEDATE)>=(Year(Date())) &
"-10-01"));
Le dernier (LAST) enregistrement ne coïncidait pas avec MaxDeDateCotisation
(une entrée sur 600) car il y avait un enregistrement vide.
Une erreur de frappe, j'ai trouvé 6 enregistrements vide dans cette table de
3500 enregistrements.
Il va falloir créer une requête action pour supprimer les vides si on
utilise cette requête
Albert
"Gloops" news:li1iil$p57$
Albert a écrit, le 08/04/2014 16:31 :
Bonjour,
C'est quoi les enregistrements vides ?
Comment sont-ils apparus ?
Bonjour,
Date de paiement et montant, ce ne sont pas des enregistrements, mais
des champs.
C'est l'analyse, effectuée avec l'utilisateur avant le développement,
qui permet de décider si ça a un sens de conserver des enregistrement s
dont la date de paiement et le montant ne sont pas renseignés, et dans
la négative il convient de bien inspecter l'interface de saisie pour
voir si on ne pourrait pas éviter de créer des enregistrements avec d es
renseignements manquants.
Si on s'oriente dans cette voie, alors les enregistrements déjà
existants peuvent être purgés ainsi :
Pour purger les enregistrements dont DateCotisation est nul :
DELETE * FROM TBLcotisation WHERE DateCotisation IS Null
Pour purger les enregistrements dont MontantCotisation est nul
(attention, ce n'est pas la même chose que montant égal à zéro) :
DELETE * FROM TBLcotisation WHERE MontantCotisation IS NULL
Pour purger seulement les enregistrements dont les deux champs sont nuls :
DELETE * FROM TBLcotisation WHERE DateCotisation IS NULL AND
MontantCotisation IS NULL
(c'est cette dernière requête qui en purge le moins)
Je me suis contenté d'une approche simple où il suffit de purger la
table des cotisations.
On peut aussi, sans supprimer d'enregistrements, les filtrer de la
requête en y ajoutant
WHERE TBLcotisation.DateCotisation IS NOT NULL AND
TBLcotisation.MontantCotisation IS NOT NULL
Je n'ai pas Access sous la main donc je ne peux pas tester, mais cette
syntaxe ne me choque pas. Si ça coince merci de me dire.
Une fois la table purgée des enregistrements ne comportant pas de
montant ni de date de cotisation, on peut aussi modifier les propriété s
de la table pour qu'il ne soit pas possible de créer de tels
enregistrements. Attention, ensuite si on essaie de le faire une erreur
sera générée : on n'est pas dispensé de gérer le cas dans l'int erface.
La règle d'intégrité dans la table évite qu'une erreur de l'inter face
provoque une erreur dans la base de données.
"Gloops" news:li3hnt$aku$
Albert a écrit, le 09/04/2014 01:40 :
Mercii de vos commentaires, j'apprécie beaucoup
J'ai utilisé
DELETE * FROM TBLcotisation WHERE DateCotisation IS NULL AND
MontantCotisation IS NULL
et ça fait bien le travail
encore merci
Albert
Bonjour,
Date de paiement et montant, ce ne sont pas des enregistrements, mais
des champs.
C'est l'analyse, effectuée avec l'utilisateur avant le développement,
qui permet de décider si ça a un sens de conserver des enregistrements
dont la date de paiement et le montant ne sont pas renseignés, et dans
la négative il convient de bien inspecter l'interface de saisie pour
voir si on ne pourrait pas éviter de créer des enregistrements avec des
renseignements manquants.
Si on s'oriente dans cette voie, alors les enregistrements déjà
existants peuvent être purgés ainsi :
Pour purger les enregistrements dont DateCotisation est nul :
DELETE * FROM TBLcotisation WHERE DateCotisation IS Null
Pour purger les enregistrements dont MontantCotisation est nul
(attention, ce n'est pas la même chose que montant égal à zéro) :
DELETE * FROM TBLcotisation WHERE MontantCotisation IS NULL
Pour purger seulement les enregistrements dont les deux champs sont nuls :
DELETE * FROM TBLcotisation WHERE DateCotisation IS NULL AND
MontantCotisation IS NULL
(c'est cette dernière requête qui en purge le moins)
Je me suis contenté d'une approche simple où il suffit de purger la
table des cotisations.
On peut aussi, sans supprimer d'enregistrements, les filtrer de la
requête en y ajoutant
WHERE TBLcotisation.DateCotisation IS NOT NULL AND
TBLcotisation.MontantCotisation IS NOT NULL
Je n'ai pas Access sous la main donc je ne peux pas tester, mais cette
syntaxe ne me choque pas. Si ça coince merci de me dire.
Une fois la table purgée des enregistrements ne comportant pas de
montant ni de date de cotisation, on peut aussi modifier les propriétés
de la table pour qu'il ne soit pas possible de créer de tels
enregistrements. Attention, ensuite si on essaie de le faire une erreur
sera générée : on n'est pas dispensé de gérer le cas dans l'interface.
La règle d'intégrité dans la table évite qu'une erreur de l'interface
provoque une erreur dans la base de données.
Tant mieux :)