Añadir registro en blanco.
Publicado por Marta (47 intervenciones) el 13/05/2006 13:13:56
Hola a todos:
Tengo una tabla de contactos. Para mostrar un contacto en el formulario me sirvo de un ComboBox. El contacto lo muestro la hacer clic en el ComboBox, que me muestra todos mis contactos, por medio de un filtro. Éste es el código que utilizo.
Private Sub cboBuscaContacto_AfterUpdate()
On Error Resume Next
cboBuscaContacto.SetFocus
If cboBuscaContacto.Value > 0 Then
Me.Filter = "[IdContacto]=" & cboBuscaContacto.Value
Me.FilterOn = True
End If
End Sub
El problema surge cuando quiero añadir un nuevo registro. Para ello utilizo el siguiente código:
Private Sub cbtAgregar_Click()
Dim db As Database
Dim rstContactos As DAO.Recordset
Dim sqlContactos As String
Dim N_Reg As Integer
Dim varMarcador As String
Set db = CurrentDb()
sqlContactos = "Select * From Contactos"
Set rstContactos = db.OpenRecordset(sqlContactos, dbOpenDynaset)
'Añadir un nuevo registro (Contacto) con el valor almacenado en la variable NewData.
rstContactos.AddNew
rstContactos.Update
'Voy al último registro y muestro el número de registros que contiene la tabla.
rstContactos.MoveLast
N_Reg = rstContactos.RecordCount
Me.lblNumReg.Caption = N_Reg
rstContactos.Move N_Reg
rstContactos.Close 'Cierro el recordset
Set rstContactos = Nothing
' Me.Filter = "[IdContacto]=" & Null
'Me.FilterOn = True
End Sub
El código anterior me añade el nuevo registro. Lo que no consigo es ir a ese registro nuevo y que me aparezcan todos los campos en blanco para poder rellenarlos. He probado varios códigos sin éxito alguno. También he probado con
On Error GoTo Err_Comando108_Click
DoCmd.GoToRecord , , acLast
Exit_Comando108_Click:
Exit Sub
Err_Comando108_Click:
MsgBox Err.Description
Resume Exit_Comando108_Click
pero no hay forma. No me aparece el registro en blanco que he añadido, sino otro distinto.
¿Alguien sabe cómo puedo hacerlo?
Gracias anticipadas,
Marta
Tengo una tabla de contactos. Para mostrar un contacto en el formulario me sirvo de un ComboBox. El contacto lo muestro la hacer clic en el ComboBox, que me muestra todos mis contactos, por medio de un filtro. Éste es el código que utilizo.
Private Sub cboBuscaContacto_AfterUpdate()
On Error Resume Next
cboBuscaContacto.SetFocus
If cboBuscaContacto.Value > 0 Then
Me.Filter = "[IdContacto]=" & cboBuscaContacto.Value
Me.FilterOn = True
End If
End Sub
El problema surge cuando quiero añadir un nuevo registro. Para ello utilizo el siguiente código:
Private Sub cbtAgregar_Click()
Dim db As Database
Dim rstContactos As DAO.Recordset
Dim sqlContactos As String
Dim N_Reg As Integer
Dim varMarcador As String
Set db = CurrentDb()
sqlContactos = "Select * From Contactos"
Set rstContactos = db.OpenRecordset(sqlContactos, dbOpenDynaset)
'Añadir un nuevo registro (Contacto) con el valor almacenado en la variable NewData.
rstContactos.AddNew
rstContactos.Update
'Voy al último registro y muestro el número de registros que contiene la tabla.
rstContactos.MoveLast
N_Reg = rstContactos.RecordCount
Me.lblNumReg.Caption = N_Reg
rstContactos.Move N_Reg
rstContactos.Close 'Cierro el recordset
Set rstContactos = Nothing
' Me.Filter = "[IdContacto]=" & Null
'Me.FilterOn = True
End Sub
El código anterior me añade el nuevo registro. Lo que no consigo es ir a ese registro nuevo y que me aparezcan todos los campos en blanco para poder rellenarlos. He probado varios códigos sin éxito alguno. También he probado con
On Error GoTo Err_Comando108_Click
DoCmd.GoToRecord , , acLast
Exit_Comando108_Click:
Exit Sub
Err_Comando108_Click:
MsgBox Err.Description
Resume Exit_Comando108_Click
pero no hay forma. No me aparece el registro en blanco que he añadido, sino otro distinto.
¿Alguien sabe cómo puedo hacerlo?
Gracias anticipadas,
Marta
Valora esta pregunta


0