Erreur " un index ou une clé principale ne peut pas contenir....
Fermé
bithack
Messages postés129Date d'inscriptionmercredi 29 octobre 2014StatutMembreDernière intervention16 mars 2016
-
Modifié par bithack le 27/04/2015 à 09:12
Bonjour,
Voila actuellement je travail sur un petit programme en VBA sous Access. Débutant dans la programmation VBA, ne trouvant pas mon erreur sur la toile je m'en remet à vos mains d'experts.
Mon code a pour but de faire sortir une date par rapport a la date du système et les classer en trois groupe run1, run2 et run3. j'ai donc fais des boucles permettant de comparer les différentes dates.
j'ai deux erreurs :
La première est la suivante lorsque que la comparaison est bonne, il rentre dans la boucle pour inscrire dans la table et me met l'erreur suivante : "un index ou une clé principale ne peut pas contenir une valeur null. " pourtant j'ai une clef primaire dans ma table et qui n'est pas celle des dates.
La deuxième erreur est du code, dans ma table calendrier j'ai trois champs un run1, un run2 et un run3. Dans mon code ils se nomment rs1, rs2 et rs3.
Le probleme c'est qu'ils reste que sur la premiere ligne de mes trois champs mais ne passe pas au suivant. je n'ai pas de solution..
Voici mon code :
Sub typeR() Dim Jour As String Dim db As DAO.Database Dim rsdateres As DAO.Recordset Dim sSQL0 As String Dim rs1 As DAO.Recordset Dim sSQL1 As String Dim rs2 As DAO.Recordset Dim sSQL2 As String Dim rs3 As DAO.Recordset Dim sSQL3 As String Dim rs4 As DAO.Recordset Dim sSQL4 As String
Jour = date MsgBox Jour
Set db = CurrentDb
sSQL0 = "SELECT date_resil FROM Dossier " Set rsdateres = db.OpenRecordset(sSQL0, dbOpenDynaset, dbSeeChanges, dbPessimistic)
sSQL1 = "select Run1 FROM calendrier " Set rs1 = db.OpenRecordset(sSQL1, dbOpenDynaset, dbSeeChanges, dbPessimistic)
sSQL2 = "select Run2 FROM calendrier " Set rs2 = db.OpenRecordset(sSQL2, dbOpenDynaset, dbSeeChanges, dbPessimistic)
sSQL3 = "select Run3 FROM calendrier " Set rs3 = db.OpenRecordset(sSQL3, dbOpenDynaset, dbSeeChanges, dbPessimistic)
sSQL4 = "select run from Dossier" Set rs4 = db.OpenRecordset(sSQL4, dbOpenDynaset, dbSeeChanges, dbPessimistic) rsdateres.MoveFirst
rsdateres.MoveFirst Do Until rsdateres.EOF
If rsdateres!date_resil < Jour And rsdateres!date_resil < rs1!run1 Then With rs4 .AddNew rs4.Fields("run") = run1 rs4.Update End With
Else If rsdateres!date_resil < Jour And rsdateres!date_resil < rs2!run2 And rsdateres!date_resil > rs1!run1 Then With rs4 .AddNew rs4.Fields("run") = run1 rs4.Update End With
Else If rsdateres!date_resil < Jour And rsdateres!date_resil < rs3!run3 And rsdateres!date_resil > rs2!run2 Then With rs4 .AddNew rs4.Fields("run") = run1 rs4.Update End With
Else If rsdateres!date_resil < Jour And rsdateres!date_resil > rs3!run3 Then With rs4 .AddNew rs4.Fields("run") = run1 rs4.Update End With
End If End If End If End If rsdateres.MoveNext Loop
rsdateres.Close ' Fermeture du Recordset 'MsgBox
'l = rst.RecordCount End Sub
Merci de votre aide précieuse
A voir également:
Erreur " un index ou une clé principale ne peut pas contenir....