Asignar numero

Hola
Tengo un pequeño problema pero que no he podido resolver esperando me puedas auxiliar con lo siguiente
Tengo Un Formulario
En Donde Tengo varios Campos
Uno de ellos es Un Numero Asignado por
Medio de la función DMax()
Pero deberá ser asignado siempre y cuando un campo llamado autorización sea igual a Sí de lo contrario no asignarle el número automático y ademas antes de asignarle el número
que me pregunte por medio de un MsgBox
Si quiero asignarle el numero o no
ES decir
Solicitud = 1
Credito = 0
Autorizado = No
Al cambiar el campo de autorizado a Sí
quedaria de la siguiente forma
Solicitud = 1
Credito = 1
Autorizado = Sí
Y que me pregunte
Esta seguro de asignarle el Numero Aceptar o Cancelar
De Antemano gracias por la ayuda que se me pudiera brindar
Ójala y me pudieras mandar el código
O una macro
Gracias

3 respuestas

Respuesta
1
Ojo, noté que al mandarte la respuesta la página sustituyó las comillas por signos de interrogación, ten cuidado.
Espero poderte ayudar con esta recomendación,
Yo prefiero hacer estas cosas con código, o sea, programar con Visual Basic. Si no tienes mucha experiencia es importante que comiences hacer algunas cosas, con el tiempo adquieres experiencia y los problemas que se nos presentan en las aplicaciones los vamos resolviendo.
Debes colocar el formulario en la vista diseño, ¿selecciona en las propiedades la pestaña? ¿Eventos? (Las propiedades se llaman con el botón que tiene la carpetica con la manito).
El evento del formulario que deberás seleccionar es: Antes de actualizar, el código que puede ayudarte es este:
Private Sub Form_BeforeUpdate(Cancel As Integer)
'Escrito por Pierre García Barre
If Me.Autorizado = -1 Then ' El usuario tildó el recuadro
Dim Mensaje, Estilo, Título, Respuesta, MiCadena 'declara variables
Mensaje = "El registro fue autorizado, desea asignarle número corretalivo?" ' Define el mensaje.
Estilo = vbYesNo + vbCritical + vbDefaultButton2 ' Define los botones.
Título = "Autorizado" ' Define el título.
Respuesta = MsgBox(Mensaje, Estilo, Título) ' Variable que carga el cuadro mesaje para el próximo if
If Respuesta = vbYes Then ' El usuario eligió el botón Sí.
Me.Solicitud = 1
'*****************
If DSum("Cuentadecrédito", "contar") = 0 Then
Me.Crédito = 1
Else
Me.Crédito = DMax("Crédito", "Tabla1") + 1 'Ejecuta una acción, asigna correlativo.
End If
'*****************
Else ' El usuario eligió el botón No.
Me.Solicitud = 1 'Ejecuta otra acción.
Me.Crédito = 0
End If
Else
Me.Solicitud = 1 ' se ejecuta si NO se tildo el campo autorizado
Me.Crédito = 0
End If
End Sub
Yo asumí que el campo que lleva el número correlativo ( al a respuesta si) es Crédito, si es otro lo deberás cambiar.
Asumí también que el campo autorizado es del tipo SI/NO, lo cual permite el recuadro para marcar, si no es así entonces deberás sustituir la línea del primer ?if?, por: [if Me.autorizado=?SI? then], Recuerda que en los campos SI/NO los valores únicos son: Marcado = -1; NO marcado = 0.
Te coloque una breve explicación en cada línea, que consideré conveniente, con el tilde:¿?, para que no afecte el código.
Fíjate entre las líneas encerradas con asteriscos, estoy usando la función Dsum para evaluar, a través de una consulta que la llamo [contar], que a su vez tiene un campo [CuentadeCódigo], para evaluar si la tabla donde se guardan los registros está vacía, o sea vas a agregar el primer registro, este código es necesario ya que la función DMax no funciona correctamente si la primera evaluación es nula, o sea no hay registros en la tabla. Lo que hice fue evaluar esta situación para asignar 1 como primer número del primer registro, por supuesto si marque SI ha Autorizado.
Si me mandas un mail te puedo mandar un archivo con el ejemplo real.
Pierre
Hola nuevamente
Espero te la estés pasando muy bien
Y volviendo a mi pregunta de la asignación del numero o crédito si tu me lo permites me gustaría mandarte mi formulario por mail para que me expliques con el ejemplo real.
Por favor indicame cual es tu mail
Gracias.
mi mail es [email protected]
Te he mandado dos email pero no me has respondido
Nuevamente me comunico contigo porque veo que no comentas mi respuesta, ¿te sirvió mi asesoramiento?
Respuesta
1
Lo que yo haría es que en el evento después de actualizar de algún control que tengas le poones lo siguiente
If autorizado=true then
elseif msgbox ("Esta seguro de asignarle el Numero", VbOKCancel)=VbOk then
credito=1
else
end if
La verdad es que no lo probé yo, si tienes algún inconveniente avisame y lo veo de nuevo.
Pero lo que intenta hacer es que si Autorizado es 1 y si(elseIf) le presionas en el cuadro de mensajes ok te cambie el numero de lo contrario(else) no hace nada.
Gracias por tu esfuerzo me pasaron un código parecido al tuyo y funciono correctamente. Si quieres ese código te lo podría proporcionar ews muy parecido al tuyo.
Respuesta
-1
Lamberto1,
te indico lo que hago en mis aplicaciones:
1.Tengo un formulario de entrada que solicita el usuario y contraseña.
2.Si el usuario y la contraseña son válidos abro un formulario que me sirve de fondo para la aplicación y en el tengo un objeto que guarda el ID del usuario y otro que guarda en Nombre del usuario.
3.En el menu tengo una opción para cambiar la contraseña.
4.El formulario para cambiar la contraseña solicita la contraseña actual y la valida el archivo de usuarios, si es valida, avilita la casilla para la nueva contraseña.
Para la funcion MSGBOX leete la ayuda de access.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas