Access - Error DMax formulario Access 2010

 
Vista:
sin imagen de perfil
Val: 18
Ha disminuido su posición en 8 puestos en Access (en relación al último mes)
Gráfica de Access

Error DMax formulario Access 2010

Publicado por mj (8 intervenciones) el 15/07/2018 11:00:54
Lo primero quiero agradecer el gran trabajo que hacéis. Soy novata en Access pero, gracias a foros como este, voy aprendiendo poco a poco.

El problema que tengo ahora es que llevo varios días atascada con una función que, en principio y según he estado leyendo por los foros, debería ser sencilla. Pero no hay manera de hacerla funcionar…

Tengo un formulario, para introducir los datos en la tabla DETALLE HOJA, con los campos:
INSCRIPCIÓN: Es un cuadro combinado que coge los valores de la tabla, es texto (KA, 1B, Z, 2Y….)
SERIE: Como sugiere su nombre es un número de serie correlativo (varía según la inscripción), que unido en otro campo con el anterior, me crea un código único para cada registro que identifica a cada producto (KA0123, 1B3270, Z5678…)

Yo querría poner en el Evento Al Entrar, por ejemplo, del campo SERIE, que automáticamente me pusiera el valor máximo, que haya en la tabla de los registros que coincidan con la INSCRIPCIÓN, aumentado en 1.
He probado con DMax, pero no soy capaz de hacerla funcionar, he probado todas las combinaciones que he encontrado por los foros, y algunas “inventadas” a la desesperada y no hay manera…

Agradecería que me aclaraseis como tengo que ponerlo. Muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Error DMax formulario Access 2010

Publicado por Anonimo (3316 intervenciones) el 15/07/2018 20:46:36
Publica alguno de esos intentos (aunque no funcionen de momento) y así se podrá ayudar, intentar aplicar ejemplos sin entender como funcionan ….. (si se 'sabe' como funcionan el problema será una nimiedad).
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 18
Ha disminuido su posición en 8 puestos en Access (en relación al último mes)
Gráfica de Access

Error DMax formulario Access 2010

Publicado por mj (8 intervenciones) el 15/07/2018 23:22:27
Muchas gracias, por responder. Al final he conseguido que funcionara, "bueceando" por foros y demás..

Como bien dices, debía ser una nimiedad, pero me estaba volviendo loca.... El qué no sabe...

Al final he usado Dlast, que me sirve igual, y he puesto:

1
2
3
Private Sub SERIE_GotFocus()
SERIE = DLast("SERIE", "[DETALLE HOJA]", "INSCRIPCION ='" & Me.INSCRIPCION & "'") + 1
End Sub

Y funciona, creo que lo había probado cien veces y no funcionaba, está claro que algo ponía mal...
No sé si será la manera correcta de hacerlo pero, lo poco que he podido probar, funciona. Espero que no me de problemas luego.
Muchas gracias, otra vez
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Error DMax formulario Access 2010

Publicado por Anonimo (3316 intervenciones) el 16/07/2018 07:55:29
Si te funciona con DLast, debería funcionar con DMax, DMin, DLokup e incluso DCount.

Es lo que tienen las funciones de dominio, que comparten sintaxis

DLast no devolverá el mayor, sino el ultimo ¿? y solo la suerte permitirá que si 'todos los santos están de cara' devuelvan el mismo resultado.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 18
Ha disminuido su posición en 8 puestos en Access (en relación al último mes)
Gráfica de Access

Error DMax formulario Access 2010

Publicado por mj (8 intervenciones) el 16/07/2018 10:01:44
Efectivamente funciona tanto con Dmax como con Dlast, está claro que era un error de sintaxis, probablemente las comillas simples y dobles., pero no sabría decirte...

Después de hacer varias pruebas se ajusta mejor DLast a lo que necesito, ya que las series van de 100 en 100 pero no siempre van en orden, es decir una vez que termine la serie KA0700-KA0799 no va necesariamente la KA0800, pueden empezar otra serie que sea por ejemplo la KA0300 y de ahí si que van 100 seguidas hasta la KA0399.

Gracias por la aclaración.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Panchove
Val: 467
Plata
Ha disminuido 1 puesto en Access (en relación al último mes)
Gráfica de Access

Error DMax formulario Access 2010

Publicado por Panchove (212 intervenciones) el 16/07/2018 18:21:34
Lo que pasa es que si la funcion dominio falla esta devolvera NULL.

1
SERIE = NZ(DMAX("SERIE", "[DETALLE HOJA]", "INSCRIPCION ='" & Me.INSCRIPCION & "'"), 0) + 1


Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 18
Ha disminuido su posición en 8 puestos en Access (en relación al último mes)
Gráfica de Access

Error DMax formulario Access 2010

Publicado por mj (8 intervenciones) el 17/07/2018 13:21:29
Entiendo que si es nulo me devolverá 0, y sino el mayor aumentado en uno. Perfecto.

Muchas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 18
Ha disminuido su posición en 8 puestos en Access (en relación al último mes)
Gráfica de Access

Error DMax formulario Access 2010

Publicado por mj (8 intervenciones) el 21/07/2018 11:42:13
Hola,
Estoy intentando añadirle otro criterio y me da error, podrías ayudarme por favor.

Además de que busque los registros que coincida el campo "INSCRIPCION" , necesitaría que también coincida otro campo llamado "TIPO REGISTRO" . Este último campo siempre tiene un valor "A" o "R", me valdría también que buscase solo en los que tienen el valor "A", pero me da siempre error.

Una de las muchas formas que he probado es esta:

SERIE = NZ(DLast("SERIE", "[DETALLE HOJA]", "INSCRIPCION ='" & Me.INSCRIPCION & "'" And "[TIPO_REGISTRO] = '" & Me.TIPO_REGISTRO & "'"), 0 + 1

Muchas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Error DMax formulario Access 2010

Publicado por Anonimo (3316 intervenciones) el 21/07/2018 12:25:29
¿Hay algún motivo especial para añadir comillas dobles al 'And' ….?

Si se le desean añadir se convertirá en un texto y para que forme 'parte del conjunto' habría que añadir (como a cualquier texto entre comillas que se desee agregar) el ampersand (&)

Si no se le desea tratar como un texto (sino como lo que es: una conjunción en idioma Guiri) las comillas le sobran
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 18
Ha disminuido su posición en 8 puestos en Access (en relación al último mes)
Gráfica de Access

Error DMax formulario Access 2010

Publicado por mj (8 intervenciones) el 21/07/2018 15:41:24
Hola,

No hay ningún motivo para poner comillas, aparte del desconocimiento y la desesperación...
He probado con And, con &, con coma, con punto y coma, comillas dobles, comillas sencillas... y siempre me da error, mi problema es que no se como hay que "encadenar" dos criterios en la función.

Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Error DMax formulario Access 2010

Publicado por Anonimo (3316 intervenciones) el 22/07/2018 00:24:37
Observo que no has analizado mi respuesta (en ella aporto la solución).

Me atreveré a ofrecerte un consejo:

En caso de duda GENERA una consulta con los condicionantes que necesites y (una vez que funcione, algo que debería ser sencillo en el editor grafico de consultas), modifica la VISTA de la consulta a 'Vista SQL' y en ella (normalmente detrás del 'Where') estará la sintaxis adecuada …..

Si se genera esa consulta con 'un poco de picardía' … basta un Copy & Paste para lograr el éxito a la primera..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar