ok je vois pourkoi... dur la fin de journee...
Dim db As Database, rs1 As Recordset
Dim rs2 As Recordset
Dim stDocName As String
Dim FindRec As Boolean
' Selection de la base
Set db = CurrentDb
' Selection de la requete pour la booucle
Set rs1 = db.OpenRecordset("Select * from T_Emprunts" )
Set rs2 = db.OpenRecordset("Select * from T_Emprunts" )
FindRec = False
If rs1.EOF Then ' Test si la table est vide
MsgBox " Vous avez emprunté un soft1 "
Me.DateEmprunt = Date
Else ' La table n'est pas vide donc on recherche...
' Boucle sur le nombre d'enregistrements
Do While Not rs1.EOF
' Si le soft choisi exist dans la table
If Me.txt_numSoft = rs1.Fields("#NoSoft" ).Value Then
' Et que c'est la meme personne
If Forms![F_Personnes --- formulaire principal]![txt_NumPersonne] = rs1.Fields("#NoPersonne" ).Value Then
' On rend le soft...
MsgBox " Vous venez de rendre un soft, merci "
Me.DateRetour = Date
DoCmd.GoToRecord , , acNewRec
DoCmd.SetWarnings False
stDocName = "R_AjouterAHistorique"
DoCmd.OpenQuery stDocName, acViewNormal, acEdit
stDocName = "R_DeleteEmpruntRendu"
DoCmd.OpenQuery stDocName, acNormal, acEdit
DoCmd.SetWarnings True
FindRec = True
Exit Do
' Fin de la boucle
Else ' Soft trouver mais pas la meme personne
MsgBox " Le soft est déjà emprunté, veuillez en choisir un autre "
Me.Undo
CodeBar.SetFocus
FindRec = True
Exit Do
' On sort de la boucle... ca ne sert a rien de continuer...
End If
End If
' Prochain enregistrement
rs1.MoveNext
Loop
'Donc si on arrive ici c'est que soit on a parcourru tout la table sans le trouver... donc pas emprunter... ou deja emprunter ou rendu...
' Si on est a la fin du record...
If (rs1.EOF) And (Not FindRec) Then
' Cree un nouveau
DoCmd.GoToRecord , , acNewRec
MsgBox " Vous avez emprunté un soft2 "
Me.DateEmprunt = Date
' Sauve le recorde
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
End If
End If
' Libere les variables
Set rs1 = Nothing
Set db = Nothing
Message édité par k1200 le 01-05-2003 à 19:50:33