Usuarios On-Line 153
  I n i c i o
  Temas
  • Guías Informatica
  • Artículos
  • Trucos
  • Trucos Juegos
  • Guía Web
  • Webmasters

  •   Directorio Web
  • Novedades
  • Destacados
  • Más Visitados
  • Añadir Web

  •   Software
  • Novedades
  • Destacados
  • Más Descargados
  •  
      Manuales
  • Novedades
  • Destacados
  • Más Descargados

  •   Más Contenidos
  • Zona MSN
  • Foro
  • Más Trucos
  • Seguridad Informática
  • Alojamiento Web
  • Lista de Correo

  •   Novedades Software
    07/10 AllWebMenus
    07/10 Google Desktop Search
    07/10 KillProcess
    07/10 CopyToDVD
    07/10 Total Uninstall



    EVIDALIA HOSTING
    Pack Inicio
    100 MB espacio en disco
    1 GB transferencia/mes
    25 E-Mail's POP3
    mySQL, php, CGI-BIN

    Pack Inicio
    Pack Standard
    200 MB espacio en disco
    2 GB transferencia/mes
    50 E-Mail's POP3
    mySQL, php, CGI-BIN

    Pack Standard


      Guías Informática:  
    Fotografía (13)
    Trucos fotografía y retoque fotográfico.
    Hardware (38)
    Internet (90)
    MSN Messenger (59)
    Multimedia (28)
    Programación (84)
    S. Operativos (364)
    Seguridad (43)
    Software (126)
    Webmasters (77)
    Inicio
    Más vistos
    Más Remitidos
    Más Imprimidos
    Categoría: Access
      Abrir un formulario en el mismo registro que mostraba cuando se cerro la ultima vez  

    Los pasos a seguir son:

    Crear una tabla auxiliar (que aqui vamos a llamar Acceso) para almacenar el ultimo registro visualizado en el formulario. Contendra dos campos, uno (que llamaremos CampoClave para guardar el nombre del campo clave principal de la tabla asociada al formulario y otro para guardar el valor de dicha clave:

    Campos Tipo


    CampoClave Texto (Clave principal)

    Usuario Texto (Clave principal)

    Ordenador Texto (Clave principal)

    Valor Texto

    El campo CampoClave se ha descrito como de tipo texto pero puede ser tambien de tipo numerico o autonumerico. Ello dependera del tipo de campo que sea el campo clave principal de la tabla asociada al formulario. En este ejemplo suponemos que ese campo es de tipo texto y que su nombre es ClaveFormul. En cada formulario deberemos tomar nota del nombre de ese campo y de su tipo.

    Añadir el siguiente codigo al evento Al descargar del formulario deseado:

    Private Sub Form_Unload(Cancel As Integer)

    Dim Valor As String

    If IsNull(Me![ClaveFormul]) Then

    ' Cambiar [ClaveFormul] por el nombre del campo clave principal

    Valor = "acNewRec"

    Else

    Valor = Me![ClaveFormul]

    ' Cambiar [ClaveFormul] por el nombre del campo clave principal

    End If

    Set rst = db.OpenRecordset(Sql, dbOpenDynaset)

    If rst.RecordCount = 0 Then

    rst.AddNew

    rst![Usuario] = Application.CurrentUser

    rst![Ordenador] = NombrePC

    rst![CampoClave] = Me.Name

    rst![Valor] = Valor

    rst.Update

    Else

    rst.Edit

    rst![Valor] = Valor

    rst.Update

    End If

    rst.Close

    End Sub

    Añadir el siguiente codigo al evento Al cargar del formulario, el cual efectua una busqueda en la tabla Acceso del campo clave del registro abierto, toma el valor de la clave y se coloca en el:

    Private Sub Form_Load()

    Set db = CurrentDb

    Sql = "SELECT * FROM Acceso WHERE "

    Sql = Sql & "Usuario = '" & Application.CurrentUser

    Sql = Sql & "' AND Ordenador = '" & NombrePC

    Sql = Sql & "' AND CampoClave = '" & Me.Name & "'"

    Set rst = db.OpenRecordset(Sql, dbOpenSnapshot)

    If rst.RecordCount > 0 Then

    If Not IsNull(rst![Valor]) Then

    If rst!Valor <> "acNewRec" Then

    Set rstFrm = Me.RecordsetClone

    ' Si el campo clave principal ("ClaveFormul" en este ejemplo) es de tipo texto,

    ' la instruccion a incluir seria esta:

    rstFrm.FindFirst "[ClaveFormul] = '" & rst![Valor] & "'"

    ' Cambiar [ClaveFormul] por el nombre del campo clave principal

    ' Si el campo clave principal ("ClaveFormul" en este ejemplo) es de tipo

    ' numerico, la instruccion seria:

    ' rstFrm.FindFirst "[ClaveFormul] = " & rst![Valor]

    ' Cambiar [ClaveFormul] por el nombre del campo clave principal

    If Not rstFrm.NoMatch Then

    Me.Bookmark = rstFrm.Bookmark

    End If

    rstFrm.Close

    Else

    DoCmd.GoToRecord , , acNewRec

    End If

    End If

    End If

    rst.Close

    End Sub

    No hay que olvidar que no solo hay que incluir el codigo, sino asegurarnos que en la hoja de propiedades del formulario quedan marcados ambos eventos: Al cargar y Al descargar con [Procedimiento de evento].

    Estando abierto el formulario en modo de diseño, pulsar el boton Codigo y añadir en la seccion Declaraciones el siguiente codigo:

    Option Compare Database

    Option Explicit

    Dim db As Database

    Dim rst As Recordset

    Dim rstFrm As Recordset

    Dim Sql As String


    Crear un modulo con un nombre cualquiera, que llevara este codigo:

    Option Compare Database

    Option Explicit

    Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long

    Function NombrePC() As String

    Dim Buffer As String

    Dim Size As Long

    Dim X As Long

    Buffer = Space(255)

    Size = 255

    'Asigna Nombre Maquina

    X = GetComputerName(Buffer, Size)

    NombrePC = Left$(Buffer, Size)

    End Function


    Visitas: 1168    Fecha: 2007-07-04

      Páginas Amigas
    Hosting
    Programas Gratis
    Trucos Juegos
    Trucos y Manuales
    Trucos Juegos
    Tutoriales
    Servidores VPS
    Trucos PC
    Manuales Gratis
    Trucos
    Certificados de Seguridad SSL
    Tucos Informática
    Blog Informatica
    Descarga Programas
    Manuales Gratis
    Listas
    Alta en Buscadores
    Tienda Informatica
    PHP Adictos
    Noticias Informatica
    Webmasters
    Manuales Online
    Foros Informática
    Juegos
    Humor
    Foros para compartir
    Portatiles
    Software Gratis
    Tutoriales de Flash y ActionScript
    Web Tutoriales
    ADSLTodo
    Blog Tecnologia
    Fonts
    Tutoriales
    Soft Download
    Recursos Webmaster
    Muestras gratis
    Juegos y Trucos
    Logratis.com
    Algrano
    Trucos Windows
    Boonic
    MaxiTrucos.com
    ManualesGratis.com
    Programar.net
    WebExperto
    Programas Gratis
    Aclantis
    Programatium
    Gamarod JavaScript
    Descargas Gratis
    Descargas
    ElGuruProgramador
    Seguridad informática
    Movitec
    Joomla, minijuegos
    Aprender, cursos gratis
    ADSL
    Webpanto Informática
    Recursos Web
    ADR Formación, Cursos online
    Juegos Gratis

    ¿Disponible?
     
    .com .net .org .biz .info
    Registro Dominio
    + Redirección
    + 5 cuentas correo

    Solo 12 euros año
    © Evidalia Web SL, 2000-2008.
    Registro de Dominios :: Servidores Dedicados :: Publicidad :: Diseño Web :: Contactar