Validar formularios en access
Sabes mi nombre es francesca y necesito saber si me puedes ayudar a validar un formulario en access donde el rut debe aparecer validado y que si ingreso el rut en otro formulario aparezcan los datos del usuario a quien le corresponde el rut
1 Respuesta
Respuesta de telemaco
1
1
telemaco, He trabajado 5 años desarrollando aplicaciones tanto en access...
Como necesitas validar el RUT, es decir, debe tener esto, tantos dígitos, etc.
Ahora para lo segundop que me comentas debes utilizar recordset, es decir al digital el RUT, por medio de una consulta y una variable recordset se busca, si ya existe y se colocan los datos, no se sie estás faliliarizada con esto... sino dame un email y te mando un ejemplo sencillo...
Att:telemaco
Ahora para lo segundop que me comentas debes utilizar recordset, es decir al digital el RUT, por medio de una consulta y una variable recordset se busca, si ya existe y se colocan los datos, no se sie estás faliliarizada con esto... sino dame un email y te mando un ejemplo sencillo...
Att:telemaco
Necesito que me valide el dígito verificado para que este no sea cualquier dígito si no el correspondiente al rut
te doy mi email [email protected]
te doy mi email [email protected]
Bueno parece que la validación del rut de chile, tienes su cuestión, el siguiente código lo descargue de alguien que lo válido, hay que saber que hay que tener en cuanta para que sea válido (pero no me lo comentaste)... bueno para que funcione este código debes tener una caja de texto llamada "text1", y dar enter lo validara... este seria el código:
****************
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 And TEXT1 = "" Then 'si la tecla es igual e enter e igual a nada entonces
MsgBox "No ha ingresado rut", vbCritical, "Atención" 'despliega el siguiente mensaje
TEXT1.SetFocus 'vuelve el cursos al text1
Else ' en caso contrario
Dim verdad As Boolean 'declaracion de varible
If KeyAscii = 13 Then
sm = 0
i = Len(Trim(TEXT1)) - 2
ii = i + 2
X1 = 0
c1 = 2
valor = 0
sm1 = 0
While i > 0
sm = sm + Val(Mid(TEXT1, i, 1)) * c1
c1 = c1 + 1
If c1 = 8 Then
c1 = 2
End If
i = i - 1
Wend
valor = sm Mod 11
sm1 = Int(11 - valor)
If sm1 = Val(Mid(TEXT1, ii, 1)) Or sm1 = 10 And (Mid(TEXT1, ii, 1)) = "k" Or sm1 = 11 And (Mid(TEXT1, ii, 1)) = "0" Or sm1 = 10 And (Mid(TEXT1, ii, 1)) = "K" Then
verdad = True
If MsgBox("Rut valido ¿Desea Ingresar otro?", vbQuestion + vbYesNo, "Ingresar Otro") = vbYes Then
TEXT1 = ""
TEXT1.SetFocus
Else
End
End If
Else
MsgBox " Rut No Valido...", vbCritical, "Error....."
verdad = False
TEXT1 = ""
End If
End If
End If
End Sub
**************************
Att:telemaco
****************
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 And TEXT1 = "" Then 'si la tecla es igual e enter e igual a nada entonces
MsgBox "No ha ingresado rut", vbCritical, "Atención" 'despliega el siguiente mensaje
TEXT1.SetFocus 'vuelve el cursos al text1
Else ' en caso contrario
Dim verdad As Boolean 'declaracion de varible
If KeyAscii = 13 Then
sm = 0
i = Len(Trim(TEXT1)) - 2
ii = i + 2
X1 = 0
c1 = 2
valor = 0
sm1 = 0
While i > 0
sm = sm + Val(Mid(TEXT1, i, 1)) * c1
c1 = c1 + 1
If c1 = 8 Then
c1 = 2
End If
i = i - 1
Wend
valor = sm Mod 11
sm1 = Int(11 - valor)
If sm1 = Val(Mid(TEXT1, ii, 1)) Or sm1 = 10 And (Mid(TEXT1, ii, 1)) = "k" Or sm1 = 11 And (Mid(TEXT1, ii, 1)) = "0" Or sm1 = 10 And (Mid(TEXT1, ii, 1)) = "K" Then
verdad = True
If MsgBox("Rut valido ¿Desea Ingresar otro?", vbQuestion + vbYesNo, "Ingresar Otro") = vbYes Then
TEXT1 = ""
TEXT1.SetFocus
Else
End
End If
Else
MsgBox " Rut No Valido...", vbCritical, "Error....."
verdad = False
TEXT1 = ""
End If
End If
End If
End Sub
**************************
Att:telemaco
Hola sabes tengo un pequeño problema en esta parte del código
If sm1 = Val(Mid(TEXT1, ii, 1)) Or sm1 = 10 And (Mid(TEXT1, ii, 1)) = "k" Or sm1 = 11 And (Mid(TEXT1, ii, 1)) = "0" Or sm1 = 10 And (Mid(TEXT1, ii, 1)) = "K" Then
no se si pudieras revisar para estar segura es que me quedo dando vuelta el asunto gracias
If sm1 = Val(Mid(TEXT1, ii, 1)) Or sm1 = 10 And (Mid(TEXT1, ii, 1)) = "k" Or sm1 = 11 And (Mid(TEXT1, ii, 1)) = "0" Or sm1 = 10 And (Mid(TEXT1, ii, 1)) = "K" Then
no se si pudieras revisar para estar segura es que me quedo dando vuelta el asunto gracias
Hola
Mira la validación del rut en chile es de la siguiente manera xx.xxx.xxx-x esa es la forma en que esta puesto el rut y para esta validación se requiere solo ingresar los dígitos xx.xxx.xxx sin el guion ya que es el dígito verificador el que tiene que ponerse en el text en blanco.
A parte de eso me puedes explicar como hacer la parte de cuando uno ingresa el rut lo valida y me debería desplegar los datos del cliente en cuestión por fa ayudame con eso es lo que me tiene un poco erredada
Desde ya muchas gracias
Mira la validación del rut en chile es de la siguiente manera xx.xxx.xxx-x esa es la forma en que esta puesto el rut y para esta validación se requiere solo ingresar los dígitos xx.xxx.xxx sin el guion ya que es el dígito verificador el que tiene que ponerse en el text en blanco.
A parte de eso me puedes explicar como hacer la parte de cuando uno ingresa el rut lo valida y me debería desplegar los datos del cliente en cuestión por fa ayudame con eso es lo que me tiene un poco erredada
Desde ya muchas gracias
A ver vamos hacer algo, como te decía no me indicaste la manera que se debe validar, esta parte miro que indica que el numero de dígitos coincida, ademas que el ultimo dígito de verificación cumpla unas pautas...
Entonces, si quieres mandame la manera que se debe validar, que es válido el nit, es decir, debe tener tantos dígitos, que para llevar determinado numero, es porque lo saca de tal forma...
Aunque voy a revisar en internet que se debe tener en cuanta para esto, como te había mencionado, este código lo descargue de un chileno que lo hizo...
Pero acuérdate que la validación del Nit o rut, depende del país..
Att:telemaco
Entonces, si quieres mandame la manera que se debe validar, que es válido el nit, es decir, debe tener tantos dígitos, que para llevar determinado numero, es porque lo saca de tal forma...
Aunque voy a revisar en internet que se debe tener en cuanta para esto, como te había mencionado, este código lo descargue de un chileno que lo hizo...
Pero acuérdate que la validación del Nit o rut, depende del país..
Att:telemaco
Hola
Sabes hice lo que tu me dijiste pero tengo otro problema que es con el código que me enviaste es que hay una linea que me dice que no es válido de null que puedo hacer en ese caso por fa ayudame tengo que terminar esta cuestión antes del viernes y así como voy parece que no voy a llegar a ninguna parte
Desde ya muchas gracias
Sabes hice lo que tu me dijiste pero tengo otro problema que es con el código que me enviaste es que hay una linea que me dice que no es válido de null que puedo hacer en ese caso por fa ayudame tengo que terminar esta cuestión antes del viernes y así como voy parece que no voy a llegar a ninguna parte
Desde ya muchas gracias
Si solo necesitas que sean dígitos (o sea números) utiliza la propiedad mascara de entrada del campo o caja de texto de la ficha datos. Por ejemplo según lo que me dices, que quieres colocar determinada cantidad de dígitos, Y QUE SEAN NUMÉRICOS: entonces en esta propiedad colocas:
00.000.000
Que hace, primero QUE SOLO PUEDAS DIGITAR NÚMEROS, ademas te facilita la entrada es decir, en la primera parte iría dos dígitos, luego el punto (este punto te lo coloca, no necesitas colocarlo), luego tres dígitos, punto, luego otros tres... el te facilita la entrada de los dígitos, te va a pareciando la rayita de piso cada vez que escribes, así, siempre digitaras este valor completo Y NO PODRÁN FALTAR DÍGITOS... ahora sino quieres los puntos quitaselos y listo...
Con el dígito de verificación seria lo mismo, en mascara de entrada coloca 0, esto hace que solo te permita UN SOLO NUMERO...
Att:telemaco
00.000.000
Que hace, primero QUE SOLO PUEDAS DIGITAR NÚMEROS, ademas te facilita la entrada es decir, en la primera parte iría dos dígitos, luego el punto (este punto te lo coloca, no necesitas colocarlo), luego tres dígitos, punto, luego otros tres... el te facilita la entrada de los dígitos, te va a pareciando la rayita de piso cada vez que escribes, así, siempre digitaras este valor completo Y NO PODRÁN FALTAR DÍGITOS... ahora sino quieres los puntos quitaselos y listo...
Con el dígito de verificación seria lo mismo, en mascara de entrada coloca 0, esto hace que solo te permita UN SOLO NUMERO...
Att:telemaco
No necesitas el código, solo utilizar la propiedad mascara de entrada, no más OLVIDATE DEL CONDIGO ANTERIOR, solo coloca la mascara de entrada como te indique, y listo...
Att:telemaco
Att:telemaco
- Compartir respuesta
- Anónimo
ahora mismo