[ VBA - ACCESS] Relation Formulaire _ BD

Fermé
ShyKLow Messages postés 2 Date d'inscription mercredi 23 avril 2008 Statut Membre Dernière intervention 25 avril 2008 - 25 avril 2008 à 11:53
BartLogan Messages postés 10 Date d'inscription vendredi 17 juin 2005 Statut Membre Dernière intervention 1 mai 2008 - 29 avril 2008 à 21:46
Bonjour tout le monde,
J'ai crée des formulaires, sur ces formulaires je dosi inseré un code VBA, je ne suis qu'un débutant dans ce langage.
Je dois crée un code en vba, qui a la fonction de ne pas autoriser la suppression d'une danse si des cours sont enregistrés pour cette danse en question.
J'ai crée la requete Sql :
SELECT Count(Nom) AS CourDemander
FROM Cours
WHERE Cours.Nom = Code;
Ici code est egal au cours enregsitré.
Mon code actuel en VBA, permet de confirmer un enregistrement et de la rajouté dans la base de données... tout cela fonctionne tres bien, mais il faudrai dans le code VBA Ne pas autoriser la suppression d'une danse si des cours sont enregistrés pour cette danse.

Private Sub BT_AjoutDanse_Click()
'Ajout d'un nouveau cours à partir du nom saisi dans le formulaire

Dim req As String
Dim Code As String
Dim Nom
Dim Ok As Boolean
Dim Ajouter As Integer

Nom = Me.ZT_NouvDanse
'vérifier qu'un nom a bien été saisi
If Len(Nom) > 0 Then
'demander confirmation à l'utilisateur avant de procéder à l'enregistrement
'MsgBox est ici une FONCTION qui renvoie deux valeurs
'VBYes si l'utilisateur à cliqué sur OUI
'BVNo si l utilisateur a cliqué su NON
Ajouter = MsgBox("Voulez vous vraiment ajouter la danse " & Me.ZT_NouvDanse, vbYesNo, "Gestion des danses")
Else
MsgBox "Aucun nom de danse n'est saisi"
Ajouter = vbNo
End If

If Ajouter = vbYes Then
'Obtention d'un code pour la danse
'Utilisation de l afonction DemanderCode du module CodeCoursDanse
Code = DemanderCode(Nom)
'Construction de la requête d'insertion d'un nouveau cours
req = "insert into danse values ('" & Code & "', '" & Nom & "')"
CurrentDb.Execute (req)
End If
End Sub

Voila, :s j'ai vraiment besoin d'aide s'il vous plaît, Merci Beaucoup pour votre lecture... Bonne journée.

1 réponse

BartLogan Messages postés 10 Date d'inscription vendredi 17 juin 2005 Statut Membre Dernière intervention 1 mai 2008
29 avril 2008 à 21:46
Bonsoir ShyKLow,

Une solution consiste à écrire une fonction qui vous renvoie s'il existe au moins un cours enregistré pour la danse passée en paramètre.
Voici un exemple de ce que cela pourrait donner :

' === Début de code ===
public function PeutSupprimerDanse(byval strDanse as string) as boolean
Dim dbs as DAO.database
Dim rs as DAO.recordset

PeutSupprimerDanse = False

set dbs = CurrentDb()
set rs = dbs.openrecordset("SELECT * FROM CoursDanse WHERE CoursDanse.Danse=" & strDanse & ";", dbOpenSnapshot)

if rs.recordcount = 0 then PeutSupprimerDanse=True

set rs = nothing
set dbs = nothing
end function

public function Test()
if PeutSupprimerDanse("Valse") = True then Msgbox "Je peux supprimer cette danse."
end function

' === Fin de code ===
0