Access - Mesaje de aviso contador

   
Vista:

Mesaje de aviso contador

Publicado por blas (143 intervenciones) el 30/09/2011 18:50:01
Hola a todos.

He leido un monto en el foro sobre contadores, filtrando fechas, contando mas 1, menos 1 etc. pero no he visto nada sobre lo que yo quiero que igual es mas dificil, o mas dificil.

Se puede hacer que al abrir un formulario, un cuadro de mensaje MsgBox advierta o informe al usuario del siguiente número de registro libre en la base de datos, es decir, si el ultimo es el 15 el libre seria el 16. Gracias

El campo de registro es Id de tipo texto con mascara. 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

Mesaje de aviso contador

Publicado por Marcos (53 intervenciones) el 30/09/2011 20:45:44
Hola Blas.
Creo que en otra pregunta consultas algo similar.
Como tu campo es texto, lo que yo haría es extraer de ese campo la parte numérica que te indica
el correlativo. Ahora me lo tengo que imaginar porque no informas cómo son tus máscaras o cómo queda tu texto con máscara dentro del campo
Luego, el resultado extraido multiplicarlo *1 y así queda en numérico. Y finalmente preparar en el mensaje conjuntamente con la fucnión DMax o DÚltimo. ( cuando habras el formulario).
Creo que sabrás como hacerlo, de lo contrario pues avisas.

M
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

Mesaje de aviso contador

Publicado por blas (143 intervenciones) el 30/09/2011 21:33:13
Hola Marcos.

Hice otra consulta parecida pero no contesto nadie.

Que bien que contestas ya estaba desesperado.
Mi campo que hace de contador es de tipo texto no es autonumerico. es un campo con mascara de entrada de 8 digitos, correspondiendo los 5 primeros al número de registro el siguiente a un guión y los otros dos al año, esto queda asi 00001-11, siguiente 00002-11, siguiente 00003-11 etc.

Lo que queria es que al abrir el formulario el MsgBox avise diciendo cual es el siguiente.

Me has entendido ahora.

MsgBox "SU NUMERO DE REGISTRO ES" ¿¿¿¿¿¿¿¿¿ COMO SEGUIRIA EL CÓDIGO

Saludos. Blas
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

Mesaje de aviso contador

Publicado por Marcos (53 intervenciones) el 30/09/2011 21:47:43
Mira.
En una consulta crea un campo calculado con lo sgte.:
Correlativo: Izq([Campoconmascara],5)*1
Para el ejemplo, la consulta se llamará Consulta4.

En donde Campoconmascara = a tu campo de texto con máscara

Luego, en el evento al abrir del form:
MsgBox "SU PROXIMO CORRELATIVO ES" & " " & DMax("Correlativo", "Consulta4") + 1

Esto lo mismo lo puedes adaptar a tu BD.
Avisas como te fue.

M
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

Mesaje de aviso contador

Publicado por blas (143 intervenciones) el 01/10/2011 11:03:46
Hola Marcos.

Perdona y muchas gracias por tu ayuda.

No me sale. Igual lo hago mal. Entre el corchete y el cinco no me deja poner solo la coma asi que lo es puesto con punto y coma, sin envargo en SQL como pongo debajo se ve solo la coma. Aun asi, la etiqueta dice: SU PROXIMO CORRELATIVO ES 0.

Yo en el campo he escrito esto:

Correlativo: Izq([Idnumate];5)*1

Y en vista SQL sale esto:

SELECT Left([Idnumate],5)*1 AS Correlativo
FROM [global]
ORDER BY Left([Idnumate],5)*1;

Desesperado estoy. Si me dices donde esta el error. Gracias. Saludos. Blas
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

Mesaje de aviso contador

Publicado por blas (143 intervenciones) el 01/10/2011 11:15:48
Hola Marcos ya esta.

He cambiado el cinco por el cuatro porque te habia dicho un cero de mas y me salia el guion.
Ahora sale la etiqueta con el próximo número mas uno. Muchas gracias. Lo que pasa ahora es que no se ven los ceros delante, se pueden ver los ceros tambien. Gracias. Saludos. Blas
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

Mesaje de aviso contador

Publicado por blas (143 intervenciones) el 01/10/2011 12:12:12
Hola Marcos se me olvidaba.

El formulario de registros lo abro desde un panel de control donde tengo un botón para abrilo en modo edición y otro botón para abrilo en modo agregar. Ahora se ve en los dos modos. En modo edicion no tiene sentido ya que el registro existe. Quisiera que solo salga en modo agregar. ¿Se puede?. Gracias. Saludos Blas.
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

Mesaje de aviso contador

Publicado por Marcos (53 intervenciones) el 01/10/2011 21:38:01
Contesté primero, tu consulta anterior, respecto a agregar los ceros.
Ahora lo que consultas respecto a abrir los formularios...., sí se puede hacer. Hay una forma de crear un módulo con el código o la otra es crear ese mismo código en el formulario donde tienes los botones que abren en Edición o en Agregar. Para el ejemplo lo haremos con esta última opción.
Entonces, en el formulario desde donde llamas al otro, pone este código: OJO el formulario al cual llamo se llama "Copia1", debes cambiarlo por el nombre del tuyo.

Function Editar()
On Error GoTo Editar_Err

DoCmd.OpenForm "Copia1", acNormal, "", "", acEdit, acNormal


Editar_Exit:
Exit Function

Editar_Err:
MsgBox Error$
Resume Editar_Exit

End Function

Function Agregar()
On Error GoTo Agregar_Err

DoCmd.OpenForm "Copia1", acNormal, "", "", acAdd, acNormal

If DMax("Ln", "Consulta4") = 4 Then
MsgBox "SU PROXIMO CORRELATIVO ES" & " " & DMax("Corr", "Consulta4") + 1
Else
If DMax("Ln", "Consulta4") = 3 Then
MsgBox "SU PROXIMO CORRELATIVO ES" & " " & "0" & DMax("Corr", "Consulta4") + 1
Else
If DMax("Ln", "Consulta4") = 2 Then
MsgBox "SU PROXIMO CORRELATIVO ES" & " " & "00" & DMax("Corr", "Consulta4") + 1
Else
If DMax("Ln", "Consulta4") = 1 Then
MsgBox "SU PROXIMO CORRELATIVO ES" & " " & "000" & DMax("Corr", "Consulta4") + 1
End If
End If
End If
End If

Agregar_Exit:
Exit Function

Agregar_Err:
MsgBox Error$
Resume Agregar_Exit

End Function


Luego en los botones, en el evento al hacer click, pones los sgtes. códigos.
En el botón Agregar, al cual llamé "AgregarRegistro"

Private Sub AgregarRegistro_Click()
Call Agregar
End Sub

y en el botón Editar, al cual llamé "Editarregistro"

Private Sub EditarRegistro_Click()
Call Editar
End Sub

Obviamente debes cambiar los nombres por los tuyos.

y OJO, deberás quitar el código del evento al abrir del formulario que en mi ejemplo se llama "Copia1", ya que ahora lo que queremos hacer lo hacemos con códigos desde el formulario en donde están los botones.

Saludos

M
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

Mesaje de aviso contador

Publicado por blas (1 intervención) el 01/10/2011 21:54:46
Hola Marcos de nuevo.

En menudo lío te estoy metiendo.

El formulario anterior es un Panel de Control.

El evento al abrir ya esta ocupado por:

Private Sub Form_Open(Cancel As Integer)
' Minimize the database window and initialize the form.

' Move to the switchboard page that is marked as the default.
Me.Filter = "[ItemNumber] = 0 AND [Argument] = 'Predeterminado' "
Me.FilterOn = True

End Sub

Encima en ingles.

Los botones tambien estan ocupados, el primero en modo agregar por la expresión :
=HandleButtonClick(2)

El segundo en modo editar por la expresión:
=HandleButtonClick(3)
Perdido estoy.
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

Mesaje de aviso contador

Publicado por Marcos (53 intervenciones) el 01/10/2011 22:09:33
Es cosa de reemplazar por lo que te envié.
Veamos, es posible me envíes tu BD comprimida a mi correo ??
mnrt@vtr.net ó al correo marcosrodriguez@morganindustrial.cl
Hago lo que se debe hacer y te la reenvío.
Yo tengo un ejemplo el cual te puedo enviar, si me das tu correo.

MR
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

Mesaje de aviso contador

Publicado por blas blasmojon@hotmail.con (1 intervención) el 01/10/2011 22:22:20
Perdona por tantas molestias que te causo, ahí va mi correo lo dejo visto tambien el la Web.

blasmojon@hotmail.com

Bueno, mandame tu ejemplo y si con el no me apaño te enviare mi DB vale.

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

Mesaje de aviso contador

Publicado por Marcos (53 intervenciones) el 01/10/2011 22:49:53
Te lo envié, y funciona perfecto.
Saludos.

MR
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

Mesaje de aviso contador

Publicado por blas (143 intervenciones) el 02/10/2011 20:20:51
Hola Marcos.

Te he enviado un correo. Ya he visto que me has mandado el ejemplo pero no lo he podido abrir porque yo tengo Access XP y tu me lo mandas en Access 2007. De todos modos lo que te digo en el correo, como manejo bien los módulo, y la explicación que das es bastante clara no creo que tenga problemas. Te comentare. Gracias saludos. Blas
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

Mesaje de aviso contador

Publicado por Marcos (53 intervenciones) el 01/10/2011 20:48:24
Hola Blas.
No se ven los ceros porque el campo ahora es numérico, pero bueno si quieres volver a agregarles los ceros al mensaje, entonces tendrás que agregar algo.
Suponiendo que los correlativos son de 4 dígitos y no tendrán variación más que 4 dígitos:
En la consulta, agrega otro campo calculado con lo sgte. Ln: Longitud([Correlativo])
Ln = al nuevo campo.

Y en el evento al abrir del form el código será el sgte.:

Private Sub Form_Open(Cancel As Integer)
If DMax("Ln", "Consulta4") = 4 Then
MsgBox "SU PROXIMO CORRELATIVO ES" & " " & DMax("Correlativo", "Consulta4") + 1
Else
If DMax("Ln", "Consulta4") = 3 Then
MsgBox "SU PROXIMO CORRELATIVO ES" & " " & "0" & DMax("Correlativo", "Consulta4") + 1
Else
If DMax("Ln", "Consulta4") = 2 Then
MsgBox "SU PROXIMO CORRELATIVO ES" & " " & "00" & DMax("Correlativo", "Consulta4") + 1
Else
If DMax("Ln", "Consulta4") = 1 Then
MsgBox "SU PROXIMO CORRELATIVO ES" & " " & "000" & DMax("Correlativo", "Consulta4") + 1
End If
End If
End If
End If
End Sub

A mi me funciona con "coma", pero creo que a tí con "punto y coma", bueno eso lo revisas tu.

M
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

Mesaje de aviso contador

Publicado por blas (1 intervención) el 01/10/2011 21:27:12
Hola Marcos, te voy a volver loco.

A ver, he puesto los 4 If en el evento al abrir formulario y he quitado la antigua linea.

Luego he puesto otro nuevo campo en la misma consulta el de abajo.
Ln: Longitud([Correlativo])

La línea de abajo no se para que es.

Ln = al nuevo campo.

No me deja ponerla acontinuación de la otra. Poniéndola en otro campo tampoco hace nada. ¿Hay que ponerla, no hay que ponerla?, tu diras y donde. gracias.

Sin esta linea sigue saliendo la etiqueta sin ceros a la izquierda.
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

Mesaje de aviso contador

Publicado por Marcos (53 intervenciones) el 01/10/2011 21:42:49
No, no hay que ponerla.
LN = al nuevo campo, era una explicación solamente.

Pero ahora deberás hacer otra cosa, ya que como quieres que el mensaje salga solamente al agregar, te respondí y deberás hacer lo que te contesté.

Saludos.

MR
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