Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Problema con DCount

448 views
Skip to first unread message

PJuan

unread,
Dec 19, 2009, 5:27:20 PM12/19/09
to
En un cuadro de texto le pongo en el evento al recibir foco.

DCount("[NAlbaran]", "TblNAlbaran", "[CodigoCliente]=" & Me.CombiCodCliente
And [Facturado] = 'N' and [FechaAlbaran] Entre Me.FechaDesde y
Me.FechaHasta)

Pero no me funciona, me lio con los criterios
Agradeceria alguien me echara una mano
Saludos

kinito11

unread,
Dec 20, 2009, 10:16:01 AM12/20/09
to
hola, prueba asi a ver si por un casual funciona
DCount("[NAlbaran]", "TblNAlbaran", "[CodigoCliente]=" & Me.CombiCodCliente
& "And [Facturado] = 'N'And [FechaAlbaran] Between #" & CDate(Me.FechaDesde)
& "# And #" & CDate(Me.FechaHasta) & "#") <> 0
--
Joaquín Ruiz Garcia


"PJuan" escribió:

> .
>

PJuan

unread,
Dec 20, 2009, 2:52:07 PM12/20/09
to
Pues no, me da error de sintaxis.
El resultado le quiero, porque si es igual a cero, que no se me abra una
consulta.

Es posible que exista otra solucion para saber si una consulta devuelve cero
registros, y en caso de ser asi parar el codigo y poner un msgbox.
Saludos


"kinito11" <kini...@hotmail.com> escribió en el mensaje de
noticias:8A9A40F9-D718-4C13...@microsoft.com...

Patxi Sanz

unread,
Dec 21, 2009, 6:08:55 AM12/21/09
to
1.- Falta un espacio entre la comilla simple (') y el AND.

2.- Yo prefiero Format que CDate, para evitar problemas con los formatos de
fecha.

3.- Como cuentas registros, puedes usar el asterisco en vez del nombre del
campo.

4.- Se supone que el campo CodigoCliente es numérico, y que el control
CombiCodCliente devuelve la columna con el número del código.

DCount("*", "TblNAlbaran", "[CodigoCliente]=" & Me.CombiCodCliente


& "And [Facturado] = 'N' And [FechaAlbaran] Between #" &

Format(Me.FechaDesde, "mm/dd/yyyy")
& "# And #" & Format(Me.FechaHasta, "mm/dd/yyyy") & "#")

--
Un saludo,


Patxi Sanz
Tudela (NA)

PJuan

unread,
Dec 23, 2009, 2:47:25 PM12/23/09
to
Lo pruebo cuando tenga un rato y te cuento
Gracias

"Patxi Sanz" <patxisanz[ARROBA]yahoo[PUNTO]es> escribió en el mensaje de
noticias:486067C7-6A4E-4E1E...@microsoft.com...

PJuan

unread,
Dec 24, 2009, 6:53:14 PM12/24/09
to
Me funciona perfecto,... Ya si lo entediera seria la ostia.
Lo primero DCount("*",... lo entiendo bien, el resto son tres criterios, el
primero numerico, el segundo texto y el ultimo entre fechas.

1er criterio: "[CodigoCliente]=" & Me.CombiCodCliente & " Veo tres " una
se quedara sin cerrar???, o cerrara con la ultima del 3er criterio??

2º criterio: [Facturado] = 'N' ok, este lo entiendo, como es texto
comilla simple.

3er criterio: [FechaAlbaran] Between #" & Format(Me.FechaDesde,

"mm/dd/yyyy") & "# And #" & Format(Me.FechaHasta, "mm/dd/yyyy") & "#")

En este, ya es que me quedo sin simbolos extraños en el teclado para
escribir tantas cosas.

Pero bueno, muchas gracias de todas formas. Ademas, despues de escribir
esto, lo he pegado en Word, lo he coloreado y parece que lo entiendo algo
mejor.
Gracias muchas

"Patxi Sanz" <patxisanz[ARROBA]yahoo[PUNTO]es> escribió en el mensaje de
noticias:486067C7-6A4E-4E1E...@microsoft.com...

Patxi Sanz

unread,
Dec 26, 2009, 5:08:28 AM12/26/09
to
Como tenemos que crear un texto con los criterios que deseamos, usamos:

" -> para delimitar todo el texto. No puede haber 3 comillas dobles,
tendríamos un error. La tercera comilla que dices es el inicio de un texto
fijo, y acaba con la cuarta.

& -> para concatenar (unir) las distintas partes: lo que es literal o no
cambia nunca ("[CodigoCliente]=") con los datos que vamos a recoger, en este
caso, del formulario y que cambiarán de un registro a otro
(Me.CombiCodCliente).

# -> sirve para decirle a Access que lo que hay entre 2 almohadillas (#) es
un literal de fecha. Pero Access necesita que los literales de fecha sean
formateados como mes/día/año, por eso usamos Format: #12/26/2009# es el día
26 de diciembre de 2009.

' -> sirve para delimitar un texto dentro de otro texto. Así como tenemos
que delimitar el texto "[CodigoCliente]=", en este caso tenemos que decirle
a Access que la N es un texto, y usamos la comilla simple porque ya estamos
usando la comilla doble para delimitar el texto completo. También podemos
usar 2 comillas dobles: "And [Facturado] = ""N""

Si antes del DCount pones algo así:

MsgBox "[CodigoCliente]=" & Me.CombiCodCliente & "And [Facturado] = 'N' And

[FechaAlbaran] Between #" & Format(Me.FechaDesde, "mm/dd/yyyy") & "# And #"
& Format(Me.FechaHasta, "mm/dd/yyyy") & "#"

Verás en qué se convierte el "chorizo" con el que alimentas a Access ;-)

PJuan

unread,
Dec 26, 2009, 2:28:43 PM12/26/09
to
Mil gracias. Eres mejor que un libro abierto.
Saludos

"Patxi Sanz" <patxisanz[ARROBA]yahoo[PUNTO]es> escribió en el mensaje de

noticias:C3820249-7CB8-4D43...@microsoft.com...

Patxi Sanz

unread,
Dec 26, 2009, 3:13:09 PM12/26/09
to
De nada :-)
0 new messages