Mostrar más de un registro en la vista de formularios continuos

Quiero que me aparezcan más de un registro en la vista de formularios continuos, y que no "desaparezcan" como pasa ahora cuando introduzco uno nuevo.

Como sé que con palabras es difícil explicarlo, he grabado un vídeo donde se ve el comportamiento que quiero corregir, y también adjunto la base de datos.

https://www.dropbox.com/s/1c9cjucu2dlopsp/Error.avi?dl=0 

https://www.dropbox.com/s/aa3wtu0qxeialn3/Tienda%20BD.accdb?dl=0 

1 respuesta

Respuesta
1

Agrega el siguiente VBA a tu formulario a ver si es lo que necesitas.

Private Sub Form_AfterInsert()
    Me.Requery
End Sub

Hola. Muchas gracias por responder. Me soluciona, pero no. Cuando aplico eso, se queda en el mismo registro, y quiero pasar al siguiente. Esto lo soluciono con mejorando tu código así:

Private Sub Form_AfterInsert()
    Me.Requery
    DoCmd.GoToRecord , , acNewRec
End Sub

Sin embargo, no me abre el desplegable del combo. He probado añadiendo esto:

    Me!CboArticulo.SetFocus
    Me!CboArticulo.Dropdown

Pero nada. Podría decirle que me abriera el desplegable cuando pulse una tecla, pero entonces no me funciona el escape para cerrar el desplegable.

¿Tú sabes qué solución podría darle?

Un saludo.

El código que te pongo es un poco "guarro", pero parece que es lo que buscas. No es fácil hacer lo que dices porque en realidad cuando avanzas al newrecord este no existe como tal y provoca estas cosas raras.

Que me enrollo. Al lio.

Private Sub Form_AfterInsert()
    Me. Requery
    DoCmd. GoToRecord,, acNewRec
    Me. Cantidad. SetFocus
    Me. CboArticulo. SetFocus
    SendKeys ("{TAB}")
    SendKeys ("+{TAB}")
End Sub

Como te digo a mi no me gusta, pero a veces hay que recurrir a esto.

Pues ahora sí que sí. Muchísimas gracias. Un saludo.

Hola. Me acabo de dar cuenta de que me desactiva el teclado numérico. ¿Hay alguna otra manera de hacerlo de tal forma que no lo desactive?

Lo he solucionado invirtiendo el código. Así:

Private Sub Form_AfterInsert()
    Me. Requery
    DoCmd. GoToRecord,, acNewRec
    Me. Cantidad. SetFocus
    Me. CboArticulo. SetFocus
    SendKeys ("{TAB}")
    SendKeys ("+{TAB}")
End Sub

Me he equivocado. Así:

Private Sub Form_AfterInsert()
    Me. Requery
    DoCmd. GoToRecord,, acNewRec
    Me. Cantidad. SetFocus
    Me. CboArticulo. SetFocus
    SendKeys ("+{TAB}")
    SendKeys ("{TAB}")
End Sub

Access no deja de sorprender, jejejeje.

Me alegra que dieras con la clave.

Ahora tiene que probarla mi hermano, que es quien maneja la base de datos, y detecta todos los errores. Yo lo he probado y funciona. A ver si él no tiene queja.

Hola. Acaba de volver a dar el fallo. ¿Sabes alguna otra manera de ponerlo?

Gracias.

A mi me falla si introduzco muchos artículos, ¿es el caso? ¿O falla desde el principio?

He metido más de artículos, y no falla. El tema es que desactiva el teclado numérico si está activo.

He metido más de diez artículos, que diga, y no falla.

Pues me ha costado dar con la clave de este tema, porque no se como funciona exactamente la tecla... pero creo ahora se un poco más gracias a ti. ;)

Option Compare Database
Private Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
Sub pulsoNUMLOCK()
    If GetKeyState(vbKeyNumlock) = 1 Then
        SendKeys "{NUMLOCK}", True
    End If
End Sub
Private Sub Cantidad_GotFocus()
End Sub
Private Sub CboArticulo_AfterUpdate()
    Me.SKU = Me.CboArticulo.Column(2)
    [PVP] = [PVPR]
    Me.CboArticulo.Value = ""
    pulsoNUMLOCK
End Sub
Private Sub CboArticulo_GotFocus()
Me!CboArticulo.Dropdown
End Sub
Private Sub Form_AfterInsert()
    Me. Requery
    DoCmd. GoToRecord,, acNewRec
    DoCmd. GoToRecord,, acPrevious
    DoCmd. GoToRecord,, acNewRec
    Me. Cantidad. SetFocus
    Me. CboArticulo. SetFocus
    SendKeys ("{TAB}")
    If Nz(Me.Cantidad.Value, "") <> "" Then Me.Cantidad.Value = 1: Me.Cantidad.Value = 0
    SendKeys ("+{TAB}")
End Sub
Private Sub Form_Load()
End Sub
Private Sub Intranet_Click()
Dim Corte As Integer
Dim Producto As String
Dim path As String
'chromePath = "C:\Program Files (x86)\Google\Chrome\Application\Chrome.exe"
'firefoxPath = "C:\Program Files\Mozilla Firefox\Firefox.exe"
    If Firefox = -1 Then
        path = "C:\Program Files\Mozilla Firefox\Firefox.exe"
    Else
        path = "C:\Program Files (x86)\Google\Chrome\Application\Chrome.exe"
    End If
    If InStrRev([Intranet], "Soluzion") <> 0 Then
        Corte = InStrRev([Intranet], "=")
        Producto = Right(Intranet, Len([Intranet]) - Corte)
        myURL = fncRutaSoluzion() & Producto
            If Not IsNull(Me.Intranet) Then
                Shell (path & " -url " & myURL)
            End If
    End If
End Sub

Así es como lo he dejado yo, es todo el vba del subformulario.

Como ves llamo a la función despues de actualizar el select y si encuentra el bloqueo de números desactivado, lo activa.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas