PREGUNTAS CONTESTADAS - Access

 Hay un total de 676 Preguntas.<<  >> 

    Pregunta:  59296 - CRECIMIENTO BBDD ACCESS
Autor:  monica pineda
tenemos una bbdd en access 2003 que está dividida en dos, una contiene las tablas y la otras las consultas, formularios e informes.
la bbdd que contiene las tablas ocupa unos 4,5 MB, pero la de las consultas, formularios, etc. ocupaba esta mañana unos 55 MB, esto me ha extrañado porque solo contiene 10 consultas, 6 informes, y 80 formularios así que le he dado a compactar y repara y ahora ocupa 78 MB ¿cómo es esto posible?
  Respuesta:  Jose Ignacio Alvarez Rodriguez
Monica, deberias volver a compactar la mdb de 78 mb. Esta bien que tengas separados los datos de los formularios. Es la forma en que Microsoft recomienda montar una aplicaccion access,

De esta forma la mbd de datos permance estable, cuando la que se "carga" y "crece" es la otra la de programas. Esto se debe a que en access todas las operacion de ordenacion de datos, de updates, etc generan tablas del sistema temporales que solo se pueden eliminar compactando y reparando.

Yo volveria a compactar a lo mejor la primera vez no te fue bien....

    Pregunta:  59326 - COMBO BOX NO DEVUELVE RECORD COMPLETO
Autor:  alejandro velasco
tengo una aplicación realizada enteramente en ms access 2003, utilicé un combo box para obtener los datos de una tabla. El tipo de dato es memo y el contenido del record es mayor a 255 caracteres. al momento de seleccionar el record, este me muestra solamente 250 caracteres.

No sé por que razón no es posible mostrar el contenido completo del record almacenado.

El query está bien porque me devuelve todo el contenido cuando algo una consulta directamente a la base de datos.

El contenido del record es una plantilla la cual puedo modificar y guardarla si lo requiero.

GRacias por la ayuda.
  Respuesta:  Nicolás Pailhé
Hola Alejandro, verifica que no le has dado ningun formato a las propiedades del campo (tanto en las tablas como en el formulario), como por ejemplo el símbolo > ó < (mayor ó menor) para que el texto aparezca en mayúsculas o minúsculas respectivamente, esto limita la cantidad de caracteres.
De todas formas no podría afirmarte que los campos combo muestren más de 250 caracteres.
Tendrías que replantearte si realmente es necesario levantar datos MEMO en un combo box, no le veo demasiada utilidad, pero desconozco cual es el objetivo.
Saludos.
Nicolás

    Pregunta:  59332 - EVAL
Autor:  Antonio Bergottini
Necesito Ejecutar una función cuyo nombre esta en un String.
Para ejecutar la funcion que se encuentra alojada en el string MS Access dice que se puede usar la Funciom EVAL.
Incluso da un ejemplo que acompaño.
Pero al ejecutarla me tira el siguiente error:"La expresion que introdujo contiene un nombre de funcion que MS Access no puede encontrar"

Nota: He revisado en la pagina la unica pregunta/respuesta sobre EVAL
Pero en mi caso el nombre de la función que necesito ejecutar se encuentra en un string.

Al que me pueda ayudar muchas gracias.

Este es el ejemplo sacado de la ayuda en linea de Access 2003
Ejemplo de la función Eval

El siguiente ejemplo supone que tiene una serie de 3 funciones definidas como A1, A2 y así sucesivamente. Este ejemplo utiliza la función Eval para llamar a cada función de la serie.

Sub CallSeries()
Dim entI As Integer
For entI = 1 To 3
Eval("A" & entI & "()")
Next entI
End Sub

Function A1()
MsgBox "A1"
End Function

Function A2()
MsgBox "A2"
End Function

Function A3()
MsgBox "A3"
End Function
  Respuesta:  Jose Ignacio Alvarez Rodriguez
Acabo de probarlo y funciona, pero de una forma un poco particular, me explico:
si pones el codigo tal cual en un formulario, no funciona, pero dividiendo el codigo de forma que el sub Call series() este en un formulario y las 3 funciones en un modulo, asi funciona perfectamente.

    Pregunta:  59444 - TAMAÑO SECCIÓN DETALLE INFORME ACCESS
Autor:  Paula Alonso Cantón
¿Es posible controlar el tamaño de la sección detalle en un informe de Access de manera que, independientemente del número de registros que se impriman, tenga siempre el mismo tamaño?
Gracias
  Respuesta:  Lenin Notas Académicas valderrama alvis
En el software de notas que promociono para los Colegios, necesité algo similar, y lo que hice fue colocar todos los objetos, y luego programar el tamaño del Detalle y la posición de los campos. El código que se coloca al dar formato es(Aunque es como guía porque depende de cada caso):
On Error GoTo Errorleva

If Me.codasighist = 1 Then '1 ES COMPORTAMIENTO EN LA ASIGNATURA
Me.DIRECTORG = Me.coddochist
End If
Me.Detalle.Height = 3000
For X = 1 To 10
posi(X) = 0
Next X
If Me.nrolog11 > posi(1) Then posi(1) = Me.nrolog11
If Me.nrolog12 > posi(2) Then posi(2) = Me.nrolog12
If Me.nrolog13 > posi(3) Then posi(3) = Me.nrolog13
If Me.nrolog14 > posi(4) Then posi(4) = Me.nrolog14
If Me.nroval11 > posi(5) Then posi(5) = Me.nroval11
If Me.nroval12 > posi(6) Then posi(6) = Me.nroval12
If Me.nroval13 > posi(7) Then posi(7) = Me.nroval13
POSIF(1) = 250
POSIF(2) = 670
POSIF(3) = 1090
POSIF(4) = 1510
POSIF(5) = 1930
POSIF(6) = 2350
POSIF(7) = 2770
For X = 1 To 7
If posi(X) > 0 Then
posi(X) = 1
End If
If posi(X) = 0 Then
For y = 7 To X Step -1
POSIF(y) = POSIF(y - 1)
Next y
POSIF(X) = 0
POSIF(8) = 0
End If
Next X
Dim VALOR(3) As String
VALOR(1) = "TRUE"
VALOR(0) = "FALSE"


Me.n11n.Visible = VALOR(posi(1))
Me.n11n.Top = POSIF(1)
Me.n12n.Visible = VALOR(posi(2))
Me.n12n.Top = POSIF(2)
Me.n13n.Visible = VALOR(posi(3))
Me.n13n.Top = POSIF(3)
Me.n14n.Visible = VALOR(posi(4))
Me.n14n.Top = POSIF(4)


Me.n11.Visible = VALOR(posi(1))
Me.nrolog11.Visible = VALOR(posi(1))
Me.nrolog11desc.Visible = VALOR(posi(1))
Me.n11.Top = POSIF(1)
Me.nrolog11.Top = POSIF(1)
Me.nrolog11desc.Top = POSIF(1)
Me.n12.Visible = VALOR(posi(2))
Me.nrolog12.Visible = VALOR(posi(2))
Me.nrolog12desc.Visible = VALOR(posi(2))
Me.n12.Top = POSIF(2)
Me.nrolog12.Top = POSIF(2)
Me.nrolog12desc.Top = POSIF(2)
Me.n13.Visible = VALOR(posi(3))
Me.nrolog13.Visible = VALOR(posi(3))
Me.nrolog13desc.Visible = VALOR(posi(3))
Me.n13.Top = POSIF(3)
Me.nrolog13.Top = POSIF(3)
Me.nrolog13desc.Top = POSIF(3)
Me.n14.Visible = VALOR(posi(4))
Me.nrolog14.Visible = VALOR(posi(4))
Me.nrolog14desc.Visible = VALOR(posi(4))
Me.n14.Top = POSIF(4)
Me.nrolog14.Top = POSIF(4)
Me.nrolog14desc.Top = POSIF(4)
Me.nroval11.Visible = VALOR(posi(5))
Me.nroval11des.Visible = VALOR(posi(5))
Me.nroval11.Top = POSIF(5)
Me.nroval11des.Top = POSIF(5)
Me.nroval12.Visible = VALOR(posi(6))
Me.nroval12des.Visible = VALOR(posi(6))
Me.nroval12.Top = POSIF(6)
Me.nroval12des.Top = POSIF(6)
Me.nroval13.Visible = VALOR(posi(7))
Me.nroval13des.Visible = VALOR(posi(7))
Me.nroval13.Top = POSIF(7)
Me.nroval13des.Top = POSIF(7)
VALOR1 = 0
For y = 1 To 7
If (POSIF(y) > VALOR1) Then
VALOR1 = POSIF(y)
End If
Next y
Me.Detalle.Height = VALOR1 + 300

Exit Sub
Errorleva:
Exit Sub

    Pregunta:  59452 - DOS DUDAS SOBRE FORMULARIOS
Autor:  Jaime Curiel Acosta
Buenas, estoy construyendo una pequeña base de datos y se me han generado dos dudas sobre el funcionamiento de formularios:

1ª .- Tengo dos campos desplegables en el formulario, cada uno depende de una tabla distinta, de las cuales una es "hija" de la otra. ¿cómo puedo hacer para que al seleccionar un valor en un campo del formulario en el otro campo sólo se me despliguen los valores relacionados con el primero? Lo que me ocurre es que, seleccione lo que seleccione en el primer campo, en el 2º se me despliegan también todos los valores existentes, no sólo los relacionados con el 1º

2ª .- No sé si existe la posibilidad de crear una consulta de modo que se puedan rellenar algunos datos de la misma a modo de un filtro por formulario, para que los usuarios puedan variar algunos parámetros de la consulta antes de ejecutarla, sin tener que entrar al diseño de la misma.

Muchas gracias!
  Respuesta:  Nicolás Pailhé
Hola Jaime, respecto a la primer pregunta:

En las propiedades del 2do campo (Solapa "Datos" - "Origen de la Fila") tenes que generar una consulta, en esa consulta agregas las dos tablas, relacionas las dos tablas entre los campos que se repiten en ambas, y agregas a la consulta el 1er y 2do campo (uno de cada tabla)
en el criterio del 1er campo debes "llamar" el dato seleccionado en el formulario.. supongamos que tu base es de Automotores, y tienes dos tablas, una que se llama MARCA y otra que se llama MODELO. El formulario se llama AUTOMOTOR.
Entonces, en los campos que agregas a la consulta son: MARCA (1er campo) y MODELO (2do campo)
En el criterio de MARCA (1er campo) pones lo siguiente:
=forms![AUTOMOTOR].FORM![MARCA]
El resultado de esta consulta dará todos los modelos de la MARCA seleccionada en el formulario. Por ejemplo, si eligieras en el formulario la marca Ford el resultado de la consulta daría los modelos Ka, Focus, F150, Fiesta, Falcon, Taunus, etc.
Como no necesitamos que la consulta nos devuelva la Marca (porque ya la seleccionamos) si no el modelo, destildamos el campo Marca.
Lo único que faltaría es que esta consulta se actualice cada vez que cambie el dato del campo MARCA en el formulario. Para hacer esto debes poner en las propiedades del Campo MODELO (al entrar) REFRESH.
Con esto logramos que cada vez que entremos en el campo MODELO se "actualizarán" los datos dependiendo de lo que seleccionemos en el campo MARCA.
Espero haber sido claro, cualquier consulta enviame un e-mail.

Respecto a la segunda consulta podrías dar un poco más de información de lo que necesitas? no se entiende muy bien cual sería el objetivo de lo que necesitas.

Saludos.. Nicolás

    Pregunta:  59456 - SELECCIONAR REGISTRO CON CUADRO COMBINADO
Autor:  Juan Fco Fernández
Decir ante todo que esta pregunta también la he hecho en el foro para ver si alguien me ofrece una solución.

Tengo un formulario Access2007 basado en una tabla con clave primaria (expediente-año) y otros mas datos.
En el formulario, expediente es un cuadro de texto (porque lo he elegido anteriormente) y el año es un cuadro cominado cuyo origen es una consulta para que sólo salgan en el desplegable los años, para ese expediente, que existen en la base de datos.
Cuando entro en el formualrio salen los datos del registro con menor año (eso me da igual). Lo que quiero hacer es que al cambiar el año, los demás datos que hay en el formulario se cambien (actualicen) para ese expediente y año (que como dije antes es la PK). Estoy intentando, en el evento 'al cambiar' colocar una macro 'irAregistro' pero no logro definir bien la condición where a la hora de referirme a los campos de la tabla y los de mi formulario.
  Respuesta:  Nicolás Pailhé
Hola Juan, intentá poner en el evento "al cambiar" el comando REFRESH.
Cualquier cosa enviame un e-mail.
Saludos.. Nicolás

    Pregunta:  59660 - EJECUTAR UNA MACRO MAS DE 20 VECES
Autor:  Felipe Torres
Lo que deseo hacer es en un formulario el cual solicita un numero inicial y uno final y en base a esos numeros generar una tabla que me de la serie desde el primer numero de uno en uno hasta el ultimo dado, lo puede hacer por medio de una consulta de accion pero la consulta solo lo hace una veces y por medio de una macro que a su vez ejecuta otra macro crear el ciclo pero me dice que acces no pude ejecutar una macro mas de 20 veces, como podria hacerlo o de que manera por medio de un modulo puedo ejecutar una consulta hasta que se cumpla el valor del ultimo numero dado, gracias por su ayuda
  Respuesta:  Carlos A. Caicedo
Intente hacer un modulo en donde utilice FOR NEXT.

    Pregunta:  59710 - IMAGENES VINCULADAS EN UN CAMPO DE LA TABLA
Autor:  Erick Meza
Buenas a todos

Mi Pregunta es: tengo una tabla con un campo tipo OLE y quiero vincular una o varias imagenes a este campo el cual esta relacionado con una tabla padre en la base de datos (para cada registro padre se pueden ver varias imagenes), el problema es que no se como vincular cada imagen al registro padre dentro de la tabla y que se visualisen dentro del formulario.

Gracias a todos por su valioza ayuda.
  Respuesta:  Carlos A. Caicedo
Erick: Yo utilizo el siguiente medoto.
me posiciono sobre el campo a insertar y con el click derecho sigo el asistente, pero he notado que utilizando la opcion del paint, la base no se vuelve pesada.
siga las inmstrucciones del asistente.

    Pregunta:  59746 - COMO CONVERTIR UNA BASE DE DATOS ACCESS 2000 EN ACCESS 95
Autor:  Jacob Vermeij
Tengo muchos programas en VB5. Compré un nuevo computador con Windows XP y Office Professional. No logré instalar Access 95, luego no puedo usar mis programas en VB5 ya que no accepta Access 2000. Una manera para solucionar mi problema, se me ocurre, es usar Access 2000, copiarlo y convertir la copia en Access 95 que es aceptado por VB5. ¿Alguien me puede aconsejarme y decirme como convertir Access 2000 en Access 95?
  Respuesta:  Carlos A. Caicedo
En el menu de herramientas busque Utilidades de la Base de Datos y la opcion Convertir a access 95

    Pregunta:  59767 - COMO ADMITE EN SQL UN NUMERO DECIMAL CON ', '
Autor:  Carlos Raja
Estoy bastante cabreado, en un formulario en el que le tengo unos campos para filtrar, me da problemas uno de ellos ya que creo una nueva consulta con una instrucción SQL, pero no hay manera por que en SQL la separación decimal es '.' y no admite la separación decimal',', lo he intentado con la instruccion format, con CDbl, con todo lo que he encontrado pero no consigo que la insrucción SQL se entere que 128,34 es un numero, el solo entiende 128.34.
  Respuesta:  Jose Ignacio Alvarez Rodriguez
Carlos, no te cabrees mas, microsoft es lo que tiene, Hay una cosa del ACCESS que me MS no ha resuelto correstamente desde la version 1.1 de Access. Te explico, todo el access tiene un molesta dualidad de idiomas. Su usas el genenerado de consultas podras poner la , decimal, pero el internamente lo traduce a SQL y esta en ingles por lo que lo traduce al ingles. la coma pasa a se punto.

Pero mas comico es si intentas poner una condicion en la SQL del pelo de "NOT IS NULL" algu muy comun. En SQL NOT IS NULL es NOT IS NULL claro!!!! en el generador de consultas es : "NEGADO ES NULO" y no lo entiende en ingles...

En fin si te da problemas, para el dato numerico a string y hazle un replace para cambiar la "," por el "."

Saludos,
RKMN

|<  <<  54 55 56 57 58 59 60 61 62 63 64  >>  >|