Problemas con formularios no abre al pasar de ciertos registros

Tengo un problema que me esta volviendo loco en access a ver si alguien me puede arrojar un poco de luz.

Tengo una formulario basado en una consulta en la que tengo registros de varias tablas y algunos campos calculados. El problema es que cuando paso de 1027 registros la consulta no se me abre y me bloquea el access, alguien puede decirme por donde pueden andar los tiros. Comentar que estoy bastante pez en esto de access y lo mismo es una tonteria pero no doy con el error.

1 Respuesta

Respuesta
2

Raro, raro. En principio, en una consulta puedes "tener" hasta 1 gigabyte. Por eso sería conveniente saber como es la construcción de la consulta. Por ejemplo

Puedes ver que la consulta tiene más registros.

Le he dado, si querer, a Enviar. Mira como si abre el formulario

Gracias por tu pronta respuesta, el caso es que si borro de la tabla algún registro da igual si del principio o del final, me vuelve a dejar abrir tanto el formulario como la consulta en la que esta basado dicho formulario y da igual de donde borre los registros (he probado a borrar del principio, del final y del medio) y me vuelve a dejar abrir hasta alcanzar este limite

como aclaración una vez que la consigo abrir puedo meter cuantos registros quiera y me los guarda en la tabla perfectamente pero si vuelvo abrir y me paso de os malditos 1027 registros me vuelve a bloquear la base de datos

Si quieres repito, si quieres, mándame una copia vacía de la(s) tabla(s), consulta(s) y el formulario a [email protected] Es que no me imagino porqué sucede

Si lo haces, en el asunto del mensaje pon tu alias Jorge Cuesta, ya que si no sé quien me escribe ni los abro.

muchas gracias de nuevo, te he enviado la bbdd entera por si quieres probar a borrar registros o lo que sea, un saludo

Solucionado por correo gracias a Icue Gonzalez, no había por donde coger la base de datos por llamarla de alguna manera, nada más que agradecer el esfuerzo y las molestias que se ha tomado conmigo un 10 por él

Buenas noches abusando de tu confianza y ya que has revisado la bd me encuentro en otro problema. he seguido tus consejos y he eliminado las  relaciones haciendo subformularios.

bien ahora tengo un subformulario materiales y en el pie del formulario tengo un campo calculado que saca el sumatorio de todos los materiales.

ahora quiere que ese campo calculado lo guarde en un campo de la tabla, se puede hacer? y si es así me echas un cable a ver como puedo hacerlo, de nuevo muchas gracias

Puedes hacerlo de mil formas distintas. Por ejemplo, supongamos que tengo la tabla Compras como ésta

Es decir, el control Importe del formulario tiene como origen del control un campo de la tabla. En el subformulario a medida que voy poniendo cantidades

En este caso, en el evento Después de actualizar del cuadro de texto Cantidad del subformulario le digo

Private Sub Cantidad_AfterUpdate()
Subtotal = Precio * Cantidad
DoCmd.RunCommand acCmdSaveRecord
Me.Parent!Importe = DSum("subtotal", "detallecompra", "idcompra=" & Me.IdCompra & "")
End Sub

Es decir, multiplica el precio por la cantidad y me lo pones en el control Subtotal. Luego guárdame el registro( lógicamente en la tabla Detalle de compra) y en el control Importe del formulario padre(me.parent) ponme la suma de los subtotales de los "diferentes productos" que he he comprado y que tienen el mismo Idcompra(campo que relaciona el formulario con el subformulario).

En caso de que ese cuadro de texto que dices no tenga origen del control, por ejemplo

En el evento Al recibir el enfoque del cuadro de texto Texto7 le pongo

Private Sub Texto7_GotFocus()
Texto7 = DSum("subtotal", "detallecompra", "idcompra=" & Me.IdCompra & "")
End Sub

De forma que cuando pongo el cursor(aunque podría ser en cualquier otro evento) en el cuadro de texto

Pero como te decía se puede hacer de muchas formas

ok de nuevo muchísimas gracias, eso lo tenia echo de otra forma seguramente peor pero ya tenia el resultado, lo que quiero aunque se que no debe ser muy ortodoxo es guardar el valor que tienes en campo 7 en la tabla principal.

Como te decía, en el caso de que el cuadro de texto tenga origen del control( que lógicamente es lo más cómodo) el valor se lo tienes que dar en código(caso del primer ejemplo) y ya te lo guarda en el campo que figura el el origen del control. En el caso de que el cuadro de texto no tuviera origen de control tendrías que usar

Docmd.runsql"update compras set importe=" & me.texto7 & " where idcompra=" & me.idcompra & ""

Es decir, actualízame el valor del campo Importe de la tabla compras al valor que aparece en el cuadro de texto Texto7, en aquel registro en que el valor de Idcommpra sea igual al valor de Idcompra que figura en ese momento en el formulario.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas