** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Restaurar posicion columnas formulario hoja datos
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoRestaurar posicion columnas formulario hoja datos

 Responder Responder
Autor
Mensaje
matmax1 Ver desplegable
Habitual
Habitual
Avatar

Unido: 16/Abril/2006
Estado: Sin conexión
Puntos: 50
Enlace directo a este mensaje Tema: Restaurar posicion columnas formulario hoja datos
    Enviado: 19/Septiembre/2015 a las 19:42
Buenas tardes, no se si esta duda tiene solucion o no.
Si ejecuto un formulario hoja de datos con una posicion concreta de columnas (campos): por ejemplo:
codigo, nombre, apellidos, direccion,........
y modifico dicha posicion de campos por esta otra:
codigo, apellidos, nombre y direccion,.....
mi pregunta es, ¿hay alguna manera de volver al estado de columnas inicial, o al mover la posicion de los campos, no se puede?. Un saludo.
Arriba
mounir Ver desplegable
Colaborador
Colaborador


Unido: 09/Febrero/2009
Localización: Asturias-España
Estado: Sin conexión
Puntos: 5183
Enlace directo a este mensaje Enviado: 19/Septiembre/2015 a las 22:14
Hola!

Si te he entendido bien, ejecutas el formulario en vista hoja de datos, seleccionas la columna que quieras mover y vuelves a seleccionar pero esta vez sin soltar el ratón la mueves de un lado a otro.

Espero que sea eso lo quieres.

Editado por mounir - 19/Septiembre/2015 a las 22:15
Un Saludo.
Arriba
matmax1 Ver desplegable
Habitual
Habitual
Avatar

Unido: 16/Abril/2006
Estado: Sin conexión
Puntos: 50
Enlace directo a este mensaje Enviado: 20/Septiembre/2015 a las 13:36
Buenos dias Mounir, muevo la colunma a movier a otra posicion, por ejemplo si esta en la posicion 2 y la muevo a la posicion 5. Trabajo con dicho formulario y a una pulsacion de tecla o al abrir de nuevo el formulario la columna que movi a la posicion 5 se vuelva a la 3. Yo creo que no se puede hacer, pero si alguien sabe de alguna manera para que se pueda hacer. Un saludo y gracias.
Arriba
mounir Ver desplegable
Colaborador
Colaborador


Unido: 09/Febrero/2009
Localización: Asturias-España
Estado: Sin conexión
Puntos: 5183
Enlace directo a este mensaje Enviado: 20/Septiembre/2015 a las 13:56
Hola!

Para eso organizas todas las columnas por el orden que quieras y luego seleccionas la primera columna y con el ratón derecha seleccionas (inmovilizar columnas) y haces lo propio con el resto.

Editado por mounir - 20/Septiembre/2015 a las 14:14
Un Saludo.
Arriba
Emilio Ver desplegable
Administrador
Administrador

Santander

Unido: 08/Agosto/2004
Localización: España
Estado: Sin conexión
Puntos: 18811
Enlace directo a este mensaje Enviado: 20/Septiembre/2015 a las 17:04
Hola!

tan simple como

' esto definido en un módulo
Type Columnas
   Control As String
   Columna As Integer
End Type

' en el formulario

Dim Matriz() As Columnas

Private Sub Form_Load()
Dim ctrl As Variant, _
    i As Long

' guardo cada una de las columnas y su posición en una matriz
For Each ctrl In Forms("frmPedidos").Controls("subDetallesPedidos").Controls
   ' solo en casi de que sean cuadros de texto o cuadros combinados
   If ctrl.ControlType = acTextBox Or ctrl.ControlType = acComboBox Then
      ReDim Preserve Matriz(i)
      Matriz(i).Control = ctrl.Name
      Matriz(i).Columna = ctrl.ColumnOrder
      i = i + 1
   End If
Next ctrl
End Sub


Private Sub cmdReordenar_Click()
Dim ctrl As Variant, _
    i As Long

' recorro la matriz reasignando a cad control su posición original
For i = 0 To UBound(Matriz)
   Forms("frmPedidos").Controls("subDetallesPedidos").Controls(Matriz(i).Control).ColumnOrder = Matriz(i).Columna
   i = i + 1
Next i
End Sub

Editado por Emilio - 21/Septiembre/2015 a las 18:28
Saludos a todos desde Huelva

http://www.mvp-access.es/emilio/
Arriba
matmax1 Ver desplegable
Habitual
Habitual
Avatar

Unido: 16/Abril/2006
Estado: Sin conexión
Puntos: 50
Enlace directo a este mensaje Enviado: 21/Septiembre/2015 a las 16:36
Muchas gracias Emilio.
La declaracion del array Matriz

Dim Matriz() As Columnas

 se hace en el modulo tambien?,
La version de Ms Access con el que trabajo es el 2007.

Editado por matmax1 - 21/Septiembre/2015 a las 16:56
Arriba
Emilio Ver desplegable
Administrador
Administrador

Santander

Unido: 08/Agosto/2004
Localización: España
Estado: Sin conexión
Puntos: 18811
Enlace directo a este mensaje Enviado: 21/Septiembre/2015 a las 17:53
Perdón, lo lógico es hacerla en el formulario, con mas razón si quisieras hacer lo mismo en mas de un formulario.
Saludos a todos desde Huelva

http://www.mvp-access.es/emilio/
Arriba
matmax1 Ver desplegable
Habitual
Habitual
Avatar

Unido: 16/Abril/2006
Estado: Sin conexión
Puntos: 50
Enlace directo a este mensaje Enviado: 21/Septiembre/2015 a las 18:02
Publicado originalmente por Emilio Emilio escribió:

Perdón, lo lógico es hacerla en el formulario, con mas razón si quisieras hacer lo mismo en mas de un formulario.

Hola, mejor en formulario porque si la defines como dim en el modulo da error. Muchas gracias Emilio, por tu gran ayuda. Un saludo.
 
Arriba
Gadeus Ver desplegable
Habitual
Habitual


Unido: 27/Septiembre/2014
Localización: Hurlingham
Estado: Sin conexión
Puntos: 56
Enlace directo a este mensaje Enviado: 08/Octubre/2015 a las 04:56
Buenas tardes, no se si sigue vigente este tema, ...

Me sucede lo mismo peor en subformularios, ejemplo... Tengo 4 columnas ejemplo A B C D.. pero el orden real es el siguiente.. A C D B.
Ahora bien, creo haber solucionado el tema pero no doy o no comeprendo como se logra hacer, esto fue de pruebas y pruebas.. Creo haberlo solulcionado de la siguiente forma. en mi caso con Acces 2010
Tengo ACDB, ahora los ordeno en Vista presentacion  ABCD, luego le doy guardar en la pestaña (en mi caso lo tengo configurado para que no sea ve en forma ventana) haciendo boton derecho y luego guardar al formulario donde esta dicho subformulario, posterior tambien de paso le doy al disquete de guardar en la parte superior del programa en si, cierro el fomrulario, lo vuelvo abrir.. Aveces queda de una pasada, aveces lo hago de varias formas, manteniendo los guardados pero en diferente orden y termina quedando bien.... No se si logro hacer comprender mi procedimiento. pero no hace falta la programacion (en mi caso, no descarto las otras sugerencias)...

Espero que les sea de utilidad. Atte Gadeus

VE hacia adelante, a mas de 88mph!
Arriba
E. Feijoo Ver desplegable
Moderador
Moderador


Unido: 16/Abril/2004
Localización: España
Estado: Sin conexión
Puntos: 19948
Enlace directo a este mensaje Enviado: 08/Octubre/2015 a las 11:14
Es para lo que sirve el parámetro 'Yes' o asimilado en el comando Close de los formularios:
DoCmd.Close acForm, Me.Name, acSaveYes

Ese parámetro (que por defecto es no) es la función que tiene, guardar el DISEÑO del formulario, lo malo es cuando la aplicación no permite guardar cambios (entiéndase: base de datos en formato accde o mde)

Al forzar el guardado se fuerza a guardar el diseño (otros lo aplican para guardar la posición de la ventana .....) en fin, que cuando no se analiza la causa se suele acusar a 'los duendes'....
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable