Borrar tabla en Visual Basic

Visual Basic 1 Comentario »
Visual Basic:
  1. Function BorraTabla()
  2.   Dim DataBaseName, TableName As String
  3.   Dim DB As Database, t As TableDef
  4.   Dim TableExists As Boolean
  5.   DataBaseName = "c:\data\local.mdb"
  6.   TableName = "AYUDANTS"
  7.   On Error GoTo errorhandler
  8.   Set DB = Workspaces(0).OpenDatabase(DataBaseName)
  9.   On Error Resume Next
  10.   Set t = DB.TableDefs(TableName)
  11.   TableExists = Err.Number = 0
  12.   If TableExists Then
  13.     DB.Execute "Drop Table " & TableName
  14.   End If
  15.   DB.Close
  16.   Exit Function
  17. errorhandler:
  18.   Err.Raise Err.Number
  19.   Exit Function
  20. End Function

Uso del registro en Visual Basic 6.

Visual Basic No hay Comentarios »

Todo programador sabe que es muy útil cargar y descargar parámetros de una aplicación en el registro de Windows.

Las operaciones mas frecuentes son las siguientes:

DeleteSetting appname, section[, key]

Elimina una clave de la sección de la aplicación o la entrada de la configuración del sistema del Registro.
AppName especifica el nombre de la aplicación, y section es el nombre de la sección que deseas borrar. Si la clave (key opcional) se usa, sólo esa clave será eliminada y no toda la sección.

GetAllSetting (appname, section)

Devuelve una lista de claves de configuración y sus valores de la aplicación desde el registro.
AppName es el nombre de la aplicación, y section el nombre de la sección.

GetSetting (appname, section, key[, default])

Devuelve una única clave de configuración de la aplicación y la sección de entrada en el registro del sistema.
AppName es el nombre de la aplicación, y el nombre de la la sección es section. Si no hay valor especificado en el registro entonces devuelve el valor por defecto (default). En caso de no especificar default y no existir la clave en el registro devolverá una cadena de longitud cero.

SaveSetting (appname, section, key, setting)

Salva al registro una seccion o clave y el valor de en el registro del sistema.
AppName es el nombre de la aplicación, section es el nombre de la sección, key es la clave que fijamos y settings el valor que le damos a esa clave.

Ejemplo de función para salvar al registro los datos de nuestra aplicación:

Visual Basic:
  1. Public Sub SetAppInfo(DbName As String)
  2.     If GetSetting(App.Title, "Control", "Title") = "" Then
  3.         Call SaveSetting(App.Title, "Control", "Title", App.Title)
  4.         Call SaveSetting(App.Title, "Control", "Version", App.Major & "." & App.Minor & "." & App.Revision)
  5.         Call SaveSetting(App.Title, "Install", "Date", Now())
  6.         Call SaveSetting(App.Title, "Install", "AppPath", App.Path)
  7.         Call SaveSetting(App.Title, "NCS", "Copyright", "(c)" & Year(Date))
  8.         Call SaveSetting(App.Title, "Data", "DBName", DbName)
  9.         Call SaveSetting(App.Title, "Data", "DBPath", App.Path & "\Data")
  10.     End If
  11. End Sub

Importar Excel a tabla de Access con Visual Basic.

Visual Basic 24 Comentarios »

Una simple rutina que sirve para importar un rango de filas y columnas de un fichero de Excel a una tabla en una base de datos de Access.

Había probado de multitud de maneras encontradas por internet, ejecutando una macro desde Excel y llamándola desde Visual, intentando crear una macro en access para llamarla desde visual y otros casos mas extraños aún.

La solución era mucho mas sencilla de lo que me esperaba, mediante la biblioteca de ADO.

Visual Basic:
  1. Call ImportadelExcel(fichero, App.Path & "\midb.mdb", "ImpExcel")

En el siguiente procedimiento las variables que necesita:

  • sFichero es el fichero Excel que quiero importar
  • DS es el DataSource o ruta a la base de datos que va a importar
  • sTablaDestino el nombre de la tabla que se creará con los datos del Excel
Visual Basic:
  1. Sub ImportadelExcel(sFichero As String, DS As String, sTablaDestino As String)
  2.  
  3. Dim sTablaOrigen As String
  4. Dim sConnect As String, sSQL As String
  5. Dim cnnActiva As ADODB.Connection
  6.  
  7. ' Establezco la conexión con la base de datos de Access,
  8. ' la cual será la base de datos "Activa"
  9. Set cnnActiva = New ADODB.Connection
  10. cnnActiva.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
  11. "Data Source=" & DS & ";"
  12.  
  13. 'Rango que quiero importar dela hoja Sheet1
  14. sTablaOrigen = "[Sheet1$A1:C1500]"
  15.  
  16. ' Importo la tabla a la base de datos "Activa"
  17. sConnect = "'" & sFichero & "' 'Excel 8.0;HDR=Yes;'"
  18.  
  19. sSQL = "SELECT * INTO " & sTablaDestino & " FROM " & sTablaOrigen & " IN " & sConnect
  20. cnnActiva.Execute sSQL
  21.  
  22. ' Cierro la conexión
  23. cnnActiva.Close
  24. End Sub

Crear y ejecutar macro de Excel desde Visual Basic.

Visual Basic 2 Comentarios »

A veces nos es muy tediosa la forma de preparar determinada información para ser explotada entre las aplicaciones Excel y otros programas o bases de datos.

Hoy voy a dejar aqui plasmado para quien lo necesite y para mi mismo si en alguna otra ocasión necesito tirar de ello de nuevo, la forma de crear desde Visual Basic una Macro de Excel y ejecutarla después.

Sin duda podemos encontrar por la red multitud de formas de ejecutar una macro ya existente en un fichero de Excel desde visual Basic pero ¿que ocurre si la macro la necesitamos ejecutar no está en el libro de Excel y debemos tratar multitud de ficheros?

La única forma es grabar la macro en el fichero antes de ejecutarla y todo ello desde Visual Basic. A continuación os expongo el procedimiento que yo mismo he utilizado.

Primero he creado la macro necesaria en Excel asegurándome del buen funcionamiento de la misma. Hay que tener claro que si cometemos un error, este será trasladado a todos los ficheros que tratemos.

Cuando ya la tenemos la forma de utilizarla en un procedimiento sería la siguiente:

Visual Basic:
  1. Private Sub PreparaExcel(sArchivo As String)
  2. ' Arrancamos Excel
  3. Dim xlapp As Object 'Aplicacion de Excel
  4. Set xlapp = CreateObject("Excel.Application")
  5.  
  6. ' La hacemos visible, si comentamos esta linea el excel no se verá
  7. xlapp.Visible = True
  8.  
  9. ' Añadimos una hoja de trabajo
  10. Dim xlbook As Object ' Hoja de trabajo de Excel
  11. Set xlbook = xlapp.Workbooks.Open(sArchivo)
  12.  
  13. ' Ahora añadimos un modulo
  14. Dim xlmodule As Object 'VBComponent
  15. Set xlmodule = xlbook.VBProject.VBComponents.Add(1)
  16. Msgbox "Creando Macro..."
  17. ' Añade la macro al nuevo módulo
  18. Dim strCode As String
  19. strCode = _
  20. "sub MiMacro()" & vbCr & _
  21. "Cells.Select" & vbCr & "Selection.UnMerge" & vbCr & _
  22. "Rows(""1:2"").Select" & vbCr & _
  23. "Range(""A2"").Activate" & vbCr & _
  24. "Selection.Delete Shift:=xlUp" & vbCr & _
  25. "Range(""A1:C2"").Select" & vbCr & "Selection.ClearContents" & vbCr & _
  26. "Columns(""B:B"").Select" & vbCr & _
  27. "Selection.Delete Shift:=xlToLeft" & vbCr & _
  28. "Columns(""C:J"").Select" & vbCr & _
  29. "Selection.Delete Shift:=xlToLeft" & vbCr & _
  30. "Columns(""D:Q"").Select" & vbCr & _
  31. "Selection.Delete Shift:=xlToLeft" & vbCr & _
  32. "ActiveWindow.ScrollColumn = 1" & vbCr & _
  33. "ActiveWindow.ScrollColumn = 2" & vbCr & _
  34. "ActiveWindow.ScrollColumn = 1" & vbCr & _
  35. "Range(""B1"").Select" & vbCr & _
  36. "Range(""B1:B1500"").Select" & vbCr & _
  37. "Selection.Cut Destination:=Range(""B2:B1501"")" & vbCr & _
  38. "Columns(""A:A"").ColumnWidth = 47.86" & vbCr & _
  39. "Columns(""B:B"").ColumnWidth = 48.57" & vbCr & _
  40. "Columns(""C:C"").ColumnWidth = 12" & vbCr & _
  41.  
  42. "ActiveWorkbook.Save" & vbCr & _
  43. "end sub"
  44. xlmodule.CodeModule.AddFromString strCode
  45.  
  46. ' Ejecutamos la macro
  47. Msgbox "Ejecutando Macro..."
  48. xlapp.Run "MiMacro"
  49.  
  50. ' Acuerdate de liberar el módulo
  51. Set xlmodule = Nothing
  52.  
  53. ' Salvamos el fichero y cerramos el Excel
  54. xlbook.Saved = True
  55. xlapp.Quit
  56.  
  57. End Sub

A disfrutarla con salud que a mi me ha costado un poco llegar a ella.

WP Theme & Icons originales por N.Design Studio.
Aviso Legal Entradas RSS Comentarios RSS Acceder