Comprobar si existe un campo en una tabla

Necesito procedimiento en el cual dando un nombre de la tabla y del campo, puedo verificar si existe dicho campo o no en esa tabla.

1 Respuesta

Respuesta
1

Puedes usar una función como ésta:

Public Function existeCampo(laTabla As String, elCampo As String) As Boolean
On Error GoTo sol_err
Set rst = CurrentDb.OpenRecordset("SELECT " & elCampo & " FROM " & laTabla)
existeCampo = True
Salida:
    rst.Close
    Set rst = Nothing
sol_err:
    existeCampo = False
    Resume Salida
End Function

Para usarla solo tienes que pasarle el nombre de la tabla y del campo, y te devolverá True si existe o False si no existe.

Un saludo


Hola

Perdona por la hora pero he tenido un día de aúpa

Lo copie tal cual y le di unos valores correctos y lo que hace una vez recorre el procedimiento, saltar de Resume Salida a rst.close, y hay se queda, pero no da ni mensajes ni nada y se queda en un bucle continuo.

Cierto es que al probar con resultado correcto y falso,, en el primer pase se va si es correcto a la línea existecapo= true y si le doy dato erróneo, se va a la línea existecampo= false, lo que creo que en un principio va bien, pero en ambos casos se queda en un bucle

Que puedo hacer para que solventar este problema..

Gracias

Hola de nuevo,,

He estado tocando el procedimiento y la única forma que funciona es así:

Public Function existeCampo(laTabla2, elCampo2) As Boolean
On Error GoTo sol_err
Set rst = CurrentDb.OpenRecordset("SELECT " & elCampo2 & " FROM " & laTabla2)

existeCampo = True
Salida:
rst.Close
Set rst = Nothing

If existeCampo = True Then
MsgBox "existe"
Else
If existeCampo = False Then
MsgBox "No existe"
End If: End If
Exit Function
sol_err:
existeCampo = False
Set rst = Nothing

If existeCampo = True Then
MsgBox "existe"
Else
If existeCampo = False Then
MsgBox "No existe"
End If: End If
End Function

La duda que tengo es si es correcto lo que como lo he conseguido.

SAludos

No has entendido cómo funciona la función (que no procedimiento).

Te explico: como es una función devuelve un valor (verdadero o falso) en función de si el campo existe en la tabla o no.

Cuando quieras comprobar si existe el campo, lo haces desde un procedimiento (un Sub), de la siguiente forma:

If existeCampo("TDatos","CampoAValidad")=False Then
   MsgBox "El campo no existe"
Else
   MsgBox "El campo sí existe"
End If

Y claro, en vez de lanzar el mensaje también podría programar otras lineas de código que hagan otras cosas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas