OVH Cloud OVH Cloud

technique DAO ou ADO

6 réponses
Avatar
isabelle
bonjour mes vous,

connaitriez vous une commande vba excel pour supprimer un enregistrement d'une table access.

vous remerciant par avance,
bisou
isabelle

6 réponses

Avatar
michdenis
Bonjour Isabelle,

Voici une façon de procéder :

Tu dois ajouter la bibliothèque suivante à ton projet Excel :

"Microsoft DAO 3.6 Object Librairy"

Le principe de base ici est de créer une requête qui va regrouper dans le "RecordSet" obtenu, tous les enregistrements que
l'on veut supprimer. Tu peux reproduire cet exemple, il est fait en utilisant la base de données comptoir.mdb qui est sur le
CD d'installation de Microsoft office.

'----------------------------------
Sub SupprimerEnregistrements()

Dim MyDB As Database, Rst As Recordset
Dim Nb As Long

Set MyDB = OpenDatabase("C:ExcelComptoir.mdb", False, False, Access9)
'Set MyDB = currentdb

req = "Select Prénom From Employés Where Prénom = 'Janet'"

Set Rst = MyDB.OpenRecordset(req)
Nb = Rst.RecordCount

If Nb > 0 Then
If MsgBox("Vous allez supprimer " & Nb & " enregistrements." _
& vbCrLf & "Désirez-vous continuer ?", vbYesNo, "Supprimer") = vbYes Then
Rst.Delete
End If
Else
MsgBox "Aucun enregistrement ne correspond à votre demande."
End If
Rst.Close: MyDB.Close
Set Rst = Nothing: Set MyDB = Nothing

End Sub
'----------------------------------


Salutations!



"isabelle" a écrit dans le message de news:
bonjour mes vous,

connaitriez vous une commande vba excel pour supprimer un enregistrement d'une table access.

vous remerciant par avance,
bisou
isabelle
Avatar
michdenis
Un petit supplément Isabelle,

Attention, si la table où tu veux supprimer des enregistrements à une liaison d'intégrité référentielle avec d'autres
enregistrements de d'autres tables....Cela peut causer problème !


Salutations!



"michdenis" a écrit dans le message de news:
Bonjour Isabelle,

Voici une façon de procéder :

Tu dois ajouter la bibliothèque suivante à ton projet Excel :

"Microsoft DAO 3.6 Object Librairy"

Le principe de base ici est de créer une requête qui va regrouper dans le "RecordSet" obtenu, tous les enregistrements que
l'on veut supprimer. Tu peux reproduire cet exemple, il est fait en utilisant la base de données comptoir.mdb qui est sur le
CD d'installation de Microsoft office.

'----------------------------------
Sub SupprimerEnregistrements()

Dim MyDB As Database, Rst As Recordset
Dim Nb As Long

Set MyDB = OpenDatabase("C:ExcelComptoir.mdb", False, False, Access9)
'Set MyDB = currentdb

req = "Select Prénom From Employés Where Prénom = 'Janet'"

Set Rst = MyDB.OpenRecordset(req)
Nb = Rst.RecordCount

If Nb > 0 Then
If MsgBox("Vous allez supprimer " & Nb & " enregistrements." _
& vbCrLf & "Désirez-vous continuer ?", vbYesNo, "Supprimer") = vbYes Then
Rst.Delete
End If
Else
MsgBox "Aucun enregistrement ne correspond à votre demande."
End If
Rst.Close: MyDB.Close
Set Rst = Nothing: Set MyDB = Nothing

End Sub
'----------------------------------


Salutations!



"isabelle" a écrit dans le message de news:
bonjour mes vous,

connaitriez vous une commande vba excel pour supprimer un enregistrement d'une table access.

vous remerciant par avance,
bisou
isabelle
Avatar
isabelle
merci ! Denis, c'est parfait.

isabelle


Bonjour Isabelle,

Voici une façon de procéder :

Tu dois ajouter la bibliothèque suivante à ton projet Excel :

"Microsoft DAO 3.6 Object Librairy"

Le principe de base ici est de créer une requête qui va regrouper dans le "RecordSet" obtenu, tous les enregistrements que
l'on veut supprimer. Tu peux reproduire cet exemple, il est fait en utilisant la base de données comptoir.mdb qui est sur le
CD d'installation de Microsoft office.

'----------------------------------
Sub SupprimerEnregistrements()

Dim MyDB As Database, Rst As Recordset
Dim Nb As Long

Set MyDB = OpenDatabase("C:ExcelComptoir.mdb", False, False, Access9)
'Set MyDB = currentdb

req = "Select Prénom From Employés Where Prénom = 'Janet'"

Set Rst = MyDB.OpenRecordset(req)
Nb = Rst.RecordCount

If Nb > 0 Then
If MsgBox("Vous allez supprimer " & Nb & " enregistrements." _
& vbCrLf & "Désirez-vous continuer ?", vbYesNo, "Supprimer") = vbYes Then
Rst.Delete
End If
Else
MsgBox "Aucun enregistrement ne correspond à votre demande."
End If
Rst.Close: MyDB.Close
Set Rst = Nothing: Set MyDB = Nothing

End Sub
'----------------------------------

Salutations!

"isabelle" a écrit dans le message de news:
bonjour mes vous,

connaitriez vous une commande vba excel pour supprimer un enregistrement d'une table access.

vous remerciant par avance,
bisou
isabelle


Avatar
isabelle
rebonjour Denis,

même si je détruit l'enregistrement de l'autre table dans la même macro ?

isabelle



Un petit supplément Isabelle,

Attention, si la table où tu veux supprimer des enregistrements à une liaison d'intégrité référentielle avec d'autres
enregistrements de d'autres tables....Cela peut causer problème !

Salutations!

"michdenis" a écrit dans le message de news:
Bonjour Isabelle,

Voici une façon de procéder :

Tu dois ajouter la bibliothèque suivante à ton projet Excel :

"Microsoft DAO 3.6 Object Librairy"

Le principe de base ici est de créer une requête qui va regrouper dans le "RecordSet" obtenu, tous les enregistrements que
l'on veut supprimer. Tu peux reproduire cet exemple, il est fait en utilisant la base de données comptoir.mdb qui est sur le
CD d'installation de Microsoft office.

'----------------------------------
Sub SupprimerEnregistrements()

Dim MyDB As Database, Rst As Recordset
Dim Nb As Long

Set MyDB = OpenDatabase("C:ExcelComptoir.mdb", False, False, Access9)
'Set MyDB = currentdb

req = "Select Prénom From Employés Where Prénom = 'Janet'"

Set Rst = MyDB.OpenRecordset(req)
Nb = Rst.RecordCount

If Nb > 0 Then
If MsgBox("Vous allez supprimer " & Nb & " enregistrements." _
& vbCrLf & "Désirez-vous continuer ?", vbYesNo, "Supprimer") = vbYes Then
Rst.Delete
End If
Else
MsgBox "Aucun enregistrement ne correspond à votre demande."
End If
Rst.Close: MyDB.Close
Set Rst = Nothing: Set MyDB = Nothing

End Sub
'----------------------------------

Salutations!

"isabelle" a écrit dans le message de news:
bonjour mes vous,

connaitriez vous une commande vba excel pour supprimer un enregistrement d'une table access.

vous remerciant par avance,
bisou
isabelle


Avatar
michdenis
Bonjour Isabelle,

"même si je détruit l'enregistrement de l'autre table dans la même macro"

Quand il y a une intégrité référentielle, il faut comme tu le suggères détruire premièrement les enregistrements "dépendants"
avant d'avoir accès pour une suppression à l'enregistrement source.


Salutations!



"isabelle" a écrit dans le message de news:
rebonjour Denis,

même si je détruit l'enregistrement de l'autre table dans la même macro ?

isabelle



Un petit supplément Isabelle,

Attention, si la table où tu veux supprimer des enregistrements à une liaison d'intégrité référentielle avec d'autres
enregistrements de d'autres tables....Cela peut causer problème !

Salutations!

"michdenis" a écrit dans le message de news:
Bonjour Isabelle,

Voici une façon de procéder :

Tu dois ajouter la bibliothèque suivante à ton projet Excel :

"Microsoft DAO 3.6 Object Librairy"

Le principe de base ici est de créer une requête qui va regrouper dans le "RecordSet" obtenu, tous les enregistrements que
l'on veut supprimer. Tu peux reproduire cet exemple, il est fait en utilisant la base de données comptoir.mdb qui est sur
le

CD d'installation de Microsoft office.

'----------------------------------
Sub SupprimerEnregistrements()

Dim MyDB As Database, Rst As Recordset
Dim Nb As Long

Set MyDB = OpenDatabase("C:ExcelComptoir.mdb", False, False, Access9)
'Set MyDB = currentdb

req = "Select Prénom From Employés Where Prénom = 'Janet'"

Set Rst = MyDB.OpenRecordset(req)
Nb = Rst.RecordCount

If Nb > 0 Then
If MsgBox("Vous allez supprimer " & Nb & " enregistrements." _
& vbCrLf & "Désirez-vous continuer ?", vbYesNo, "Supprimer") = vbYes Then
Rst.Delete
End If
Else
MsgBox "Aucun enregistrement ne correspond à votre demande."
End If
Rst.Close: MyDB.Close
Set Rst = Nothing: Set MyDB = Nothing

End Sub
'----------------------------------

Salutations!

"isabelle" a écrit dans le message de news:
bonjour mes vous,

connaitriez vous une commande vba excel pour supprimer un enregistrement d'une table access.

vous remerciant par avance,
bisou
isabelle


Avatar
isabelle
ok Denis,
alors si j'ai bien compris il faut détruire les enfants avant les parents. ;-)

isabelle (sarcastique)


Bonjour Isabelle,

"même si je détruit l'enregistrement de l'autre table dans la même macro"

Quand il y a une intégrité référentielle, il faut comme tu le suggères détruire premièrement les enregistrements "dépendants"
avant d'avoir accès pour une suppression à l'enregistrement source.

Salutations!

"isabelle" a écrit dans le message de news:
rebonjour Denis,

même si je détruit l'enregistrement de l'autre table dans la même macro ?

isabelle


Un petit supplément Isabelle,

Attention, si la table où tu veux supprimer des enregistrements à une liaison d'intégrité référentielle avec d'autres
enregistrements de d'autres tables....Cela peut causer problème !

Salutations!

"michdenis" a écrit dans le message de news:
Bonjour Isabelle,

Voici une façon de procéder :

Tu dois ajouter la bibliothèque suivante à ton projet Excel :

"Microsoft DAO 3.6 Object Librairy"

Le principe de base ici est de créer une requête qui va regrouper dans le "RecordSet" obtenu, tous les enregistrements que
l'on veut supprimer. Tu peux reproduire cet exemple, il est fait en utilisant la base de données comptoir.mdb qui est sur
le

CD d'installation de Microsoft office.

'----------------------------------
Sub SupprimerEnregistrements()

Dim MyDB As Database, Rst As Recordset
Dim Nb As Long

Set MyDB = OpenDatabase("C:ExcelComptoir.mdb", False, False, Access9)
'Set MyDB = currentdb

req = "Select Prénom From Employés Where Prénom = 'Janet'"

Set Rst = MyDB.OpenRecordset(req)
Nb = Rst.RecordCount

If Nb > 0 Then
If MsgBox("Vous allez supprimer " & Nb & " enregistrements." _
& vbCrLf & "Désirez-vous continuer ?", vbYesNo, "Supprimer") = vbYes Then
Rst.Delete
End If
Else
MsgBox "Aucun enregistrement ne correspond à votre demande."
End If
Rst.Close: MyDB.Close
Set Rst = Nothing: Set MyDB = Nothing

End Sub
'----------------------------------

Salutations!

"isabelle" a écrit dans le message de news:
bonjour mes vous,

connaitriez vous une commande vba excel pour supprimer un enregistrement d'une table access.

vous remerciant par avance,
bisou
isabelle