Consulta sobre programar botones con vba

Quisiera programar dos botones en mi formulario dependiente: un boton que me guarde registros y ponga formulario en blanco listo para ingresar nuevo registro, pero que a su vez si no le hago click que no me guarde nada ni se genere un id (como si no hubiera pasado nada); y otro botón que haciendo click salga del formulario y no guarde nada ni se genere un id (como si no hubiera pasado nada). Espero me hayan entendido y me den una mano con esto.

4 Respuestas

Respuesta
1

Tal como lo veo, hay dos formas de hacerlo:

1º/ Eliminar el id autonumérico y en su lugar poner un falso autonumérico (en la web de Neckkito tienes un ejemplo que explica cómo crearlo)

Si optas por esta solución, el código para el botón guardar sería tan simple como:

DoCmd. RunCommand acCmdSaveRecord 'Guarda

DoCmd. GoToRecord,, acNewRec 'Pasa a un nuevo registro

Y el del botón para "cancelar":

Me. Undo

DoCmd. Close acForm, Me. Name

2º/ Desconectar el formulario de la tabla, aunque esta opción te implicará hacer más cosas en tu formulario, como programar botones de navegación personalizados, cargar los datos de la tabla al abrir el formulario...

Aquí tienes muchas formas de proceder, por ejemplo guardar los datos con una SQL, con un recordset ADO o DAO... Si quieres ver alguna de ella explicada, en la página web de Neckkito busca los ejemplos "Formularios independientes"

Saludos!


Hola! Me sirvió mucho tu ayuda. Hasta ahora logre lo que me indicaste. Lo único que sucede es que cuando pongo el cancelar y genero un nuevo registro veo que si se genero el id y me salta a uno nuevo. Estuve buscando en la página de neckkito pero no encuentro como hacer el falso autonumérico

Éste es: http://siliconproject.com.ar/neckkito/index.php/ejemplos-explicados/todos/93-ejemplos-explicados/ejemplos-de-formularios/158-autonumerico-manual 

Respuesta
1

Por lo que pude entender.

Deseas dos botones.

Uno que guarde info y una vez guardado deje limpio el formulario y otro que te cierre el formulario.

Como no hay mayores detalles, te paso un ejemplo. Espero te sea de ayuda.

En todo caso, anexa información para ser mucho mas precisos.

Nota: Si puedes te dejo mi mail [email protected]

Private Sub CommandButton1_Click()
Sheets("Hoja1").Activate
ult = Cells(Rows.Count, 1).End(xlUp).Row
ult = ult + 1
If TextBox1.Value = "" Or TextBox2.Value = "" Or TextBox3.Value = "" Then
MsgBox "Ingrese datos": Exit Sub
End If
Cells(ult, 1) = TextBox1
Cells(ult, 2) = TextBox2
Cells(ult, 3) = TextBox3
MsgBox "Datos Guardados con éxito", vbInformation
TextBox1.Value = ""
TextBox2.Value = ""
TextBox3.Value = ""
End Sub
Private Sub CommandButton2_Click()
Unload Me
End Sub

El primer comando es el bottom de guardado

Y el segundo comando es de salir

Respuesta
1

Silvina: Entre alguna que otra solución, mira este ejemplo de Emilio Sancha que trata ese tema.

http://www.mvp-access.es/emilio/Access/Descargas.asp 

El ejemplo es el Nº 194 del 02/13. El Titulo

Hay personas a quienes no gusta el comportamiento por defecto de Access de guardar el registro al salir de él, una alternativa es utilizar una tabla intermedia hasta decidir si se guarda o no.

Mis saludos >> Jacinto

Respuesta
1
Private Sub CommandButton1_Click()
    If TextBox1 <> Empty Then
        Hoja1.Cells(1, 1) = TextBox1
    End If
    TextBox1 = Empty
    TextBox1.SetFocus
End Sub
' -----boton de salir-----
Private Sub CommandButton2_Click()
   UserForm1.Hide
End Sub

Quisas es una idea de lo que necesitas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas