Erreur code

Le
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 ?
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
RaphK34
Le #6665041
Salut,
aprèsle :
Me.Numact = Me.Numact + 1
rajoute
Me.Refresh

à tester ...
--
@+ Raph.

--------------------------------------------
Merci de répondre sur le NG
Toutes remarques bienvenues !
--------------------------------------------
"Animatrix" 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 ?


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


"Animatrix" 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 ?


Thom
Le #6665991
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" 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 ?


Publicité
Poster une réponse
Anonyme