Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Erreur code

3 réponses
Avatar
Animatrix
Salut à tous !!

J'ai un problème avec mon code que je n'arrive pas à résoudre.
En effet, il réalise toujours une condition, même si elle est fausse ! (ex :
3 < 2 !)

Voila mon code:

Private Sub Form_Load()

Me.Numact = "1"

End Sub


Private Sub Valider_Click()

Dim db As Database
Dim dt As Recordset
Dim dt2 As Recordset
Dim dt3 As Recordset
Dim msg As String
Dim Ret As Integer

Set db = CurrentDb
Set dt = db.OpenRecordset("T_Analyse", dbOpenTable)
Set dt2 = db.OpenRecordset("T_Prelevement", dbOpenTable)

If (Me.Nombrean = "") Or IsNull(Me.Nombrean) Or (Me.Nombrean Like "[!0-9]")
Then
MsgBox ("Le nombre d'analyse(s) est incorrect")

ElseIf (Me.Noma = "") Or IsNull(Me.Noma) Then
MsgBox ("Le nom de l'analyse est incorrect")

Else
msg = MsgBox("Etes-vous sûr de vouloir ajouter " & Me.Noma & " ?",
vbYesNo)
If msg = vbYes Then
dt.AddNew
dt!Nom = Me.Noma
dt!Date = Date
dt!Num_ordonnance = Me.Numord
dt!Etat = "Attente résultats"

dt2.AddNew
dt2!N° = dt!N°
dt2!Nom = "Prise de sang"
dt2!Date = Date
dt2!Num_ordonnance = Me.Numord
dt2.Update
dt2.Close
dt.Update
dt.Close

Response = acDataErrAdded
Me.Numact = Me.Numact + 1

MsgBox (Me.Nombrean)

If Me.Numact <= Me.Nombrean Then

' !!! Le problème est ici, il m'évalue toujours cette condition et ne passe
jamais au reste. Pourtant Numact est incrémenté !

MsgBox ("Merci d'indiquer le nom de la " & Me.Numact & "ème
analyse")
ReinitNom
Else
Me.Numact = DLookup("N°", "Numanalyse")
DoCmd.OpenForm "Ajouter_Ordonnance4", acNormal, , ,
acFormEdit, acWindowNormal
DoCmd.Close acForm, "Ajouter_Ordonnance3"
End If

Else

Response = acDataErrDisplay
If Me.Nombrean > 1 Then
MsgBox ("Les analyses n'ont pas été ajoutées")
Else
MsgBox ("L'analyse n'a pas été ajoutée")
End If

End If


End If

End Sub


Private Sub ReinitNom()

Me.Noma = ""

End Sub

Savez-vous d'où peut provenir l'erreur ?

3 réponses

Avatar
RaphK34
Salut,
aprèsle :
Me.Numact = Me.Numact + 1
rajoute
Me.Refresh

à tester ...
--
@+ Raph.

--------------------------------------------
Merci de répondre sur le NG
Toutes remarques bienvenues !
--------------------------------------------
"Animatrix" a écrit dans le message de
news:
Salut à tous !!

J'ai un problème avec mon code que je n'arrive pas à résoudre.
En effet, il réalise toujours une condition, même si elle est fausse ! (ex
:
3 < 2 !)

Voila mon code:

Private Sub Form_Load()

Me.Numact = "1"

End Sub


Private Sub Valider_Click()

Dim db As Database
Dim dt As Recordset
Dim dt2 As Recordset
Dim dt3 As Recordset
Dim msg As String
Dim Ret As Integer

Set db = CurrentDb
Set dt = db.OpenRecordset("T_Analyse", dbOpenTable)
Set dt2 = db.OpenRecordset("T_Prelevement", dbOpenTable)

If (Me.Nombrean = "") Or IsNull(Me.Nombrean) Or (Me.Nombrean Like
"[!0-9]")
Then
MsgBox ("Le nombre d'analyse(s) est incorrect")

ElseIf (Me.Noma = "") Or IsNull(Me.Noma) Then
MsgBox ("Le nom de l'analyse est incorrect")

Else
msg = MsgBox("Etes-vous sûr de vouloir ajouter " & Me.Noma & " ?",
vbYesNo)
If msg = vbYes Then
dt.AddNew
dt!Nom = Me.Noma
dt!Date = Date
dt!Num_ordonnance = Me.Numord
dt!Etat = "Attente résultats"

dt2.AddNew
dt2!N° = dt!N°
dt2!Nom = "Prise de sang"
dt2!Date = Date
dt2!Num_ordonnance = Me.Numord
dt2.Update
dt2.Close
dt.Update
dt.Close

Response = acDataErrAdded
Me.Numact = Me.Numact + 1

MsgBox (Me.Nombrean)

If Me.Numact <= Me.Nombrean Then

' !!! Le problème est ici, il m'évalue toujours cette condition et ne
passe
jamais au reste. Pourtant Numact est incrémenté !

MsgBox ("Merci d'indiquer le nom de la " & Me.Numact & "ème
analyse")
ReinitNom
Else
Me.Numact = DLookup("N°", "Numanalyse")
DoCmd.OpenForm "Ajouter_Ordonnance4", acNormal, , ,
acFormEdit, acWindowNormal
DoCmd.Close acForm, "Ajouter_Ordonnance3"
End If

Else

Response = acDataErrDisplay
If Me.Nombrean > 1 Then
MsgBox ("Les analyses n'ont pas été ajoutées")
Else
MsgBox ("L'analyse n'a pas été ajoutée")
End If

End If


End If

End Sub


Private Sub ReinitNom()

Me.Noma = ""

End Sub

Savez-vous d'où peut provenir l'erreur ?


Avatar
brouhaha
il y a peut être des valeurs nulles qui trainent, ---> If nz(Me.Numact,0) <=
nz(Me.Nombrean,0) Then


"Animatrix" a écrit dans le message de
news:
Salut à tous !!

J'ai un problème avec mon code que je n'arrive pas à résoudre.
En effet, il réalise toujours une condition, même si elle est fausse ! (ex
:
3 < 2 !)

Voila mon code:

Private Sub Form_Load()

Me.Numact = "1"

End Sub


Private Sub Valider_Click()

Dim db As Database
Dim dt As Recordset
Dim dt2 As Recordset
Dim dt3 As Recordset
Dim msg As String
Dim Ret As Integer

Set db = CurrentDb
Set dt = db.OpenRecordset("T_Analyse", dbOpenTable)
Set dt2 = db.OpenRecordset("T_Prelevement", dbOpenTable)

If (Me.Nombrean = "") Or IsNull(Me.Nombrean) Or (Me.Nombrean Like
"[!0-9]")
Then
MsgBox ("Le nombre d'analyse(s) est incorrect")

ElseIf (Me.Noma = "") Or IsNull(Me.Noma) Then
MsgBox ("Le nom de l'analyse est incorrect")

Else
msg = MsgBox("Etes-vous sûr de vouloir ajouter " & Me.Noma & " ?",
vbYesNo)
If msg = vbYes Then
dt.AddNew
dt!Nom = Me.Noma
dt!Date = Date
dt!Num_ordonnance = Me.Numord
dt!Etat = "Attente résultats"

dt2.AddNew
dt2!N° = dt!N°
dt2!Nom = "Prise de sang"
dt2!Date = Date
dt2!Num_ordonnance = Me.Numord
dt2.Update
dt2.Close
dt.Update
dt.Close

Response = acDataErrAdded
Me.Numact = Me.Numact + 1

MsgBox (Me.Nombrean)

If Me.Numact <= Me.Nombrean Then

' !!! Le problème est ici, il m'évalue toujours cette condition et ne
passe
jamais au reste. Pourtant Numact est incrémenté !

MsgBox ("Merci d'indiquer le nom de la " & Me.Numact & "ème
analyse")
ReinitNom
Else
Me.Numact = DLookup("N°", "Numanalyse")
DoCmd.OpenForm "Ajouter_Ordonnance4", acNormal, , ,
acFormEdit, acWindowNormal
DoCmd.Close acForm, "Ajouter_Ordonnance3"
End If

Else

Response = acDataErrDisplay
If Me.Nombrean > 1 Then
MsgBox ("Les analyses n'ont pas été ajoutées")
Else
MsgBox ("L'analyse n'a pas été ajoutée")
End If

End If


End If

End Sub


Private Sub ReinitNom()

Me.Noma = ""

End Sub

Savez-vous d'où peut provenir l'erreur ?


Avatar
Thom
Bonjour,

Comme visiblement tu utilise une zone de texte pour stocker tes valeurs, je
pense que ta comparaison se fait sur des chaines de caractères. Ainsi tu
compare les valeur ASCI des caractères, ce qui n'est pas juste.

Je pense que la ligne de code suivante à plus de chance de fonctionner
If cint(Me.Numact) <= cint(Me.Nombrean) Then [...]

bonne journée,
Thom

"Animatrix" a écrit dans le message de
news:
Salut à tous !!

J'ai un problème avec mon code que je n'arrive pas à résoudre.
En effet, il réalise toujours une condition, même si elle est fausse ! (ex
:
3 < 2 !)

Voila mon code:

Private Sub Form_Load()

Me.Numact = "1"

End Sub


Private Sub Valider_Click()

Dim db As Database
Dim dt As Recordset
Dim dt2 As Recordset
Dim dt3 As Recordset
Dim msg As String
Dim Ret As Integer

Set db = CurrentDb
Set dt = db.OpenRecordset("T_Analyse", dbOpenTable)
Set dt2 = db.OpenRecordset("T_Prelevement", dbOpenTable)

If (Me.Nombrean = "") Or IsNull(Me.Nombrean) Or (Me.Nombrean Like
"[!0-9]")
Then
MsgBox ("Le nombre d'analyse(s) est incorrect")

ElseIf (Me.Noma = "") Or IsNull(Me.Noma) Then
MsgBox ("Le nom de l'analyse est incorrect")

Else
msg = MsgBox("Etes-vous sûr de vouloir ajouter " & Me.Noma & " ?",
vbYesNo)
If msg = vbYes Then
dt.AddNew
dt!Nom = Me.Noma
dt!Date = Date
dt!Num_ordonnance = Me.Numord
dt!Etat = "Attente résultats"

dt2.AddNew
dt2!N° = dt!N°
dt2!Nom = "Prise de sang"
dt2!Date = Date
dt2!Num_ordonnance = Me.Numord
dt2.Update
dt2.Close
dt.Update
dt.Close

Response = acDataErrAdded
Me.Numact = Me.Numact + 1

MsgBox (Me.Nombrean)

If Me.Numact <= Me.Nombrean Then

' !!! Le problème est ici, il m'évalue toujours cette condition et ne
passe
jamais au reste. Pourtant Numact est incrémenté !

MsgBox ("Merci d'indiquer le nom de la " & Me.Numact & "ème
analyse")
ReinitNom
Else
Me.Numact = DLookup("N°", "Numanalyse")
DoCmd.OpenForm "Ajouter_Ordonnance4", acNormal, , ,
acFormEdit, acWindowNormal
DoCmd.Close acForm, "Ajouter_Ordonnance3"
End If

Else

Response = acDataErrDisplay
If Me.Nombrean > 1 Then
MsgBox ("Les analyses n'ont pas été ajoutées")
Else
MsgBox ("L'analyse n'a pas été ajoutée")
End If

End If


End If

End Sub


Private Sub ReinitNom()

Me.Noma = ""

End Sub

Savez-vous d'où peut provenir l'erreur ?