OVH Cloud OVH Cloud

suppression enregistrement

12 réponses
Avatar
ben
Bonjour,
En VBA, je voudrais conna=EEtre le code que je peux=20
associer =E0 un bouton d'un formulaire qui supprime=20
l'enregistrement s=E9lectionn=E9 (et ce sans avoir recours =E0=20
l'"assistant bouton de commande".
Merci d'avance,
Ben.

10 réponses

1 2
Avatar
RaphK34
Bonjour, ceci devrait te convenir

DoCmd.RunCommand acCmdDeleteRecord

et si tu ne veux pas avoir de message d'alerte :

Docmd.SetWarnings False
DoCmd.RunCommand acCmdDeleteRecord
Docmd.SetWarnings True

--
@+ Raph.

--------------------------------------------
Merci de répondre sur le NG
Toutes remarques bienvenues !

Pour un contact direct, utiliser:
en enlevant nospam.
--------------------------------------------



"ben" a écrit dans le message de news:
05f901c4ebeb$69dc6570$
Bonjour,
En VBA, je voudrais connaître le code que je peux
associer à un bouton d'un formulaire qui supprime
l'enregistrement sélectionné (et ce sans avoir recours à
l'"assistant bouton de commande".
Merci d'avance,
Ben.
Avatar
jean-claude
salut

DoCmd.SetWarnings False 'n'affiche pas la demande
DoCmd.RunCommand acCmdDeleteRecord
DoCmd.SetWarnings True 'remet l'affichage en standard



"ben" a écrit dans le message de news:
05f901c4ebeb$69dc6570$
Bonjour,
En VBA, je voudrais connaître le code que je peux
associer à un bouton d'un formulaire qui supprime
l'enregistrement sélectionné (et ce sans avoir recours à
l'"assistant bouton de commande".
Merci d'avance,
Ben.
Avatar
ben
Merci à tous les deux.
Alors, j'ai écrit cela, mais si je fais "oui" à ma 2ème
MSGBOX, j'ai le message suibvant : "Erreur d'execution
2046" La commande ou l'action SupprimerEnregistrement
n'est pas disponible pour l'instant.
Dans tous les autres cas, cela fonctionne bien.
Vous auriez une idée ?
Merci d'avance,
Ben


Private Sub Commande31_Click()
If DCount("*", "vérifsociétédansacquisition") > 0 Then
MsgBox "Cette société est liée à une acquisition et
ne peut donc être supprimée"
Else
If MsgBox("Supprimer une société supprimera
automatiquement les assemblées générales de cette
société." & vbCrLf & "Confirmez-vous cette
suppression ?", vbYesNo, "ATTENTION !") = vbYes Then
DoCmd.SetWarnings False
DoCmd.RunCommand acCmdDeleteRecord
DoCmd.Close acForm, Me.Name
DoCmd.SetWarnings True
End If
End If
End Sub
Avatar
Raymond [mvp]
Bonjour.

avant de supprimer il faut sélectionner l'enregistrement:

DoCmd.RunCommand acCmdSelectRecord
DoCmd.RunCommand acCmdDeleteRecord


--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"ben" a écrit dans le message de news:
2b9101c4ebf2$ab0ac800$
Merci à tous les deux.
Alors, j'ai écrit cela, mais si je fais "oui" à ma 2ème
MSGBOX, j'ai le message suibvant : "Erreur d'execution
2046" La commande ou l'action SupprimerEnregistrement
n'est pas disponible pour l'instant.
Dans tous les autres cas, cela fonctionne bien.
Vous auriez une idée ?
Merci d'avance,
Ben


Private Sub Commande31_Click()
If DCount("*", "vérifsociétédansacquisition") > 0 Then
MsgBox "Cette société est liée à une acquisition et
ne peut donc être supprimée"
Else
If MsgBox("Supprimer une société supprimera
automatiquement les assemblées générales de cette
société." & vbCrLf & "Confirmez-vous cette
suppression ?", vbYesNo, "ATTENTION !") = vbYes Then
DoCmd.SetWarnings False
DoCmd.RunCommand acCmdDeleteRecord
DoCmd.Close acForm, Me.Name
DoCmd.SetWarnings True
End If
End If
End Sub
Avatar
ben
Même en le selectionnant comme vous me dites j'ai le même
message d'erreur...
Avez-vous passé un bon noël ?


-----Message d'origine-----
Bonjour.

avant de supprimer il faut sélectionner l'enregistrement:

DoCmd.RunCommand acCmdSelectRecord
DoCmd.RunCommand acCmdDeleteRecord


--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


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

2b9101c4ebf2$ab0ac800$
Merci à tous les deux.
Alors, j'ai écrit cela, mais si je fais "oui" à ma 2ème
MSGBOX, j'ai le message suibvant : "Erreur d'execution
2046" La commande ou l'action SupprimerEnregistrement
n'est pas disponible pour l'instant.
Dans tous les autres cas, cela fonctionne bien.
Vous auriez une idée ?
Merci d'avance,
Ben


Private Sub Commande31_Click()
If DCount("*", "vérifsociétédansacquisition") > 0 Then
MsgBox "Cette société est liée à une acquisition et
ne peut donc être supprimée"
Else
If MsgBox("Supprimer une société supprimera
automatiquement les assemblées générales de cette
société." & vbCrLf & "Confirmez-vous cette
suppression ?", vbYesNo, "ATTENTION !") = vbYes Then
DoCmd.SetWarnings False
DoCmd.RunCommand acCmdDeleteRecord
DoCmd.Close acForm, Me.Name
DoCmd.SetWarnings True
End If
End If
End Sub





.



Avatar
Raymond [mvp]
très bien passé mais un peu fatigant.

Donc ça veut dire que le curseur n'est pas positionné sur un enregistrement
? qu'il y a eu une autre opération avant telle une suppression ou la
rencontre de la fin de fichier ?

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"ben" a écrit dans le message de news:
151501c4ebfe$a709bbb0$
Même en le selectionnant comme vous me dites j'ai le même
message d'erreur...
Avez-vous passé un bon noël ?
Avatar
ben
Vous avez une petite semaine pour vous remettre avant de
recommencer... Dure, dure !!!

Oui en début de code il y a un test sur une requête :

If DCount("*", "vérifsociétédansacquisition") > 0 Then
MsgBox "Cette société est liée à une acquisition et
ne peut donc être supprimée"
Else
If MsgBox("Supprimer une société supprimera
automatiquement les assemblées générales de cette
société." & vbCrLf & "Confirmez-vous cette
suppression ?", vbYesNo, "ATTENTION !") = vbYes Then

DoCmd.SetWarnings False
RaisonSociale.SetFocus
DoCmd.RunCommand acCmdSelectRecord
DoCmd.RunCommand acCmdDeleteRecord
DoCmd.Close acForm, Me.Name
DoCmd.SetWarnings True

End If
End If


-----Message d'origine-----
très bien passé mais un peu fatigant.

Donc ça veut dire que le curseur n'est pas positionné
sur un enregistrement

? qu'il y a eu une autre opération avant telle une
suppression ou la

rencontre de la fin de fichier ?

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


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

151501c4ebfe$a709bbb0$
Même en le selectionnant comme vous me dites j'ai le même
message d'erreur...
Avez-vous passé un bon noël ?


.



Avatar
Raymond [mvp]
de placer le focus sur le formulaire (RaisonSociale est quoi , un contrôle?)
ne place pas le curseur sur un enregistrement précis. je pense qu'il
faudrait que tu fasses un findfirst pour retrouver le bon enregistrement
(comme si tu utilisais une liste modifiable par exemple).
Un enregistrement est-il affiché dans le formulaire; si oui, normalement
c'est l'enregistrement actif et il a le focus.

j'ai testé :
DoCmd.SetWarnings False
DoCmd.RunCommand acCmdSelectRecord
DoCmd.RunCommand acCmdDeleteRecord
DoCmd.SetWarnings True
et je n'ai aucun problème pour supprimer 10 enregistrements. ce qui voudrait
bien dire que ton formulaire perd le focus entre temps.

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"ben" a écrit dans le message de news:
0afc01c4ec03$19c05a70$
Vous avez une petite semaine pour vous remettre avant de
recommencer... Dure, dure !!!

Oui en début de code il y a un test sur une requête :

If DCount("*", "vérifsociétédansacquisition") > 0 Then
MsgBox "Cette société est liée à une acquisition et
ne peut donc être supprimée"
Else
If MsgBox("Supprimer une société supprimera
automatiquement les assemblées générales de cette
société." & vbCrLf & "Confirmez-vous cette
suppression ?", vbYesNo, "ATTENTION !") = vbYes Then

DoCmd.SetWarnings False
RaisonSociale.SetFocus
DoCmd.RunCommand acCmdSelectRecord
DoCmd.RunCommand acCmdDeleteRecord
DoCmd.Close acForm, Me.Name
DoCmd.SetWarnings True

End If
End If
Avatar
ben
Raisonsociale est un control, j'ai lis ce focus juste
pour tester suite à votre dernière remarque.
Si j'enlève les test, oui cela fonctionne, mais si je
les mets cela ne fonctionne plus...



-----Message d'origine-----
de placer le focus sur le formulaire (RaisonSociale est
quoi , un contrôle?)

ne place pas le curseur sur un enregistrement précis. je
pense qu'il

faudrait que tu fasses un findfirst pour retrouver le
bon enregistrement

(comme si tu utilisais une liste modifiable par exemple).
Un enregistrement est-il affiché dans le formulaire; si
oui, normalement

c'est l'enregistrement actif et il a le focus.

j'ai testé :
DoCmd.SetWarnings False
DoCmd.RunCommand acCmdSelectRecord
DoCmd.RunCommand acCmdDeleteRecord
DoCmd.SetWarnings True
et je n'ai aucun problème pour supprimer 10
enregistrements. ce qui voudrait

bien dire que ton formulaire perd le focus entre temps.

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


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

0afc01c4ec03$19c05a70$
Vous avez une petite semaine pour vous remettre avant de
recommencer... Dure, dure !!!

Oui en début de code il y a un test sur une requête :

If DCount("*", "vérifsociétédansacquisition") > 0 Then
MsgBox "Cette société est liée à une acquisition et
ne peut donc être supprimée"
Else
If MsgBox("Supprimer une société supprimera
automatiquement les assemblées générales de cette
société." & vbCrLf & "Confirmez-vous cette
suppression ?", vbYesNo, "ATTENTION !") = vbYes Then

DoCmd.SetWarnings False
RaisonSociale.SetFocus
DoCmd.RunCommand acCmdSelectRecord
DoCmd.RunCommand acCmdDeleteRecord
DoCmd.Close acForm, Me.Name
DoCmd.SetWarnings True

End If
End If



.



Avatar
cabinet.irdem
bjr irdem
code message erreur 2046 - commande : non disponible
regardez la synthaxe de l'exemple ds l'aide access
fonction DDE Initiate(DDEAccess)
surtout la gestion du code error à la fin de la syntaxe.....


Merci à tous les deux.
Alors, j'ai écrit cela, mais si je fais "oui" à ma 2ème
MSGBOX, j'ai le message suibvant : "Erreur d'execution
2046" La commande ou l'action SupprimerEnregistrement
n'est pas disponible pour l'instant.
Dans tous les autres cas, cela fonctionne bien.
Vous auriez une idée ?
Merci d'avance,
Ben


Private Sub Commande31_Click()
If DCount("*", "vérifsociétédansacquisition") > 0 Then
MsgBox "Cette société est liée à une acquisition et
ne peut donc être supprimée"
Else
If MsgBox("Supprimer une société supprimera
automatiquement les assemblées générales de cette
société." & vbCrLf & "Confirmez-vous cette
suppression ?", vbYesNo, "ATTENTION !") = vbYes Then
DoCmd.SetWarnings False
DoCmd.RunCommand acCmdDeleteRecord
DoCmd.Close acForm, Me.Name
DoCmd.SetWarnings True
End If
End If
End Sub







1 2