info findfirst
Le
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 :
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
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

Poser une question


"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
End Sub
--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)
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 !
-------------------------------------------------------------------------------------------
à ce problème?
merci
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 !
-------------------------------------------------------------------------------------------