Download - Trucos Access
TRUCOS ACCESS
TRUCOS ACCESStrucos access: Evitar pasar al siguiente registro de un formulario al pulsar el tabulador en el ultimo campo editable
En la propiedad Ciclo del formulario, Access coloca por defecto el valor Todos los registros. Esto habria que cambiarlo al valor Registro activo, con lo cual el usuario no pasara de registro a no ser que pulse el boton correspondiente de la barra de estado.
trucos access: Evitar los mensajes de confirmacion en las consultas de actualizacion
Al ejecutar la consulta aparece por defecto un mensaje para confirmar la actualizacion de datos, pero se puede obviar eligiendo Herramientas/Opciones, y dentro de la ficha Modificar/Buscar, desmarcar la casilla Consultas de accion que hay dentro del apartado Confirmar.
El resultado es que todos los precios de la tabla original se veran modificados de un plumazo.
Sin embargo, cuando se ejecuta la consulta desde un formulario, queda mas profesional si no se muestran esos mensajes. Para ello, se puede aadir la siguiente linea de codigo justo antes de las que se hayan generado para el boton:
Dcmd.SetWarnings False
De esta forma, la consulta se ejecuta sin pedir confirmaciones. No obstante, es recomendable volver a activar las confirmaciones despues de la ejecucion de esas consultas mediante esta otra linea de codigo:
Dcmd.SetWarnings Truetrucos access: Evitar datos duplicados en el mismo campo
Aunque Access diga, al introducir datos en un campo clave principal en un nuevo registro, que ya existe en el campo clave principal de otro registro, avisa del error despues de que ya se ha producido, obligando a introducir todos los campos del registro duplicado hasta el final. Sin embargo, existe un procedimiento mediante el cual Access puede avisar de la duplicidad nada mas introducir el dato.
Lo primero es asegurarse de que el campo a comprobar esta indexado y es clave principal. Supongamos una base de datos de pacientes que ingresan en un hospital y el objetivo es detectar que no se repita el dato introducido en el campo NumHistoria.
Abrir el formulario en vista Diseo, elegir Ver/Codigo e incluir en el apartado General/Declaraciones (General a la izquierda y Declaraciones a la derecha) el siguiente codigo:
Dim BaseDatos as DataBase
Dim Pacientes as Recordset
Con ello se define que van a utilizarse dos objetos DAO o de acceso a datos: una base de datos y un recordset y asegurando que seran visibles en todos los procedimientos del formulario.
En el evento Al cargar del formulario incluir estas lineas de codigo:
Set BaseDatos = CurrentDB()
Set Pacientes = BaseDatos.OpenRecordset("PacientesIngresados",dbOpenTable)
La primera linea asigna la base de datos actual a la variable BaseDatos, la segunda asigna a la variable Pacientes los registros existentes en la tabla Pacientes Ingresados de la base de datos BaseDatos, y la abre de tipo tabla, es decir, se va a poder leer de ella por indice, que sera el que se indica con la siguiente instruccion que debe ir a continuacion de las dos anteriores:
Pacientes.Index = "PrimaryKey"
En el evento Antes de actualizar de la variable NumHistoria incluir:
Sub NumHistoria_BeforeUpdate (Cancel as integer)
Pacientes.Seek "=", NumHistoria
If Not Pacientes.NoMatch then
Msgbox "Num. de historia ya existente.",48
Cancel = True
Exit Sub
End If
End Sub
La instruccion que contiene Seek (que es un metodo que solo se puede utilizar con los Recordset abiertos con dbOpenTable), lo que hace es intentar encontrar en la tabla Pacientes alguno con el numero de historia igual a la variable NumHistoria, y va a buscar en numeros de historia porque al cargar el formulario ya sabe que el indice iba a ser la clave principal, que hemos supuesto que va por Numero de Historia.
trucos access: Evitar que se ejecuten las opciones de inicio
Cuando existe una macro llamada Autoexec, Access la ejecuta automaticamente al abrirse el archivo de la base de datos. En todas las versiones de Access se puede evitar su ejecucion pulsando la tecla MAYUSCULAS durante el proceso de apertura del archivo (se exceptua el procedimiento especial que se comenta en el truco n 12).
Desde Access 97 se puede hacer uso en la linea de comandos de Access de un nuevo parametro llamado /NOSTARTUP que tambien impide la ejecucion de la macro Autoexec, asi como de todas aquellas opciones de inicio que se hayan especificado al elegir Herramientas/Inicio. Por ejemplo, para abrir una base de datos con este parametro, la linea de comando de Access quedaria asi:
msaccess.exe /nostartup "c:\bases\basedato.mdb"
trucos access: Evitar la aparicion del menu contextual
Crear una nueva barra de herramientas personalizada y despues elegir Herramientas/Inicio consignar en el apartado Barra de menu contextual la recien creada. Asi, al pulsar el boton derecho del raton, se desplegara la barra de herramientas que se haya establecido.
trucos access: Evitar error por falsa linea de comandos
Access en todas sus versiones, incluida la 2000, muestra un error de linea de comandos erronea cuando se hace un doble clic para abrir un archivo MDB que se encuentra en un directorio que contiene espacios en su nombre y tambien cuando el nombre del archivo contiene espacios. La unica forma de evitarlo es eliminar esos espacios. Como consejo, lo mejor es evitar el uso de nombres largos para carpetas y archivos de bases de datos, ya que el ejecutable msaccess.exe no permite nombres largos de archivos en su linea de comandos. Por ejemplo, la siguiente linea no funcionara:
msaccess.exe basedatos.mdb
Sin embargo, si funcionara esta otra:
msaccess.exe baseda~1.mdb
trucos access: Abrir un formulario en el mismo registro que mostraba cuando se cerro la ultima vez teniendo en cuenta al usuario y al PC que utilizo
Como ampliacion de lo anterior, aqui se trata el mismo asunto pero teniendo en cuenta el nombre del usuario y de su PC, lo cual puede ser util en entornos corporativos. Todo el procedimiento es practicamente similar. Se aaden ciertas lineas al codigo de los eventos y lo realmente nuevo es la adicion de un modulo para definir la funcion que recoge el nombre del PC. Se ha incluido en un modulo y no en el codigo del formulario porque de esta forma podra ser utilizado desde cualquier formulario y no solo desde uno. Tambien la tabla auxiliar tendra ahora mas campos.
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.
Aadir 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
Aadir 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 diseo, pulsar el boton Codigo y aadir 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
trucos access: Abrir un formulario en el mismo registro que mostraba cuando se cerro la ultima vez
No existe una opcion por defecto, pero se puede aadir un pequeo codigo para que se guarde el ultimo registro visualizado y Access vuelva a el al ser abierto el mismo formulario.
Los pasos a seguir son:
1) 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)
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.
2) Aadir 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![CampoClave] = Me.Name
rst![Valor] = Valor
rst.Update
Else
rst.Edit
rst![Valor] = Valor
rst.Update
End If
rst.Close
End Sub
3) Aadir 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 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].
4) Estando abierto el formulario en modo de diseo, pulsar el boton Codigo y aadir 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
Las dos primeras lineas ya estaran escritas al acceder a esa seccion. Lo mismo ocurre con las lineas primera y ultima del codigo de los eventos. Simplemente hay que procurar no repetirlas.
En el numero siguiente se explica como ampliar este truco para que reconozca al usuario y a su PC.
trucos access: Abrir una tabla en modo de solo lectura
Puede ocurrir que desde un formulario venga bien en un determinado momento abrir una de las tablas para examinar su contenido. Si se da ese caso, lo mejor es abrirla en modo de solo lectura a fin de evitar modificaciones indeseadas. Supongamos que se desea presentar la tabla al pulsar sobre un boton. Para ello, se crea el boton con la herramienta al efecto y, justo en el momento de aparecer la primera pantalla del asistente, cancelar el proceso. De esta forma, el boton queda creado aunque sin codigo asociado. Acceder, por tanto, a las propiedades del boton y, dentro del evento Al hacer clic, insertar esta linea de codigo:
DoCmd.OpenTable "Nombre_tabla", , acReadOnly
donde Nombre_tabla representa el nombre de la tabla que se desea abrir.
trucos access: Abrir un formulario automaticamente en el primer registro vacio despues del ultimo
En el evento Al cargar incluir este codigo:
DoCmd.GoToRecord , , acNewRec
trucos access: Abrir una base de datos distinta desde un boton de un formulario
En el formulario abierto en modo de diseo, pulsar el boton que crea botones de la barra de herramientas. Si se inicia el asistente, pulsar Cancelar. Quedara a la vista en el formulario un boton con un nombre de la forma Comando0 (si es el primer boton creado en el formulario).
Acceder a sus propiedades haciendo doble clic sobre el y, dentro de la ficha Eventos, pulsar sobre el evento Al hacer clic, eligiendo del menu desplegable Procedimiento de evento.
Pulsar sobre el diminuto boton de los 3 puntos que hay a su derecha e incluir las siguientes lineas antes de la instruccion "End Sub":
Dim stAppName As String
stAppName = "msaccess.exe x:\ruta\Base.mdb"
Call Shell(stAppName, 1)
DoCmd.Quit
Ahora solo basta reemplazar la cadena de caracteres entrecomillada en la 2 linea para que apunte al directorio y archivo MDB deseados. Las comillas hay que mantenerlas.
Hay que hacer notar que la ruta de acceso al archivo MDB ha de especificarse con su nombre corto de MS-DOS; de lo contrario, no se abrira.
trucos access: Forzar a que se guarden los datos introducidos en un formulario en el caso de pulsar un boton definido por el usuario en el mismo formulario
Al rellenar un dato en un formulario y dejar el cursor en el campo que se acaba de modificar para pulsar un boton para imprimir o para cerrar (o lo para lo que sea), los cambios hechos se pierden. Se soluciona pasando el cursor a otro campo pero interesa que sea automatico. Para ello, hay que incluir el siguiente codigo en el evento Al hacer clic de cada boton:
DoCmd.RunCommand acCmdSaveRecord
Esto solo funciona en Access 97 o posterior. En Access 7.0 la sintaxis seria:
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
trucos access: Forzar la aparicion de los datos de un registro existente al introducir uno de los datos
Supongamos que al introducir un DNI queremos que aparezcan los demas datos de una persona, si es que existe en la base de datos y, si no, poder introducir sus datos. Para ello hay que crear 2 tablas y despues relacionarlas entre si. Una de ellas contendra solo el campo del DNI y la otra contendra todos los datos (incluido el DNI tambien).
Para introducir datos hay que crear un formulario con origen en la primera tabla (la mas pequea) que incluya el campo del DNI referente a esa primera tabla y ademas un subformulario con origen en la segunda tabla que presentara el resto de los datos excepto el del DNI, que se debe establecer como No visible en sus propiedades.
trucos access: Forzar a que el valor introducido en un campo del formulario se quede como predeterminado para subsiguientes registros
Estando en modo de diseo del formulario, pulsar el boton de Codigo (o elegir Ver/Codigo). Si no se ha introducido nunca codigo, aparecera solo una o dos lineas con algo asi:
Option Compare Database
Teclear en la linea siguiente:
Dim CampoTrabajo As String
Con ello se define un campo de trabajo para todo el formulario llamado CampoTrabajo y de tipo caracter; tambien se podria utilizar Integer, Long, Real, etc. ya que debe ser igual a como este definido en la tabla de la base de datos.
Luego ir a la ventana de propiedades del Formulario, buscar el evento Despues de actualizar, elegir Procedimiento de evento, pulsar despues sobre el boton de los tres puntos, con lo cual se abre de nuevo la ventana de codigo, en este caso con tres lineas como las siguientes:
Private Sub Form_AfterUpdate()
End Sub
Entre ellas se tecleara:
CampoTrabajo = [Campo]
suponiendo que el campo que se desea que salga predeterminado sea Campo. Buscar despues la propiedad Antes de insertar, seleccionar Procedimiento de evento, pulsar el boton de los tres puntos y aparecera:
Private Sub Form_BeforeInsert(Cancel As Integer)
End Sub
Teclear entre ellas:
[Campo] = CampoTrabajo
Si este campo no es el primero del registro, cuando se introduzca el primer caracter en el siguiente registro aparecera el valor en el campo deseado.
Nota:
Puede aparecer un problema al operar con el primer registro de la tabla, para lo cual hay dos posibilidades:
1) Permitir a [campo] longitud cero en sus propiedades dentro de la tabla.
2) En el codigo del evento Antes de insertar, en lugar de poner
[campo]=CampoTrabajo
poner:
If Len(CampoTrabajo) >0 Then
[campo] = CampoTrabajo
End If
trucos access: Forzar a que un formulario se abra mostrando el ultimo registro introducido
Al abrir un formulario, siempre se abre por defecto mostrando el primer registro introducido. Para forzar que se abrir con el ultimo, acceder a sus propiedades y en la seccion Al cargar, elegir Procedimiento de evento, luego pulsar sobre el boton de los puntos suspensivos e insertar el siguiente codigo:
DoCmd.GoToRecord , , acLast
trucos access: Aadir todos los campos a la vez de una tabla a la cuadricula de una consulta
Cuando se va a crear una consulta, siempre aparece un cuadro que incluye los campos de las tablas elegidas. Si se pretenden coger todos los campos, el metodo mas eficaz es hacer doble clic sobre el titulo de la tabla y quedaran seleccionados todos los campos que tenga. Luego basta un solo arrastre para que todos los campos se integren en la cuadricula de la consulta.
trucos access: Aadir un boton de automarcado
Si alguna vez se necesita llamar a alguien por telefono mientras se esta una base de datos, he aqui como. Desde el modo Diseo del formulario, hacer clic sobre el icono del asistente de botones de comando en la caja de herramientas. Seleccionar Otros en la ventana Categorias y Automarcador en la ventana Acciones. Hacer clic en Siguiente, elegir una imagen o texto para el boton y hacer clic en finalizar, despues cambiar al modo Formulario y probar el boton. Poner el cursor en el campo de numero de telefono del formulario, hacer clic en el boton recien creado, y cuando el dialogo de Marcado telefonico automatico aparezca, elegir Aceptar.
Cuando suene el telefono, descolgar y hacer clic en el boton de hablar en la ventana de dialogo de Marcado telefonico automatico.
trucos access: Aadir un nuevo elemento a un cuadro combinado cuyo origen de la fila es una tabla no actualizable
Muchas veces se crean tablas para las que no nos molestamos en hacer formularios de mantenimiento, como pueden ser tablas de paises o de codigos postales. Sin embargo, utilizamos estas tablas en cuadros combinados, con lo que existe la posibilidad de que el usuario quiera aadir un nuevo elemento a la lista. Mediante el siguiente procedimiento se aade un nuevo pais a la tabla de paises sin necesidad de abrir un formulario de altas. En la propiedad Al no estar en la lista del cuadro combinado insertar el siguiente codigo:
Sub id_pais_notinlist(newdata as string,response as integer)
dim mensaje as string,titulo as string,respuesta as integer
dim db as database,r as recordset,codigo as byte
mensaje = "El elemento no se encuentra en la lista. Desea aadirlo?"
titulo = "Nuevo Pais"
respuesta = msgbox(mensaje,36,titulo)
if respuesta = 6 then 'Si se desea dar de alta el nuevo elemento
set db = currentdb()
set r = db.openrecordset(Tpais)
codigo = ult_idpais() + 1 'Funcion que obtiene el ultimo codigo de pais de la tabla
r.addnew
r![id_pais] = codigo
r![nombre] = newdata
r.update
r.close
origen = "Select id_pais,nombre From Tpais" 'Se actualiza el origen de la fila
me![id_pais].rowsource = origen
me![id_pais].requery
me![id_pais] = codigo 'Se asigna el nuevo codigo
else
me![id_pais] = null
docmd.gotocontrol "id_pais"
end if
response = data_errcontinue
End Sub
La funcion ult_idpais() podria ser de la siguiente forma:
Private Function ult_idpais() As Byte
Dim db As Database
Dim ssTmp As Recordset
Dim sSQL As String
Dim yCodigo As Byte
sSQL = "SELECT Max(id_pais) AS UltCodigo FROM Tpais"
Set db = currentdb()
Set ssTmp = db.OpenRecordset(sSQL, dbOpenSnapshot, dbForwardOnly)
yCodigo = ssTmp!UltCodigo
ssTmp.Close
Set ssTmp = Nothing
Set db = Nothing
Return yCodigo
End Function
trucos access: Cambiar el valor inicial de un contador
* Crear una tabla que contenga el campo autonumerico pero no introducir ningun numero.
* Crear una segunda tabla, con un campo de tipo numerico y tipo Entero Largo y que tenga el mismo nombre que el de tipo contador de la primera tabla.
* Introducir un registro en la segunda tabla que sea un numero menor del que se desea que sea el inicial.
* Crear un consulta para agregar datos a una tabla, a fin de agregar el dato de la segunda tabla a la primera.
* Ejecutar la consulta y ya se tendra un contador desde el valor deseado.trucos access: Cambiar la plantilla de formularios por defecto
Si se suele utilizar siempre un formato diferente al que Access proporciona para los formularios, se puede configurar para que aparezca siempre una plantilla personalizada. Para ello, una vez creado el formato de formulario, guardarlo con cualquier nombre dentro de una base de datos cualquiera y elegir Herramientas/Opciones. Dentro de la ficha Formularios/Informes introducir el nombre dado a la plantilla para reemplazar a la que viene por defecto y aceptar los cambios. Las siguientes veces, Access se iniciara con la nueva plantilla para formularios.
trucos access: Cambiar el formato de una tabla
Abrir una tabla en modo normal y elegir Ver/Barras de herramientas/Formato (hoja de datos). En la nueva barra apareceran botones para cambiar el tipo de letra y su tamao, asignar color para el fondo de la tabla, para los caracteres y para las lineas, asi como elegir el formato para las lineas de la estructura, pudiendo hacer que desaparezcan las lineas de la cuadricula o solo hacer desaparecer las lineas horizontales, etc.
trucos access: Crear un formulario principal unido a un subformulario
Aqui se muestra la manera de crear un formulario resumen que proporcione la imagen principal, asi como un subformulario con detalles:
* Relacionar las tablas del formulario principal y del subformulario, escogiendo Relaciones del menu principal de Herramientas; entonces seleccionar Mostrar tabla.
* Aadir las tablas del formulario y subformulario al espacio de trabajo Relaciones, seleccionandolas de la lista Mostrar tabla; despues hacer clic en Aadir.
* Arrastrar el campo primario en negrita de la tabla del formulario principal al campo del mismo nombre en la tabla del subformulario.
* Hacer clic en Crear en el dialogo Relaciones, cerrar la ventana y guardar la nueva relacion.
* Ejecutar el asistente de formularios. En la primera pantalla escoger las tablas del formulario y subformulario especificando que campos se deben mostrar en los dos formularios.
* Hacer clic en Siguiente, y el asistente le preguntara como quiere ver los datos.
* Asegurarse de seleccionar el boton de radio Formulario con subformulario.
* Elegir un formato para los datos y un estilo general.
* Elegir un nombre para los nuevos formularios.
trucos access: Crear una suma continua en un formulario
Para crear una suma continua en un formulario, la tabla sobre la que esta basada debe contener al menos un campo autonumerico (en las versiones 1.x o 2.0, un campo contador). Si la tabla no contiene ese campo, se puede abrir la tabla en modo diseo y crear el campo.
El siguiente ejemplo utiliza una tabla que contiene tres campos: Contador (Campo Autonumerico), Cantidad (Campo numerico) y Total (Campo Numerico). La tabla se llama Prueba.
Crear un formulario nuevo basado en la tabla Prueba.
Formulario: Formulario1
------------------------
OrigendelRegistro: Prueba
Cuadro de Texto: Contador
Origen del Control: Contador
Cuadro de Texto: Cantidad
Origen del Control: Cantidad
Cuadro de Texto: Total
Origen del control: =Dsum("[Cantidad]";"Prueba";"[Contador]