Archivo

Archivo para Julio 2009

Funciones para comprobar caracteres en cadenas

Las siguientes funciones son para comprobar las cadenas de texto o numéricas.

La siguiente función devuelve “True” si todos los caracteres de una cadena son alfabéticos, es decir, si son todos letras. Si no lo son o si la cadena de texto es de longitud 0 devuelve “False”.

Public Function IsAlphaBetical(TestString As String) As Boolean
Dim sTemp As String
Dim iLen As Integer
Dim iCtr As Integer
Dim sChar As String
sTemp = TestString
iLen = Len(sTemp)
If iLen> 0 Then
For iCtr = 1 To iLen
sChar = Mid(sTemp, iCtr, 1)
If Not sChar Like "[A-Za-z]" Then Exit Function
Next
IsAlphaBetical = True
End If
End Function

Esta otra función devuelve “True” si todos los caracteres de una cadena son alfanumericos, es decir, si los elementos que componen la cadena son números o letras. Si no lo son o si la cadena de texto es de longitud 0 devuelve “False”.

Public Function IsAlphaNumeric(TestString As String) As Boolean
Dim sTemp As String
Dim iLen As Integer
Dim iCtr As Integer
Dim sChar As String
sTemp = TestString
iLen = Len(sTemp)
If iLen> 0 Then
For iCtr = 1 To iLen
sChar = Mid(sTemp, iCtr, 1)
If Not sChar Like "[0-9A-Za-z]" Then Exit Function
Next
IsAlphaNumeric = True
End If
End Function

Y por último esta función devuelve “True” si todos los caracteres de una cadena son numéricos, es decir, si los elementos que componen la cadena son números. Si no lo son o si la cadena de texto es de longitud 0 devuelve “False”. Esta función se diferencia de IsNumeric() en que Isnumeric(30.45) devuelve “True” mientras que en esta función devolvería “False”.

Public Function IsNumericOnly(TestString As String) As Boolean
Dim sTemp As String
Dim iLen As Integer
Dim iCtr As Integer
Dim sChar As String
sTemp = TestString
iLen = Len(sTemp)
If iLen> 0 Then
For iCtr = 1 To iLen
sChar = Mid(sTemp, iCtr, 1)
If Not sChar Like "[0-9]" Then Exit Function
Next
IsNumericOnly = True
End If
End Function
Fuente: David Suárez

Categorías:Microsoft Access

Conocer el nombre del equipo

Mediante el siguiente código se puede conocer el nombre del equipo desde el que está ejecutando la base de datos, devolviendo el nombre de la máquina.

Private Declare Function apiGetComputerName Lib "kernel32" Alias _
"GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long
Function fOSMachineName() As String
'Returns the computername
Dim lngLen As Long, lngX As Long
Dim strCompName As String
lngLen = 16
strCompName = String$(lngLen, 0)
lngX = apiGetComputerName(strCompName, lngLen)
If lngX <> 0 Then
fOSMachineName = Left$(strCompName, lngLen)
Else
fOSMachineName = ""
End If
End Function

En esta otra entrada anterior muestra el código para obtener el nombre del usuario que ha iniciado la sesión en Window

Reiniciar campo autonumérico

El campo autonumérico de una tabla se reinicia cuando ésta está vacía y se compacta la base de datos. De todas formas mediante el siguiente código, y sin necesidad de compactar la base de datos, se reinicia el campo autonumérico de la tabla.

Function ChangeSeed(strTbl As String, strCol As String, lngSeed As Long) As Boolean
'Se deben pasar las siguientes variables a la función:
'strTbl = Tabla que contiene el autonumérico a reiniciar
'strCol = Nombre del campo autonumérico
'lngSeed = Valor del campo autonumérico que se quiere dar al próximo registro de la tabla
Dim cnn As ADODB.Connection
Dim cat As New ADOX.Catalog
Dim col As ADOX.Column
'Establece la conexión con la base de datos
Set cnn = CurrentProject.Connection
cat.ActiveConnection = cnn
Set col = cat.Tables(strTbl).Columns(strCol)
col.Properties("Seed") = lngSeed
cat.Tables(strTbl).Columns.Refresh
If col.Properties("seed") = lngSeed Then
ChangeSeed = True
Else
ChangeSeed = False
End If
Set col = Nothing
Set cat = Nothing
Set cnn = Nothing
End Function
Fuente: Alexandre Minato