manejo de errores

violeta
25 de Octubre del 2005
hola tengo problemas con el manejo de errores ya que utilizo una base de datos en access como auxiliar pero cada vez que se corre el programa se crea una tabla pero si el usuario no termina la ejecucion o no sale correctamente no puedo eliminar la tabla para poder crearla nuevamente al correr el programa me gustaria saber si alguien me puede ayudar para poder atrapar el error y eliminar la tabla antes de intentar crearla gracias

mvallejos
25 de Octubre del 2005
Siendo Access y trabajando con ADO, no se puede acceder a los catálogos de la base, a menos que incluyas referencia a las librerías ADOX.
Pero hay una solucion, te fabricas una función que te retorne si la tabla existe o no.

Function ExisteTablaAccess(Cn As ADODB.Connection, Tabla) As Boolean
Dim Sql As String
Dim R As New ADODB.Recordset

Err.Clear
On Error GoTo Salida

Sql = "Select * From " & Tabla
R.Open Sql, Cn, adOpenStatic

R.Close
Set R = Nothing
ExisteTablaAccess = True
Exit Function
Salida:
ExisteTablaAccess = False
Err.Clear
End Function

Entonces, en donde creas la tabla de Access, lo hacés con el condicional

If ExisteTablaAccess(Cn,NombreTabla) Then
Cn.Execute "DROP TABLE " & NombreTabla
End if

Espero que te sirva

Saludos

violeta01
25 de Octubre del 2005
muchas gracias por tu ayuda de verdad me salvaste