funcion dcount

21/10/2003 - 13:02 por N.ALBERTE MEIXENGO y Cia, S.L. | Informe spam
Hola a todos
Aunque la pregunta hace referencia a dcount, me parece que no tiene mucho
que ver. CarCar acaba de contestarme a la pregunta de como se sabe el numero
de registros de una tabla. Pues yo tengo el siguiente codigo en el evento al
abrir del formulario de entrada de clientes:
If DCount("codigoclientes", "clientes") = 0 Then
Me.codigoclientes = Val("00001")
End If
Mi intencion es que si no hay ningun cliente que me presente el 1, si hay
algun cliente presentaria el dmax +1, pero me quede en el principio, la
sentencia de asignación de valor al campo codigoclientes, de tipo entero
largo no funciona, ni con un 1 ni con val("00001"), alguien puede decirme
que estoy haciendo mal.
Gracias.
Pablo

Preguntas similare

Leer las respuestas

#1 CarCar
21/10/2003 - 13:39 | Informe spam
Hola, Pablo:

En el evento "Al abrir" del formulario, aún no están
disponibles los controles del formulario, por lo que no
puedes hacer la asignación que intentas. El problema no
es, evidentemente, del Dcount.

Un evento para hacer lo que deseas puede ser "Al activar
registro", así tu código podría quedar así:

Private Sub Form_Current()
If Me.NewRecord = True Then
If DCount("codigoclientes", "clientes") = 0 Then
Me.codigoclientes = 1
Else
Me.codigoclientes = DMax("codigoclientes"
End If
End If
End Sub

Este evento se ejecuta cada vez que nos posicionamos con
el foco en un registro, preguntamos por la
propiedad "NewRecord" que es verdadera sólo cuando estamos
en un registro "nuevo" que es cuando interesa hallar
el "codigoclientes".

Saludos,
CarCar
MVP-Access


Hola a todos
Aunque la pregunta hace referencia a dcount, me parece


que no tiene mucho
que ver. CarCar acaba de contestarme a la pregunta de


como se sabe el numero
de registros de una tabla. Pues yo tengo el siguiente


codigo en el evento al
abrir del formulario de entrada de clientes:
If DCount("codigoclientes", "clientes") = 0 Then
Me.codigoclientes = Val("00001")
End If
Mi intencion es que si no hay ningun cliente que me


presente el 1, si hay
algun cliente presentaria el dmax +1, pero me quede en el


principio, la
sentencia de asignación de valor al campo codigoclientes,


de tipo entero
largo no funciona, ni con un 1 ni con val("00001"),


alguien puede decirme
que estoy haciendo mal.
Gracias.
Pablo



.

Respuesta Responder a este mensaje
#2 N.ALBERTE MEIXENGO y Cia, S.L.
21/10/2003 - 15:54 | Informe spam
Hola CarCar:
No se si sera lo mas facil o lo mas dificil, para mi el gran problema de VBA
es saber cuando se activan los eventos, en que evento escribir el codigo,
como en este caso, en el evento current y no en el open.
Gracias.
Pablo.

"CarCar" escribió en el mensaje
news:0a2301c397c7$f29960d0$
Hola, Pablo:

En el evento "Al abrir" del formulario, aún no están
disponibles los controles del formulario, por lo que no
puedes hacer la asignación que intentas. El problema no
es, evidentemente, del Dcount.

Un evento para hacer lo que deseas puede ser "Al activar
registro", así tu código podría quedar así:

Private Sub Form_Current()
If Me.NewRecord = True Then
If DCount("codigoclientes", "clientes") = 0 Then
Me.codigoclientes = 1
Else
Me.codigoclientes = DMax("codigoclientes"
End If
End If
End Sub

Este evento se ejecuta cada vez que nos posicionamos con
el foco en un registro, preguntamos por la
propiedad "NewRecord" que es verdadera sólo cuando estamos
en un registro "nuevo" que es cuando interesa hallar
el "codigoclientes".

Saludos,
CarCar
MVP-Access


Hola a todos
Aunque la pregunta hace referencia a dcount, me parece


que no tiene mucho
que ver. CarCar acaba de contestarme a la pregunta de


como se sabe el numero
de registros de una tabla. Pues yo tengo el siguiente


codigo en el evento al
abrir del formulario de entrada de clientes:
If DCount("codigoclientes", "clientes") = 0 Then
Me.codigoclientes = Val("00001")
End If
Mi intencion es que si no hay ningun cliente que me


presente el 1, si hay
algun cliente presentaria el dmax +1, pero me quede en el


principio, la
sentencia de asignación de valor al campo codigoclientes,


de tipo entero
largo no funciona, ni con un 1 ni con val("00001"),


alguien puede decirme
que estoy haciendo mal.
Gracias.
Pablo



.

Respuesta Responder a este mensaje
#3 Búho
21/10/2003 - 16:12 | Informe spam
Hola Pablo. Yo tambien dudo muchas veces de eso...y mas en los eventos de
los cuadros de texto, por ejemplo: AL Cambiar, antes de actualizar, despues
de actualizar, al perder el enfoquela verdad que hay que estar muy
entrenado (programando con frecuencia, cosa que yo no hago) para tenerlo
meridianamente claro. Yo sinceramente, cuando tengo que hacer algo con este
tipo de objetos, al menos que sea muy claro, me lo tengo que mirar para ver
en qué evento es mas conveniente poner el codigo.

No obstante un metodo sencillo para ver el orden de los eventos (Ademas de
mirar la ayuda de Access, que sí que viene)...es meter un punto de
interrupcion en codigo (En Open o en Load) y seguir el curso del código


Saludos desde Valladolid
Francisco Javier García Aguado
Respuesta Responder a este mensaje
#4 CarCar
21/10/2003 - 17:19 | Informe spam
Hola Pablo:

Pues no te digo yo que no, pero también es una cosa de
pensar en ello...

Por ejemplo, vas a tener que asignar el número de
identificación, no al abrir el formulario, porque sería
muy normal que una vez abierto, des de alta uno, luego
otro y luego otro. Eso implica que la acción no la debes
incluir en algo que se ejecuta una sola vez, sino en algo
que se ejecute para CADA registro.

Como te dice Búho en la ayuda hay algún sitio en dónde
explican el orden en el que se ejecutan los diversos
eventos en los formularios, es algo muy útil de leer.

Saludos,
CarCar
MVP-Access


Hola CarCar:
No se si sera lo mas facil o lo mas dificil, para mi el


gran problema de VBA
es saber cuando se activan los eventos, en que evento


escribir el codigo,
como en este caso, en el evento current y no en el open.
Gracias.
Pablo.

"CarCar" escribió en el mensaje
news:0a2301c397c7$f29960d0$
Hola, Pablo:

En el evento "Al abrir" del formulario, aún no están
disponibles los controles del formulario, por lo que no
puedes hacer la asignación que intentas. El problema no
es, evidentemente, del Dcount.

Un evento para hacer lo que deseas puede ser "Al activar
registro", así tu código podría quedar así:

Private Sub Form_Current()
If Me.NewRecord = True Then
If DCount("codigoclientes", "clientes") = 0 Then
Me.codigoclientes = 1
Else
Me.codigoclientes = DMax("codigoclientes"
End If
End If
End Sub

Este evento se ejecuta cada vez que nos posicionamos con
el foco en un registro, preguntamos por la
propiedad "NewRecord" que es verdadera sólo cuando estamos
en un registro "nuevo" que es cuando interesa hallar
el "codigoclientes".

Saludos,
CarCar
MVP-Access


Hola a todos
Aunque la pregunta hace referencia a dcount, me parece


que no tiene mucho
que ver. CarCar acaba de contestarme a la pregunta de


como se sabe el numero
de registros de una tabla. Pues yo tengo el siguiente


codigo en el evento al
abrir del formulario de entrada de clientes:
If DCount("codigoclientes", "clientes") = 0 Then
Me.codigoclientes = Val("00001")
End If
Mi intencion es que si no hay ningun cliente que me


presente el 1, si hay
algun cliente presentaria el dmax +1, pero me quede en el


principio, la
sentencia de asignación de valor al campo codigoclientes,


de tipo entero
largo no funciona, ni con un 1 ni con val("00001"),


alguien puede decirme
que estoy haciendo mal.
Gracias.
Pablo



.





.

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida