Como saber si en una tabla existe un campo (columna) determinado ?

Esta parte me esta dando problemas. Trabajo con access 2010 y necesito saber si en una tabla existe un campo o no con un mensaje de texto.

¿Me pueden ayudar?

2 respuestas

Respuesta
2

Cordara: En tu caso creo que te iría bien Utilizar,

Haz éste Procedimiento y lo llamas desde donde quieras o necesites

Sub EncuentraCampo()
Dim ObjRecordset As Object
Dim MatrizDatos(1 To 100) As String
Dim IntIndex As Integer
Dim I As Integer

Set ObjRecordset = CreateObject("ADODB.Recordset")
ObjRecordset.ActiveConnection = CurrentProject.Connection
ObjRecordset.Open ("NombreDeTuTabla")
IntIndex = 1
'Aquí recorres Campos
For I = 0 To ObjRecordset.Fields.Count - 1
MatrizDatos(IntIndex) = ObjRecordset.Fields.Item(I).Name

'Aquí si quieres puedes intercalar un  If....... Then

If  ObjRecordset.Fields.Item(I).Name  = "NombreDeTuCampo" Then

MsgBox "El campo Sondeado es :  " & ObjRecordset.Fields.Item(I).Name

End If
IntIndex = IntIndex + 1
Next I

End Sub

Necesitarás Activar la Referencia:

Microsoft ActiveX Data Objects 2.8 Library

Mis saludos >> Jacinto

Respuesta
2

Otra forma, sin necesidad de registrar librerías adicionales:

1º/ Crea un módulo nuevo en tu BD y le pegas esta función:

Public Function existeCampo(laTabla As String, elCampo As String) As Boolean
Dim rst As DAO.Recordset
Dim i As Integer
existeCampo = False
Set rst = CurrentDb.OpenRecordset(laTabla)
For i = 0 To rst.Fields.Count - 1
    If rst(i).Name = elCampo Then
        existeCampo = True
        GoTo Salida
    End If
Next i
Salida:
    rst.Close
    Set rst = Nothing
End Function

2º/ En el evento o en la parte del código en el que quieras comprobar si existe el campo,  simplemente llamas a la función pasándole el nombre de la tabla y del campo. Si Te devuelve "True", es que el campo existe.

Por ejemplo, si tienes un cuadro de texto "txtComprobar" y un botón para comprobar si existe o no en la tabla "TDatos", al botón le asignas este código en el evento "Al hacer click":

If existeCampo("TDatos", Me.txtComprobar) = True Then
    MsgBox "El campo " & Me.txtComprobar & " existe en la tabla TDatos"
Else
    MsgBox "El campo " & Me.txtComprobar & " no existe en la tabla TDatos"
End If

Un saludo.


Un nuevo foro de access, visítanos: http://nksvaccessolutions.com/Foro/

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas