Vba sur access

Fermé
pixoune Messages postés 2 Date d'inscription mercredi 28 mai 2014 Statut Membre Dernière intervention 28 mai 2014 - 28 mai 2014 à 08:54
 pixoune - 29 mai 2014 à 10:29
Bonjour
Je dois faire un projet sur access et utiliser vba.
Mais certaines formules ne fonctionnent pas et je ne comprends pas ce qui n'est pas correct.
Essentiellement pour les suppressions.
Merci de votre aide

3 réponses

JeanGlaude2 Messages postés 8 Date d'inscription mercredi 28 mai 2014 Statut Membre Dernière intervention 28 mai 2014 21
28 mai 2014 à 08:58
Bonjour,

Peut-tu envoyer le code qui ne fonctionne pas ?

Si ce que tu recherche et de supprimer un enregistrement je te propose cette fonction :

Public Function Suprimmer()
If (MsgBox("Voulez-vous vraiment supprimer à tout jamais cet enregistrement?", vbYesNo + vbCritical, "Prenez la bonne décision")) = vbYes Then
DoCmd.SetWarnings False
DoCmd.RunCommand acCmdDeleteRecord
DoCmd.SetWarnings True
Else

End If

End Function
1
pixoune Messages postés 2 Date d'inscription mercredi 28 mai 2014 Statut Membre Dernière intervention 28 mai 2014
28 mai 2014 à 13:53
supprimer un motif:


Option Compare Database
Option Explicit
' Les variables suivantes sont utilisables dans tous les sub et function de ce module



Dim base As DAO.Database
Dim resultatSql As DAO.Recordset
Dim requeteSql As String
Sub Initbase()
Set base = CurrentDb()

End Sub
Function SuppressionMotif(LibelleMotif As Integer) As Integer

' Suppression d'un Motif
Call Initbase
SuppressionMotif = 0
requeteSql = "Delete From MOTIF (LibelleMotif) values "
requeteSql = requeteSql & "('" & LibelleMotif & "');"
base.Execute (requeteSql)
SupprimerMotif = base.RecordsAffected ' Renvoie le nb d'enregistrements modifiés
Call CloseBase
End Function


supprimer un prof:
Option Compare Database
Option Explicit
' Les variables suivantes sont utilisables dans tous les sub et function de ce module
Dim base As DAO.Database
Dim resultatSql As DAO.Recordset
Dim requeteSql As String

Sub Initbase()
Set base = CurrentDb()
End Sub

Function SuppressionProf(Nom As String, Prenom As String)

' Suppression d'un professeur
Call Initbase
SuppressionProf = 0

requeteSql = "Delete From Professeur (nom, Prenom) values "
requeteSql = requeteSql & "('" & Nom & "" & Prenom & "');"
base.Execute (requeteSql)
SuppressionProf = base.RecordsAffected 'Renvoie le nb d'enregistrements modifiés
Call CloseBase


End Function
0
supprimer un motif:


Option Compare Database
Option Explicit
' Les variables suivantes sont utilisables dans tous les sub et function de ce module



Dim base As DAO.Database
Dim resultatSql As DAO.Recordset
Dim requeteSql As String
Sub Initbase()
Set base = CurrentDb()

End Sub
Function SuppressionMotif(LibelleMotif As Integer) As Integer

' Suppression d'un Motif
Call Initbase
SuppressionMotif = 0
requeteSql = "Delete From MOTIF (LibelleMotif) values "
requeteSql = requeteSql & "('" & LibelleMotif & "');"
base.Execute (requeteSql)
SupprimerMotif = base.RecordsAffected ' Renvoie le nb d'enregistrements modifiés
Call CloseBase
End Function


supprimer un prof:
Option Compare Database
Option Explicit
' Les variables suivantes sont utilisables dans tous les sub et function de ce module
Dim base As DAO.Database
Dim resultatSql As DAO.Recordset
Dim requeteSql As String

Sub Initbase()
Set base = CurrentDb()
End Sub

Function SuppressionProf(Nom As String, Prenom As String)

' Suppression d'un professeur
Call Initbase
SuppressionProf = 0

requeteSql = "Delete From Professeur (nom, Prenom) values "
requeteSql = requeteSql & "('" & Nom & "" & Prenom & "');"
base.Execute (requeteSql)
SuppressionProf = base.RecordsAffected 'Renvoie le nb d'enregistrements modifiés
Call CloseBase


End Function
0
benol3 Messages postés 569 Date d'inscription lundi 29 juillet 2013 Statut Membre Dernière intervention 7 mai 2015 87
29 mai 2014 à 00:53
Slt,

As tu testé tes requêtes sql dans l'éditeur de requête ?

Il me semble que la syntaxe d'un DELETE en access est :

DELETE FROM tatable WHERE nomchamp = mavariable


Par exemple, remplace

requeteSql = "Delete From Professeur (nom, Prenom) values "
requeteSql = requeteSql & "('" & Nom & "" & Prenom & "');"

par

requeteSql = "Delete From Professeur (nom, Prenom) where "
requeteSql = requeteSql & "nom='" & Nom & "' and prenom='" & Prenom & "';"


J'ai pas Access sous la main. donc y peut avoir des erreurs dans le code que je t'ai donné....
0
Bonjour
merci de ton intervention mais ça ne fonctionne pas
0
Bonsooir,
Excusez-moi de m'introduire dans votre échange alors que je n'ai pas suivi depuis le début. Mais, est-ce que c'est une très bonne idée de supprimer des enregistrements sur une liste? Est-ce vraiment indispensable de procéder ainsi? Ne vaudrait-il pas 100 fois mieux avoir un champ de type Oui/Non pour permettre de sélectionner les présents lorsqu'on n'a besoin que de ceux là pour le travail que tu as à faire.
Il faut toujours être très prudent quand on supprime des enregistrements, on ne sait jamais si on n'en aura pas besoin plus tard à un moment ou un autre. Surtout que que se casser la tête pour écrire un code VBA pour ça, on peut imaginer que tu vas t'en servir souvent.
Bonne suite.
0