Bonjour a tous, dans une table j'entre un numéro de billet (qui ne se
répètera jamais) avec des données reliés à ce billet. Si j'entre à nouveau
ce billet dans ma table je me suis fait une procédure su r l'événement
before_update m'indiquant que ce billet est déja présent et que je ne peux
l'ajouter, cependant j'aimerais, après le message, me pointer directement sur
ce billet de ma table, comment m'y prendre? avec findfirst j'ai essayer cette
procédure mais qui ne fonctionne pas :
Private Sub no_bordereau_BeforeUpdate(Cancel As Integer)
Dim var_bordereau As String
Dim rs As Object
var_bordereau = Me.no_bordereau.Value
If DCount("*", "T_retour_materiel", "no_bordereau='" & Me.no_bordereau &
"'") > 0 Then
MsgBox "Le bordereau " & [var_bordereau] & " existe déjà. Appuyer
sur OK et sur ESC"
Cancel = True
Set rs = Me.Recordset
rs.FindFirst "[id] = " & Str(Me![id])
Me.Bookmark = rs.Bookmark
End If
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
3stone
Salut,
"macgiver" | Bonjour a tous, dans une table j'entre un numéro de billet (qui ne se | répètera jamais) avec des données reliés à ce billet. Si j'entre à nouveau | ce billet dans ma table je me suis fait une procédure su r l'événement | before_update m'indiquant que ce billet est déja présent et que je ne peux | l'ajouter, cependant j'aimerais, après le message, me pointer directement sur | ce billet de ma table, comment m'y prendre? avec findfirst j'ai essayer cette | procédure mais qui ne fonctionne pas : |
Essaies :
Private Sub no_bordereau_BeforeUpdate(Cancel As Integer) Dim var_bordereau As String Dim rs As Object Dim Pk as long
var_bordereau = Me.no_bordereau.Value If DCount("*", "T_retour_materiel", "no_bordereau='" & Me.no_bordereau & "'") > 0 Then MsgBox "Le bordereau " & [var_bordereau] & " existe déjà. Appuyer sur OK et sur ESC" Cancel = True Pk = Me.ID Me.Undo Set rs = Me.RecordsetClone rs.FindFirst "[id] = " & Pk Me.Bookmark = rs.Bookmark Set rs = Nothing End If
"macgiver"
| Bonjour a tous, dans une table j'entre un numéro de billet (qui ne se
| répètera jamais) avec des données reliés à ce billet. Si j'entre à nouveau
| ce billet dans ma table je me suis fait une procédure su r l'événement
| before_update m'indiquant que ce billet est déja présent et que je ne peux
| l'ajouter, cependant j'aimerais, après le message, me pointer directement sur
| ce billet de ma table, comment m'y prendre? avec findfirst j'ai essayer cette
| procédure mais qui ne fonctionne pas :
|
Essaies :
Private Sub no_bordereau_BeforeUpdate(Cancel As Integer)
Dim var_bordereau As String
Dim rs As Object
Dim Pk as long
var_bordereau = Me.no_bordereau.Value
If DCount("*", "T_retour_materiel", "no_bordereau='" & Me.no_bordereau & "'") > 0 Then
MsgBox "Le bordereau " & [var_bordereau] & " existe déjà. Appuyer sur OK et sur ESC"
Cancel = True
Pk = Me.ID
Me.Undo
Set rs = Me.RecordsetClone
rs.FindFirst "[id] = " & Pk
Me.Bookmark = rs.Bookmark
Set rs = Nothing
End If
"macgiver" | Bonjour a tous, dans une table j'entre un numéro de billet (qui ne se | répètera jamais) avec des données reliés à ce billet. Si j'entre à nouveau | ce billet dans ma table je me suis fait une procédure su r l'événement | before_update m'indiquant que ce billet est déja présent et que je ne peux | l'ajouter, cependant j'aimerais, après le message, me pointer directement sur | ce billet de ma table, comment m'y prendre? avec findfirst j'ai essayer cette | procédure mais qui ne fonctionne pas : |
Essaies :
Private Sub no_bordereau_BeforeUpdate(Cancel As Integer) Dim var_bordereau As String Dim rs As Object Dim Pk as long
var_bordereau = Me.no_bordereau.Value If DCount("*", "T_retour_materiel", "no_bordereau='" & Me.no_bordereau & "'") > 0 Then MsgBox "Le bordereau " & [var_bordereau] & " existe déjà. Appuyer sur OK et sur ESC" Cancel = True Pk = Me.ID Me.Undo Set rs = Me.RecordsetClone rs.FindFirst "[id] = " & Pk Me.Bookmark = rs.Bookmark Set rs = Nothing End If
Bonjour, MacGiver Tu fais ton findfirst sur "id", il faudrait plutôt le faire sur "no_bordereau" avec un id différent: rs.FindFirst "[no_bordereau]=" & Str(Me![no_bordereau]) & " AND [id] <> " & Str(Me![id]) Par ailleurs, je ne ferai pas le test sur BeforeUpdate: comme tu annules l'événement, le fait de changer d'enregistrement courant va valider ta saisie malgré tout ou, pire, faire planter le truc, j'hésite. A toi de nous dire ! ;-) -- Bonne continuation ------------------------------------------------------------------------------------------- http://www.mpfa.info : c'est bonheur pour ton ordinateur ! -------------------------------------------------------------------------------------------
Bonjour a tous, dans une table j'entre un numéro de billet (qui ne se répètera jamais) avec des données reliés à ce billet. Si j'entre à nouveau ce billet dans ma table je me suis fait une procédure su r l'événement before_update m'indiquant que ce billet est déja présent et que je ne peux l'ajouter, cependant j'aimerais, après le message, me pointer directement sur ce billet de ma table, comment m'y prendre? avec findfirst j'ai essayer cette procédure mais qui ne fonctionne pas :
Private Sub no_bordereau_BeforeUpdate(Cancel As Integer) Dim var_bordereau As String Dim rs As Object
var_bordereau = Me.no_bordereau.Value If DCount("*", "T_retour_materiel", "no_bordereau='" & Me.no_bordereau & "'") > 0 Then MsgBox "Le bordereau " & [var_bordereau] & " existe déjà. Appuyer sur OK et sur ESC" Cancel = True Set rs = Me.Recordset rs.FindFirst "[id] = " & Str(Me![id]) Me.Bookmark = rs.Bookmark End If
End Sub
Bonjour, MacGiver
Tu fais ton findfirst sur "id", il faudrait plutôt le faire sur
"no_bordereau" avec un id différent:
rs.FindFirst "[no_bordereau]=" & Str(Me![no_bordereau]) & " AND [id] <>
" & Str(Me![id])
Par ailleurs, je ne ferai pas le test sur BeforeUpdate: comme tu annules
l'événement, le fait de changer d'enregistrement courant va valider ta
saisie malgré tout ou, pire, faire planter le truc, j'hésite.
A toi de nous dire ! ;-)
--
Bonne continuation
-------------------------------------------------------------------------------------------
http://www.mpfa.info : c'est bonheur pour ton ordinateur !
-------------------------------------------------------------------------------------------
Bonjour a tous, dans une table j'entre un numéro de billet (qui ne se
répètera jamais) avec des données reliés à ce billet. Si j'entre à
nouveau
ce billet dans ma table je me suis fait une procédure su r l'événement
before_update m'indiquant que ce billet est déja présent et que je ne peux
l'ajouter, cependant j'aimerais, après le message, me pointer directement
sur
ce billet de ma table, comment m'y prendre? avec findfirst j'ai essayer
cette
procédure mais qui ne fonctionne pas :
Private Sub no_bordereau_BeforeUpdate(Cancel As Integer)
Dim var_bordereau As String
Dim rs As Object
var_bordereau = Me.no_bordereau.Value
If DCount("*", "T_retour_materiel", "no_bordereau='" & Me.no_bordereau &
"'") > 0 Then
MsgBox "Le bordereau " & [var_bordereau] & " existe déjà. Appuyer
sur OK et sur ESC"
Cancel = True
Set rs = Me.Recordset
rs.FindFirst "[id] = " & Str(Me![id])
Me.Bookmark = rs.Bookmark
End If
Bonjour, MacGiver Tu fais ton findfirst sur "id", il faudrait plutôt le faire sur "no_bordereau" avec un id différent: rs.FindFirst "[no_bordereau]=" & Str(Me![no_bordereau]) & " AND [id] <> " & Str(Me![id]) Par ailleurs, je ne ferai pas le test sur BeforeUpdate: comme tu annules l'événement, le fait de changer d'enregistrement courant va valider ta saisie malgré tout ou, pire, faire planter le truc, j'hésite. A toi de nous dire ! ;-) -- Bonne continuation ------------------------------------------------------------------------------------------- http://www.mpfa.info : c'est bonheur pour ton ordinateur ! -------------------------------------------------------------------------------------------
Bonjour a tous, dans une table j'entre un numéro de billet (qui ne se répètera jamais) avec des données reliés à ce billet. Si j'entre à nouveau ce billet dans ma table je me suis fait une procédure su r l'événement before_update m'indiquant que ce billet est déja présent et que je ne peux l'ajouter, cependant j'aimerais, après le message, me pointer directement sur ce billet de ma table, comment m'y prendre? avec findfirst j'ai essayer cette procédure mais qui ne fonctionne pas :
Private Sub no_bordereau_BeforeUpdate(Cancel As Integer) Dim var_bordereau As String Dim rs As Object
var_bordereau = Me.no_bordereau.Value If DCount("*", "T_retour_materiel", "no_bordereau='" & Me.no_bordereau & "'") > 0 Then MsgBox "Le bordereau " & [var_bordereau] & " existe déjà. Appuyer sur OK et sur ESC" Cancel = True Set rs = Me.Recordset rs.FindFirst "[id] = " & Str(Me![id]) Me.Bookmark = rs.Bookmark End If
End Sub
macgiver
Effectivement ça plante ma base de données. Comment m'y prendre pour remédier à ce problème?
merci
Bonjour, MacGiver Tu fais ton findfirst sur "id", il faudrait plutôt le faire sur "no_bordereau" avec un id différent: rs.FindFirst "[no_bordereau]=" & Str(Me![no_bordereau]) & " AND [id] <> " & Str(Me![id]) Par ailleurs, je ne ferai pas le test sur BeforeUpdate: comme tu annules l'événement, le fait de changer d'enregistrement courant va valider ta saisie malgré tout ou, pire, faire planter le truc, j'hésite. A toi de nous dire ! ;-) -- Bonne continuation ------------------------------------------------------------------------------------------- http://www.mpfa.info : c'est bonheur pour ton ordinateur ! -------------------------------------------------------------------------------------------
Bonjour a tous, dans une table j'entre un numéro de billet (qui ne se répètera jamais) avec des données reliés à ce billet. Si j'entre à nouveau ce billet dans ma table je me suis fait une procédure su r l'événement before_update m'indiquant que ce billet est déja présent et que je ne peux l'ajouter, cependant j'aimerais, après le message, me pointer directement sur ce billet de ma table, comment m'y prendre? avec findfirst j'ai essayer cette procédure mais qui ne fonctionne pas :
Private Sub no_bordereau_BeforeUpdate(Cancel As Integer) Dim var_bordereau As String Dim rs As Object
var_bordereau = Me.no_bordereau.Value If DCount("*", "T_retour_materiel", "no_bordereau='" & Me.no_bordereau & "'") > 0 Then MsgBox "Le bordereau " & [var_bordereau] & " existe déjà. Appuyer sur OK et sur ESC" Cancel = True Set rs = Me.Recordset rs.FindFirst "[id] = " & Str(Me![id]) Me.Bookmark = rs.Bookmark End If
End Sub
Effectivement ça plante ma base de données. Comment m'y prendre pour remédier
à ce problème?
merci
Bonjour, MacGiver
Tu fais ton findfirst sur "id", il faudrait plutôt le faire sur
"no_bordereau" avec un id différent:
rs.FindFirst "[no_bordereau]=" & Str(Me![no_bordereau]) & " AND [id] <>
" & Str(Me![id])
Par ailleurs, je ne ferai pas le test sur BeforeUpdate: comme tu annules
l'événement, le fait de changer d'enregistrement courant va valider ta
saisie malgré tout ou, pire, faire planter le truc, j'hésite.
A toi de nous dire ! ;-)
--
Bonne continuation
-------------------------------------------------------------------------------------------
http://www.mpfa.info : c'est bonheur pour ton ordinateur !
-------------------------------------------------------------------------------------------
Bonjour a tous, dans une table j'entre un numéro de billet (qui ne se
répètera jamais) avec des données reliés à ce billet. Si j'entre à
nouveau
ce billet dans ma table je me suis fait une procédure su r l'événement
before_update m'indiquant que ce billet est déja présent et que je ne peux
l'ajouter, cependant j'aimerais, après le message, me pointer directement
sur
ce billet de ma table, comment m'y prendre? avec findfirst j'ai essayer
cette
procédure mais qui ne fonctionne pas :
Private Sub no_bordereau_BeforeUpdate(Cancel As Integer)
Dim var_bordereau As String
Dim rs As Object
var_bordereau = Me.no_bordereau.Value
If DCount("*", "T_retour_materiel", "no_bordereau='" & Me.no_bordereau &
"'") > 0 Then
MsgBox "Le bordereau " & [var_bordereau] & " existe déjà. Appuyer
sur OK et sur ESC"
Cancel = True
Set rs = Me.Recordset
rs.FindFirst "[id] = " & Str(Me![id])
Me.Bookmark = rs.Bookmark
End If
Effectivement ça plante ma base de données. Comment m'y prendre pour remédier à ce problème?
merci
Bonjour, MacGiver Tu fais ton findfirst sur "id", il faudrait plutôt le faire sur "no_bordereau" avec un id différent: rs.FindFirst "[no_bordereau]=" & Str(Me![no_bordereau]) & " AND [id] <> " & Str(Me![id]) Par ailleurs, je ne ferai pas le test sur BeforeUpdate: comme tu annules l'événement, le fait de changer d'enregistrement courant va valider ta saisie malgré tout ou, pire, faire planter le truc, j'hésite. A toi de nous dire ! ;-) -- Bonne continuation ------------------------------------------------------------------------------------------- http://www.mpfa.info : c'est bonheur pour ton ordinateur ! -------------------------------------------------------------------------------------------
Bonjour a tous, dans une table j'entre un numéro de billet (qui ne se répètera jamais) avec des données reliés à ce billet. Si j'entre à nouveau ce billet dans ma table je me suis fait une procédure su r l'événement before_update m'indiquant que ce billet est déja présent et que je ne peux l'ajouter, cependant j'aimerais, après le message, me pointer directement sur ce billet de ma table, comment m'y prendre? avec findfirst j'ai essayer cette procédure mais qui ne fonctionne pas :
Private Sub no_bordereau_BeforeUpdate(Cancel As Integer) Dim var_bordereau As String Dim rs As Object
var_bordereau = Me.no_bordereau.Value If DCount("*", "T_retour_materiel", "no_bordereau='" & Me.no_bordereau & "'") > 0 Then MsgBox "Le bordereau " & [var_bordereau] & " existe déjà. Appuyer sur OK et sur ESC" Cancel = True Set rs = Me.Recordset rs.FindFirst "[id] = " & Str(Me![id]) Me.Bookmark = rs.Bookmark End If
End Sub
Gilles MOUGNOZ
Re, Je ferai la saisie du numéro dans un contrôle indépendant. S'il existe, tu te places dessus avec le code précédent, sinon, tu te places sur un enregistrement vierge dont tu rempli le numéro avec ce que tu as saisie dans le contrôle indépendant. C'est juste une idée vite faite... -- Bonne continuation ------------------------------------------------------------------------------------------- http://www.mpfa.info : c'est bonheur pour ton ordinateur ! -------------------------------------------------------------------------------------------
Effectivement ça plante ma base de données. Comment m'y prendre pour remédier à ce problème?
merci
Bonjour, MacGiver Tu fais ton findfirst sur "id", il faudrait plutôt le faire sur "no_bordereau" avec un id différent: rs.FindFirst "[no_bordereau]=" & Str(Me![no_bordereau]) & " AND [id] <> " & Str(Me![id]) Par ailleurs, je ne ferai pas le test sur BeforeUpdate: comme tu annules l'événement, le fait de changer d'enregistrement courant va valider ta saisie malgré tout ou, pire, faire planter le truc, j'hésite. A toi de nous dire ! ;-) -- Bonne continuation ------------------------------------------------------------------------------------------- http://www.mpfa.info : c'est bonheur pour ton ordinateur ! -------------------------------------------------------------------------------------------
Bonjour a tous, dans une table j'entre un numéro de billet (qui ne se répètera jamais) avec des données reliés à ce billet. Si j'entre à nouveau ce billet dans ma table je me suis fait une procédure su r l'événement before_update m'indiquant que ce billet est déja présent et que je ne peux l'ajouter, cependant j'aimerais, après le message, me pointer directement sur ce billet de ma table, comment m'y prendre? avec findfirst j'ai essayer cette procédure mais qui ne fonctionne pas :
Private Sub no_bordereau_BeforeUpdate(Cancel As Integer) Dim var_bordereau As String Dim rs As Object
var_bordereau = Me.no_bordereau.Value If DCount("*", "T_retour_materiel", "no_bordereau='" & Me.no_bordereau & "'") > 0 Then MsgBox "Le bordereau " & [var_bordereau] & " existe déjà. Appuyer sur OK et sur ESC" Cancel = True Set rs = Me.Recordset rs.FindFirst "[id] = " & Str(Me![id]) Me.Bookmark = rs.Bookmark End If
End Sub
Re,
Je ferai la saisie du numéro dans un contrôle indépendant.
S'il existe, tu te places dessus avec le code précédent, sinon, tu te places
sur un enregistrement vierge dont tu rempli le numéro avec ce que tu as
saisie dans le contrôle indépendant.
C'est juste une idée vite faite...
--
Bonne continuation
-------------------------------------------------------------------------------------------
http://www.mpfa.info : c'est bonheur pour ton ordinateur !
-------------------------------------------------------------------------------------------
Effectivement ça plante ma base de données. Comment m'y prendre pour
remédier
à ce problème?
merci
Bonjour, MacGiver
Tu fais ton findfirst sur "id", il faudrait plutôt le faire sur
"no_bordereau" avec un id différent:
rs.FindFirst "[no_bordereau]=" & Str(Me![no_bordereau]) & " AND [id]
<>
" & Str(Me![id])
Par ailleurs, je ne ferai pas le test sur BeforeUpdate: comme tu annules
l'événement, le fait de changer d'enregistrement courant va valider ta
saisie malgré tout ou, pire, faire planter le truc, j'hésite.
A toi de nous dire ! ;-)
--
Bonne continuation
-------------------------------------------------------------------------------------------
http://www.mpfa.info : c'est bonheur pour ton ordinateur !
-------------------------------------------------------------------------------------------
Bonjour a tous, dans une table j'entre un numéro de billet (qui ne se
répètera jamais) avec des données reliés à ce billet. Si j'entre à
nouveau
ce billet dans ma table je me suis fait une procédure su r l'événement
before_update m'indiquant que ce billet est déja présent et que je ne
peux
l'ajouter, cependant j'aimerais, après le message, me pointer
directement
sur
ce billet de ma table, comment m'y prendre? avec findfirst j'ai essayer
cette
procédure mais qui ne fonctionne pas :
Private Sub no_bordereau_BeforeUpdate(Cancel As Integer)
Dim var_bordereau As String
Dim rs As Object
var_bordereau = Me.no_bordereau.Value
If DCount("*", "T_retour_materiel", "no_bordereau='" & Me.no_bordereau
&
"'") > 0 Then
MsgBox "Le bordereau " & [var_bordereau] & " existe déjà.
Appuyer
sur OK et sur ESC"
Cancel = True
Set rs = Me.Recordset
rs.FindFirst "[id] = " & Str(Me![id])
Me.Bookmark = rs.Bookmark
End If
Re, Je ferai la saisie du numéro dans un contrôle indépendant. S'il existe, tu te places dessus avec le code précédent, sinon, tu te places sur un enregistrement vierge dont tu rempli le numéro avec ce que tu as saisie dans le contrôle indépendant. C'est juste une idée vite faite... -- Bonne continuation ------------------------------------------------------------------------------------------- http://www.mpfa.info : c'est bonheur pour ton ordinateur ! -------------------------------------------------------------------------------------------
Effectivement ça plante ma base de données. Comment m'y prendre pour remédier à ce problème?
merci
Bonjour, MacGiver Tu fais ton findfirst sur "id", il faudrait plutôt le faire sur "no_bordereau" avec un id différent: rs.FindFirst "[no_bordereau]=" & Str(Me![no_bordereau]) & " AND [id] <> " & Str(Me![id]) Par ailleurs, je ne ferai pas le test sur BeforeUpdate: comme tu annules l'événement, le fait de changer d'enregistrement courant va valider ta saisie malgré tout ou, pire, faire planter le truc, j'hésite. A toi de nous dire ! ;-) -- Bonne continuation ------------------------------------------------------------------------------------------- http://www.mpfa.info : c'est bonheur pour ton ordinateur ! -------------------------------------------------------------------------------------------
Bonjour a tous, dans une table j'entre un numéro de billet (qui ne se répètera jamais) avec des données reliés à ce billet. Si j'entre à nouveau ce billet dans ma table je me suis fait une procédure su r l'événement before_update m'indiquant que ce billet est déja présent et que je ne peux l'ajouter, cependant j'aimerais, après le message, me pointer directement sur ce billet de ma table, comment m'y prendre? avec findfirst j'ai essayer cette procédure mais qui ne fonctionne pas :
Private Sub no_bordereau_BeforeUpdate(Cancel As Integer) Dim var_bordereau As String Dim rs As Object
var_bordereau = Me.no_bordereau.Value If DCount("*", "T_retour_materiel", "no_bordereau='" & Me.no_bordereau & "'") > 0 Then MsgBox "Le bordereau " & [var_bordereau] & " existe déjà. Appuyer sur OK et sur ESC" Cancel = True Set rs = Me.Recordset rs.FindFirst "[id] = " & Str(Me![id]) Me.Bookmark = rs.Bookmark End If