Access - Problemas con acCmdDeleteRecord

 
Vista:

Problemas con acCmdDeleteRecord

Publicado por Quique (3 intervenciones) el 05/09/2009 15:52:05
Hola,

Necesito cambiar el comportamiento por defecto de Access cuando se invoca al método:
DoCmd.RunCommand acCmdDeleteRecord

He visto que, por defecto, tras la eliminación del registro, se posiciona en el siguiente registro de la lista. El problema viene cuando el registro eliminado es el último, puesto que en ese caso lo que hace es crear un nuevo registro.
Me gustaría que si se borra el último registro de la lista, pudiera posicionarme en el inmediatamente anterior en lugar de crear un nuevo registro.
¿Sabéis si esto es posible?
Muchas gracias por vuestra ayuda.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Problemas con acCmdDeleteRecord

Publicado por Antonio (83 intervenciones) el 06/09/2009 03:27:51
Hola,

Mira si te vale incluir en el evento AfterDelConfirm la instruccion

Me.recordsetclone.movelast

pero también te dará problemas si se borra el único registro de la tabla/formulario

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problemas con acCmdDeleteRecord

Publicado por Quique (3 intervenciones) el 06/09/2009 09:20:15
Pues curiosamente el evento AfterDelConfirm no se dispara cuando se elimina el último registro, sino sólo si se elimina alguno de los anteriores.
Muchas gracias por tu ayuda. Me parece que tendré que intentar adaptarme al comportamiento de Access porque he probado ya unas cuantas cosas y casi es peor el remedio que la enfermedad...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problemas con acCmdDeleteRecord

Publicado por Jefferson (2 intervenciones) el 07/09/2009 15:43:50
Buenos Dias Quique

Te prepare este codigo prueba a ver si te funciona

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Sub Eliminar(Id As Control)
Dim pregunta As String
    pregunta = MsgBox("¿Confirme si desea Eliminar...?", _
               vbYesNo + vbInformation, "ELIMINAR")
If pregunta = 6 Then
                DoCmd.SetWarnings False
                DoCmd.RunCommand acCmdSelectRecord
                DoCmd.RunCommand acCmdDelete
                DoCmd.SetWarnings True
            Select Case Id
                Case Id = ""
                DoCmd.GoToRecord , , acNewRec
                Case Id <> ""
                DoCmd.GoToRecord , , acPrevious
            End Select
End If
If pregunta = 7 Then
Id.SetFocus
End If
End Sub

Un Saludo Amigo
Desde Venezuela
Jefferson
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

DISCULPA QUIQUE

Publicado por Jefferson (2 intervenciones) el 07/09/2009 16:08:15
De Nuevo Disculpas

Me equivoque al no leer bien el primer post que colocastes, he hice un codigo que no era....

Prueba con este

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Sub Eliminar(Id As Control)
On Error GoTo Err_Eliminar_Click
Dim pregunta As String
    pregunta = MsgBox("¿Confirme si desea Eliminar...?", _
               vbYesNo + vbInformation, "ELIMINAR")
If pregunta = 6 Then
                DoCmd.SetWarnings False
                DoCmd.RunCommand acCmdSelectRecord
                DoCmd.RunCommand acCmdDelete
                DoCmd.SetWarnings True
                DoCmd.GoToRecord , , acPrevious
If pregunta = 7 Then
Id.SetFocus
End If
End If
Exit_Eliminar_Click:
    Exit Sub
Err_Eliminar_Click:
    DoCmd.GoToRecord , , acNewRec
    Resume Exit_Eliminar_Click
End Sub
Un Saludo Amigo
Desde Venezuela
Jefferson
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:DISCULPA QUIQUE

Publicado por Quique (3 intervenciones) el 10/09/2009 10:27:52
Muchisimas gracias por tu ayuda, Jefferson.
Perdona que no te haya contestado antes, pero el proyecto es para una ONG y sólo le puedo dedicar mi tiempo libre.
El problema es que la instrucción acCmdDelete provoca automáticamente la creación de un nuevo registro cuando el registro eliminado era el último de la lista. De todas formas creo que no es grave si en la formación del usuario incluyo un capítulo explicando este comportamiento. Sorprende la primera vez, pero cuando te acostumbras ni te enteras.
Gracias de nuevo desde España.
Abrazos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

DISCULPA QUIQUE

Publicado por andres (1 intervención) el 17/10/2018 03:58:13
gracias este y el otro codigo me ayudaron mucho
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar