Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Angellore

#11
Es muy sencillo, sólo son un par de condiciones para evaluar cada caracter, y determinar si está en el rango de valores de los caracteres ASCII que necesitas.

Te dejo un código que sirve para reconocer lo que necesitas, en lugar de usar muchos If que alentizan el proceso usé una comparación binaria.

Insertar Renglón de tabla
Te dejo abajo una explicación de lo que hace el código. La siguiente tabla indica en qué casos IsAscii será True.

iChar mayor o igual que vbKeyA (letra A) y menor o igual que vbKeyZ (letra Z)
iChar mayor o igual que vbKeyA+32 (letra a) y menor o igual que vbKeyZ+32 (letra z)
iChar mayor o igual a 48 (número 0) y menor o igual a 57 (número 9)


Function IsAscii(ByVal Data As String) As Boolean
        Dim i&, iChar%

  For i = 1 To Len(Data)
    iChar = Asc(Mid$(Data, i, 1))
   
    IsAscii = (((iChar >= vbKeyA) And (iChar <= vbKeyZ)) Or _
              ((iChar >= vbKeyA + 32) And (iChar <= vbKeyZ + 32)) Or _
              ((iChar >= 48) And (iChar <= 57)))

    If Not IsAscii Then Exit For
  Next
End Function


Saludos.
Angellore.
#12
Asegurate que primero llamas al método Close del objeto Recordset, si el objeto está abierto nunca podrás establecer un nuevo origen de datos.

Saludos.
Angellore.