OVH Cloud OVH Cloud

Verifier si une table contient un enregistrement

6 réponses
Avatar
Michel Pellegrini
Une table contiendra toujours 0 enregistrement
ou 1 enregistrement, jamais 2.

1) Comment faire (en VBA) pour vérifier si la
table contient un enregistrement (avec une
variable qui retourne 0 ou 1) ?

2) Quelle est la méthode la plus simple (en VBA)
pour supprimer cet enregistrement si la table
en contient un ?

Merci.

Michel.Pellegrini@Enter-Net.com
Vercheres QC Canada

6 réponses

Avatar
3stone
Bonjour aussi,

"Michel Pellegrini"
Une table contiendra toujours 0 enregistrement
ou 1 enregistrement, jamais 2.

1) Comment faire (en VBA) pour vérifier si la
table contient un enregistrement (avec une
variable qui retourne 0 ou 1) ?



' intRecord contiendra le nombre d'enregistrement
Dim i as integer
intRecord = DCount("*";"Nom_Table")

' ou un bolean qui sera à vrai si au moins un enregistrrement
Dim blnRecord as boolean
blnRecord = (DCount("*";"Nom_Table") > 0)



2) Quelle est la méthode la plus simple (en VBA)
pour supprimer cet enregistrement si la table
en contient un ?



CurrentDB.Execute "Delete * From Nom_Table"



--
A+
Pierre (3stone) Access MVP
-----------------------------
http://users.skynet.be/mpfa
-----------------------------

Avatar
Michel Pellegrini
Merci!

¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
(Moi)
|> Une table contiendra toujours 0 enregistrement
|> ou 1 enregistrement, jamais 2.
|>
|> 1) Comment faire (en VBA) pour vérifier si la
|> table contient un enregistrement (avec une
|> variable qui retourne 0 ou 1) ?

(3stone)
|>> ' intRecord contiendra le nombre d'enregistrement
|>> Dim i as integer
|>> intRecord = DCount("*";"Nom_Table")
|>>
|>> ' ou un bolean qui sera à vrai si au moins un enregistrrement
|>> Dim blnRecord as boolean
|>> blnRecord = (DCount("*";"Nom_Table") > 0)

(Moi)
|> 2) Quelle est la méthode la plus simple (en VBA)
|> pour supprimer cet enregistrement si la table
|> en contient un ?

(3stone)
|>> CurrentDB.Execute "Delete * From Nom_Table"


Vercheres QC Canada
Avatar
Michel Pellegrini
(Moi)
|> 2) Quelle est la méthode la plus simple (en VBA)
|> pour supprimer l'enregistrement - il y a toujours
|> 0 ou 1 enregistrement - si la table en contient un ?

(3stone)
|>> CurrentDB.Execute "Delete * From Nom_Table"

Ça fonctionne bien mais, si je place cette ligne dans
une procédure qui s'exécute sur "Ouverture" (ou sur
"Chargenment") du formulaire, je suis obligé de refermer
le formulaire et de le réouvrir pour pouvoir réentrer
un enregistrement. Il n'y a pas moyen d'entrer un
enregistrement si, à l'ouverture du formulaire, il a
de supprimer celui qui était là Dans la barre d'état,
c'est indiqué « la table a été supprimé par un autre
utilisateur » si j'essaie d'entrer une donnée dans
un contrôle (la donnée ne veut pas entrer dans le
contrôle).


Vercheres QC Canada
Avatar
3stone
re,

"Michel Pellegrini"
(3stone)
|>> CurrentDB.Execute "Delete * From Nom_Table"

Ça fonctionne bien mais, si je place cette ligne dans
une procédure qui s'exécute sur "Ouverture" (ou sur
"Chargenment") du formulaire, je suis obligé de refermer
le formulaire et de le réouvrir pour pouvoir réentrer
un enregistrement. Il n'y a pas moyen d'entrer un
enregistrement si, à l'ouverture du formulaire, il a
de supprimer celui qui était là Dans la barre d'état,
c'est indiqué « la table a été supprimé par un autre
utilisateur » si j'essaie d'entrer une donnée dans
un contrôle (la donnée ne veut pas entrer dans le
contrôle).



Ton formulaire est basé sur la table ?

dans ce cas, mets le a jour...


Currentdb.execute "delete...
Me.Requery



--
A+
Pierre (3stone) Access MVP
-----------------------------
http://users.skynet.be/mpfa
-----------------------------

Avatar
Michel Pellegrini
Ceci est marqué dans l'aide:

« la méthode Delete supprime l'enregistrement
en cours et le rend inaccessible. »

Comme il y a toujours 0 ou 1 enregistrement, quand
il vient supprimer celui qui était là, en essayant
d'en rentrer un nouveau, il veut se mettre à la place
de celui qu'il a supprimé. Ça doit être la raison pourquoi
il faut que je ferme et ouvre à nouveau le formulaire.

Comment régler ça ? J'ai essayer de rajouter Me.Refresh
à la suite de la ligne Delete, mais le problème persiste.


Vercheres QC Canada
Avatar
Michel Pellegrini
Ok, merci, ça fonctionne!

¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
(3stone)
|> CurrentDB.Execute "Delete * From Nom_Table"

(Moi)
|> Ça fonctionne bien mais je suis obligé de refermer
|> le formulaire et de le réouvrir pour pouvoir réentrer
|> un enregistrement.

(3stone)
|> CurrentDB.execute "Delete...
|> Me.Requery


Vercheres QC Canada