Automatisme d'ajout après vérification dans la BDD
Bonjour à tous,
Pour bien finir mon stage, j'aurais souhaiter faire en sorte que la dernière action manuelle qui me reste sur mon application soit automatisé.
Il s'agit de vérifier au démarrage du formulaire Menu si un champ comporte déjà des valeurs dans la BDD pour le mois en cours.
SI c'est le cas, ne rien faire et attendre le prochain mois, si ce n'est pas le cas, inviter l'utilisateur à les créer.
Cette invitation doit durer les 7 premier jours du mois.
J'avais écrit ceci mais je suis certain qu'il y à plein d'erreurs:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
|
Private Sub form_load()
' On donne l'activité à une zone fantôme
Call Me.txtDummy.SetFocus
Dim DateMin As Date
Dim DateMax As Date
Dim DateAjout As Date
Dim NombStat As Integer
' On va compter le nombre de lignes dans la table
Dim fld As DAO.Field
Dim rsc As DAO.Recordset
Dim bd As DAO.Database
Dim rvv As DAO.Recordset
Set bd = CurrentDb()
DateAjout = Now
DateMin = DateSerial(Year(Date), Month(Date), 1)
DateMax = DateSerial(Year(Date), Month(Date), 7)
' On constitue la requête qui choisi le champ à compter et à utiliser
Set rsc = bd.OpenRecordset("SELECT count(NumTypStat) FROM TypeStatistique ", dbOpenForwardOnly, dbReadOnly)
' On incrémente jusqu'à la valeur maximum
For Each fld In rsc.Fields
NombStat = fld.Value
Next
' On constitue la requête qui vérifie si les valeurs existent déjà
Set rvv = bd.OpenRecordset("SELECT DateDebutStat FROM Statistique WHERE DateDebutStat BETWEEN '" & DateMin & "' AND '" & DateMax & "'", dbReadOnly)
If rvv = "" Then
If MsgBox("Souhaitez vous ajouter les statistiques pour ce nouveau mois?", vbYesNo) = vbYes Then
' On ajoute les statistique en fonction du résultat du calcul
For i = 1 To NombStat
DoCmd.SetWarnings False
DoCmd.RunSQL "INSERT INTO Statistique (NumTypStat, DateDebutStat) VALUES ('" & i & "', '" & DateAjout & "')"
DoCmd.SetWarnings True
Next i
End If
End If
End Sub |
La 1er requête compte le nombre de NumTypStat dans ma table et retourne la valeur pour savoir combien il y à de insert into à faire par la suite.
Normalement cette requête fonctionne encore puisque je l'avais essayer avant.
Mon problème est la vérification des valeurs existantes pour la date.
Je cherche à savoir si dans ma table, il y a au moins un seul enregistrement avec pour valeur de DateDebutStat le moi et l'année en cours.
Si c'est le cas, ne rien demander mais si il n'y a pas la date correspondante, inviter à faire les insert into.
Si vous avez des solutions, merci d'avance.