Ms access - duplicar un registro

Actualmente tengo un formulario en el que se introducen datos, este formulario, por la cantidad de campos que hay en el registro, está separada por un "salto de línea o página" y con dos botones navego de una página a otra. Este formulario tiene un botón para poder duplicar un registro, realizado con el asistente de access-2002/XP y funciona perfectamente.
Aunque disponga de Access-2007, el formato de archivo predeterminado es "Access 2002-2003".
Ahora me han solicitado que en lugar de hacerlo de esta forma, lo haga con un "control ficha". De hecho ya lo tengo todo hecho y funcionando, pero el problema es que el botón para duplicar, que es el mismo que antes, no funciona ni con el sistema anterior, ni con la macro incrustada de Access 2007 (asistente para botones). Tampoco funciona si convierto la macro a VBA.
¿Cómo lo puedo resolver?, ya que es de vital importancia para el trabajo, de lo contrario se deberán volver a introducir los datos de nuevo.
Te muestro el código que tengo actualmente y el que genera la conversión de la macro a VBA. En el primero (1) el código es el mismo que he visto en una respuesta del foro:
1 - Sistema con Access-2002/XP (generada con el asistente para botones)
Private Sub cmdDuplicar_Click()
On Error GoTo Err_cmdDuplicar_Click
DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
DoCmd.DoMenuItem acFormBar, acEditMenu, 2, , acMenuVer70
DoCmd.DoMenuItem acFormBar, acEditMenu, 5, , acMenuVer70
Exit_cmdDuplicar_Click:
Exit Sub
Err_cmdDuplicar_Click:
MsgBox Err.Description
Resume Exit_cmdDuplicar_Click
End Sub
2 - Sistema de macro (copiada de la macro incrustada que genera Access-2007 con el asistente para botones) y (convertida a VBA)
Private Sub cmdDuplicar_Click()
On Error GoTo cmdDuplicar_Click_Err
On Error Resume Next
DoCmd.RunCommand acCmdSelectRecord
If (MacroError = 0) Then
DoCmd.RunCommand acCmdCopy
End If
If (MacroError = 0) Then
DoCmd.RunCommand acCmdRecordsGoToNew
End If
If (MacroError = 0) Then
DoCmd.RunCommand acCmdSelectRecord
End If
If (MacroError = 0) Then
DoCmd.RunCommand acCmdPaste
End If
If (MacroError <> 0) Then
Beep
MsgBox MacroError.Description, vbOKOnly, ""
End If
cmdDuplicar_Click_Exit:
Exit Sub
cmdDuplicar_Click_Err:
MsgBox Error$
Resume cmdDuplicar_Click_Exit
End Sub
Por último, preguntar que cuando cierras el formulario, si se ha realizado alguna duplicación de registro, te muestra un mensaje de advertencia que dice:
"Copió una gran cantidad de datos en el Portapales. Cuando copia datos en el portapapeles..."
¿Hay alguna forma de que no salga este mensaje?

1 respuesta

Respuesta
1
Mil disculpas por el retraso (las fiestas... ya se sabe)
Si utilizas 2007, no puedes utilizar el código que has puesto en el punto 1, ya que se basa en los menús clásicos de Access que desaparecen (son sustituidos) por el Ribbon a partir de la 2007.
Tampoco acabo de entender que la segunda opción no te funcione... ¿has ejecutado paso a paso para saber dónde falla?
De todas formas, yo utilizaría un consulta de inserción de datos. Más lenta de crear pero prácticamente infalible.
Hola Xavi,
Al final lo he resuelto haciendo lo siguiente:
En el formulario del que ya disponía, he desplazado hacia abajo todos los controles y dejado espacio suficiente para poder incluir un control ficha. Luego he copiado los datos datos de la primera página en la primera ficha y los de la segunda página en la segunda ficha y está funcionando como antes (espero que dure).
Lo que no sé es si se puede poner color de fondo a las pestañas de las fichas y color al texto, no he visto sus propiedades en ningún sitio.
Gracias por tu ayuda.
Saludos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas