Visual Basic - consulta de programación

Life is soft - evento anual de software empresarial
 
Vista:

consulta de programación

Publicado por ricardo (3 intervenciones) el 26/05/2022 23:00:32
hola, necesito ayuda con código, del cual no entiendo algunas partes.el codigo es el siguiente:

Instrucciones del procedimiento Text1_keypress: verifique que los apellidos y nombres se ingresen correctamente y que se convierte la primera letra a mayúscula y el resto a minúscula.

Private sub Text1_keypress(keyAscii As integer)
Static anteriorespacio As Boolean
If keyAscii = 13 then
Text2.setfocus
End If
If KeyAscii= 32 then
anteriorespacio= true
Else
If Mayuscula(KeyAscii) Or Minuscula(KeyAscii) Or Especial(KeyAscii)
If Trim(Text1)= "" Or anteriorespacio Then
Rem Convertir a Mayuscula
KeyAscii = Asc(UCase(Chr(KeyAscii)))
Else
Rem Convertir a Minuscula
KeyAscii= Asc(LCase(Chr(KeyAscii)))
End If
anteriorespacio= False
Else
MsgBox "Debe ingresar solo letras", 16, "Cuidado"
KeyAscii=0 ´ignora el caracter digitado
Command1.Enabled= False
Command2.Enabled= False
End If
End If
End Sub
el anterior código es con el que tengo problemas.

te piden que la primera letra del apellido y del nombre sean mayúsculas, como se haría eso si con el código UCase convierte toda la cadena a mayúscula, algo parecido sucede con el código LCase . como se seleccionan las letras para cumplir con lo pedido.
les agradecería mucho si pudieran ayudarme con esto.
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
Imágen de perfil de RAUL
Val: 2
Ha aumentado su posición en 97 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

consulta de programación

Publicado por RAUL (443 intervenciones) el 26/05/2022 23:51:53
Para evaluar las cadenas debes usar la función Mid(string, start, [ length ]) estimado
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 RAUL
Val: 2
Ha aumentado su posición en 97 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

consulta de programación

Publicado por RAUL (443 intervenciones) el 26/05/2022 23:56:21
Encontré algo por acá en la webdelprogramador incluye código espero te sirva
https://www.lawebdelprogramador.com/codigo/Visual-Basic/308-Convertir-a-mayuscula-la-primera-letra-de-cada-palabra.html
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: 145
Ha aumentado 1 puesto en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

consulta de programación

Publicado por Sah1d Ra (191 intervenciones) el 27/05/2022 18:02:49
Hola!!! usa la siguiente instrucción cuando cambies de foco.

1
Text1.Text = StrConv(Text1.Text, vbProperCase)

ahora si lo que quieres es únicamente al momento de capturar te haga la conversión
realiza lo siguiente:

1
2
3
4
5
6
7
8
9
10
11
Private Sub Text1_KeyPress(KeyAscii as Integer)
 if InStr("abcdefghijklmnopqrstuvwxyzñ", LCase(Chr$(KeyAscii))) = 0 then Keyascii = 0
 'La linea anterior solo permite el acceso a los caracteres descritos arriba
 If Text1.SelStar = 0 Then 'Comprueba sea el primer carácter
  KeyAscii = Asc(Ucase(Chr$(KeyAscii)))
  'La linea anterior convierte el código asc11 a carácter después lo hace mayúscula y lo vuelve a convertir a código asc11
 Else
  KeyAscii = Asc(Lcase(Chr$(KeyAscii)))
  'La linea anterior convierte el código asc11 a carácter después lo hace minúscula y lo vuelve a convertir a código asc11
 End If
End Sub

La función anterior no sirve si se pega texto del portapapeles, para ello ocuparías revisar
el evento Change del Text1, y con un simple FOR y MID puedes resolver el problema.

saludos y felices líneas de programac10n
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

gracias

Publicado por ricardo (3 intervenciones) el 27/05/2022 23:43:49
gracias de verdad , hermano, soy de Perú. si pudieras mostrarme más códigos explicados didacticamente como tu respuesta, te lo agradeciería mucho. hasta luego
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: 145
Ha aumentado 1 puesto en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

gracias

Publicado por Sah1d Ra (191 intervenciones) el 28/05/2022 09:03:44
hola Ricardo de Perú, te comento, me encantaría ayudarte a llegar a la lógica
para la resolución de algún problema, y así como solucione lo anterior no programo,
ando utilizando los dos puntos (:) para escribir varios comandos en una misma linea,
pues para mi sirven para lo mismo, rara vez hago los comentarios, salvo algunas
soluciones aqui para dar a entender el porque lo hice

a continuación puedes ver mis respuestas, espero algunas te puedan ayudar

https://www.lawebdelprogramador.com/foros/usuario.php?id=366896&s=r#anchorTab

de igual manera ando por aquí en lo que pueda ayudar, y tenga el tiempo y le pueda
ganar a alguien mas a resolver el problema, una cosa mas que realizo es procurar
utilizar el mínimo de variables para reducir el uso de variables y espacio en memoria.

te dejo el enlace a un tema que abri donde comparto un programa para visualizar
y generar cuadros de dialogo para visual basic.

https://www.lawebdelprogramador.com/foros/Visual-Basic/1798212-Duda-de-Msgbox.html

saludos y felices líneas de prograc10n
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

buena

Publicado por ricardo (3 intervenciones) el 01/06/2022 03:04:36
que bueno que puedas darme mas información, gracias de verdad. Saludos y hasta la próxima
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