Archivado en 24 marzo 2008

Cómo eliminar una tabla de una base de datos con Visual Basic

24 marzo, 2008

Cuando elimina una tabla, también se eliminan todos los datos almacenados en aquella tabla. Si desea conservar los datos de la tabla, va a eliminar, escribir una aplicación Visual Basic con la que copia los datos a una tabla nueva antes de eliminar la tabla existente.

Primer Ejemplo

Visual Basic:
  1. Function BorraTablaTemp()
  2.  
  3.   Dim DataBaseName, TableName As String
  4.   Dim DB As Database, t As TableDef
  5.   Dim TableExists As Boolean
  6.  
  7.   DataBaseName = App.Path & "\data.mdb"
  8.   TableName = "tmpTabla"
  9.  
  10.   On Error GoTo errorhandler
  11.   Set DB = Workspaces(0).OpenDatabase(DataBaseName)
  12.   On Error Resume Next
  13.  
  14.   Set t = DB.TableDefs(TableName)
  15.   TableExists = Err.Number = 0
  16.  
  17.   If TableExists Then
  18.     DB.Execute "Drop Table " & TableName
  19.   End If
  20.  
  21.   DB.Close
  22.  
  23.   Exit Function
  24.  
  25. errorhandler:
  26.  
  27.   Err.Raise Err.Number
  28.   Exit Function
  29.  
  30. End Function

Segundo Ejemplo:
hacemos una copia de la base de datos para borrar la tabla del ejemplo.

Visual Basic:
  1. Function BorraTablaTemp()
  2.   Dim sourcedb  as string
  3.   Dim destdb as string
  4.  
  5.   On Error Resume Next
  6.   sourcedb = "c:\VB3\BIBLIO.MDB"  ' Base Original
  7.   destdb = "C:\TEST.MDB"     ' Base que utilizaremos para el ejemplo
  8.   FileCopy sourcedb, destdb  ' Hacemos la copia
  9.  
  10.   Dim db As Connection
  11.   Set db = New Connection
  12.   db.CursorLocation = adUseClient
  13.   db.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=" & destdb & ";"
  14.   db.Execute "Drop Table tmpTabla"
  15. End Function

Tercer Ejemplo:
Genera un Recordset y recorre tabla por tabla hasta encontrar la que deseamos borrar.

Visual Basic:
  1. Function BorraTablaTemp()
  2.     Dim cn As New ADODB.Connection
  3.     Dim rs As ADODB.Recordset
  4.     Dim sql As String
  5.    
  6.     cn.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0;" & "Persist Security Info=False;" & _
  7.         "Data Source=" & App.Path & "\data.mdb"
  8.  
  9.     Set rs = cn.OpenSchema(adSchemaTables, Array(Empty, Empty, Empty, "TABLE"))
  10.     Do While Not rs.EOF
  11.         If rs!TABLE_NAME = "tmpTabla" Then
  12.             sql = "DROP TABLE " & rs!TABLE_NAME
  13.             cn.Execute sql, , adCmdText
  14.             Exit Do
  15.         End If
  16.         rs.MoveNext
  17.     Loop
  18. End Function