Eliminar las tablas vinculadas
10.05.2008
Mediante el siguiente código se eliminan las tablas vinculadas de una base de datos:
Sub sRemoveLinks()
Dim db As Database
Dim tdf As TableDef
Dim intCount As Integer, intPos As Integer
Set db=DBEngine(0)(0)
intCount=db.TableDefs.Count-1
For intPos=intCount to 0 Step -1
Set tdf=db.TableDefs(intPos)
If Len(tdf.Connect)>0 Then
DoCmd.DeleteObject acTable, tdf.Name
End If
Next intPos
End Sub
Fuente: Applecore
Ocultar el entorno de access
27.04.2008
Tras el aparente interés creado por una antiguo post (Ocultar la ventana madre de access) y los problemas que parece originar el código posteado, he optado por crear un ejemplo para aclarar las posibles dudas.
Access 2000. Descargar
Hay ocasiones en las que una base de datos tiene vinculadas tablas de diferentes tipos de origen (ODBC, Excel, FoxPro etc). Con la siguiente función se pueden reestablecer los vínculos de una forma genérica con todos los orígenes de datos existentes.
La función puede ser llamada desde un formulario inicial cuando se inicia la aplicación. El siguiente ejemplo muestra como se llama a la función cuando se cierra el formulario inicial.
Private Sub Form_Close()
If fRefreshLinks = False Then
MsgBox “You have not refreshed the database links. This application ” & “will can not function and will be terminated.”
DoCmd.Quit
End If
End Sub
Para que este código funcione correctamente es necesario que la rutina GetOpenFileName, creada por Ken Getz, esté disponible en la aplicación. El siguiente código hay que colocarlo en un módulo.
Mostrar GoogleMaps en Access
19.04.2008
El siguiente ejemplo muestra como insertar en un formulario una mapa de Google Maps, con una situación predefinida. Los mapas son incrustados en un formulario de Access usando el control Active-x Webrowser. El control es interactivo y el usuario puede navegar por el mapa, así como hacer zoom.
Un problema que puede aparecer en este ejemplo es el de la utilización de direcciones web de más de 255 caracteres, asi que cuidado.
Access 97/2000. Descargar
Fuente: Utter access
Saldo continuo en un subformulario
19.04.2008
Usar la propiedad Image de los nodos o elementos para usarlos como CheckBox con imagenes propias
15.04.2008
Para el código siguiente se necesitan crear dos gráficos que se deben colocar en un control ImageList. A la imagen ” NO seleccionada ” dentro del ImageList, se debe establecer en la propiedad Key el valor False, y la otra imagen con el Valor True. Por último se debe enlazar el Imagelist con el control TreeView , desde la ventana de propiedades en la ficha General, opción ImageList.
Private Sub Form_Load()
Dim El_Nodo As Node
Dim Child_Nodo As Node
Dim i As Integer
With TreeView1
‘ Estilo del Treeview
.LineStyle = tvwRootLines
.Style = tvwTreelinesPlusMinusPictureText
‘Agrega el nodo principal
Set El_Nodo = .Nodes.Add(, , , ” Lista “)
‘Le cambia el color a la fuente del nodo raíz
El_Nodo.ForeColor = vbRed
‘ . y lo expande
El_Nodo.Expanded = True
‘ Agrega 5 elementos
For i = 0 To 5
‘ La imagen que le asigna es la ” NO seleccionada “
Set Child_Nodo = .Nodes.Add(El_Nodo, tvwChild, , ” Elemento ” & i, “False”)
Next
‘ Le asigna la imagen ” seleccionado “, al ultimo nodo
Child_Nodo.Image = “True”
End With
End Sub
Private Sub TreeView1_NodeClick(ByVal Node As MSComctlLib.Node)
‘Cambia la imagen del nodo al hacer clic
If Node.Image = “False” Then
‘Imagen seleccionada
Node.Image = “True”
Node.Tag = True
Else
‘Imagen NO seleccionada
Node.Image = “False”
Node.Tag = False
End If
‘Muestra el valor en el caption del formulario
Me.Caption = ” Seleccionado: ” & Node.Tag
End Sub
Fuente: www.recursosvisualbasic.com
Comprobar si un campo existe en una tabla
15.04.2008
La siguiente función devuelve verdadero o falso dependiente si el campo que se le pasa existe o no en una determinada tabla de la basa de datos. Para que la función marche correctamete es necesario agregar la referencia a microsoft Dao object Library.
Public Function Comprobar_Campo(Ruta_bd As String, La_Tabla As String, El_campoAs String) As Boolean
‘Variables para acceder a la base de datos mediante Dao
Dim obj_Database As Database
Dim obj_TableDef As TableDef
Dim obj_Field As Field
On Error GoTo err_function
‘Abre la base de datos
Set obj_Database = Workspaces(0).OpenDatabase(Ruta_bd)
‘Referencia a la tabla
Set obj_TableDef = obj_Database.TableDefs(La_Tabla)
On Error Resume Next
‘Referencia al campo que se quiere comprobar. Si da error al referirnos a el, es por que no existe
Set obj_Field = obj_TableDef.Fields(El_campo)
‘Comprueba si hay error
If Err.Number = 0 Then
Comprobar_Campo = True
End If
‘Cierra la base
obj_Database.Close
If Not obj_Database Is Nothing Then
Set obj_Database = Nothing
End If
Exit Function
‘Error
err_function:
If Not obj_Database Is Nothing Then
obj_Database.Close
End If
MsgBox Err.Description, vbCritical
End Function
Cambiar la contraseña de la base de datos
13.04.2008
Este ejemplo utiliza el método NewPassword de DAO para establecer una nueva contraseña a una base de datos. Para la función cambiar_Password_DAO, tienes que especificar el directorio de la base de datos en el primer parámetro, en el segundo parámetro indicar la nueva contraseña y en el último argumento la vieja contraseña. Y para que todo funcione correctamente hay qeu incuir la referencia de Microsoft Dao Object Library desde el menú Proyecto/Referencias de visual Basic.
Private Function Cambiar_Password_DAO( path As String, Nuevo_Password As String, Viejo_Password As String) As Boolean
On Error GoTo ErrSub
‘Comprueba que la ruta no esté vacía
If Dir(path) = “” Then Exit Function
‘Variable para acceder a la base de datos
Dim db As DAO.Database
‘Abre la base de datos
Set db = OpenDatabase(path, True, False, “;pwd=” & Viejo_Password)
‘Metodo newPassword de DAO
Call db.newPassword(Viejo_Password, Nuevo_Password)
Cambiar_Password_DAO = Err.Number = 0
‘Cerramos la Base y eliminamos la referencia
db.Close
Set db = Nothing
Exit Function
‘Error
ErrSub:
MsgBox Err.Description
On Error Resume Next
db.Close
Set db = Nothing
End Function
Private Sub Command1_Click()
‘Función
Call Cambiar_Password_DAO(App.path & “\bd1.mdb”, “Nuevo”, “Viejo”)
End Sub
Con el siguiente código se accede a la base de datos con contraseña mediante ADO, suponiendo que la bd de access está ubicada en el app.path llamada bd1.mdb, y el password es JuanCarlos123:
Private mcnDB As New ADODB.Connection
‘ abre la base
mcnDB.Open “Provider = Microsoft.Jet.OLEDB.3.51; ” & “Persist Security Info= False; ” & Data Source = ” & AppPath & “DB1.mdb; ” & “Jet OLEDB:Database Password = JuanCarlos123″
MsgBox “Conectado a la base de datos con password mediante ADO”
mcnDB.Close ‘ cierra la base
Set mcnDB = Nothing
Mediante DAO:
Private mdbDB As DAO.Database
Set mdbDB = Workspaces(0).OpenDatabase(AppPath & “DB.mdb”, False, False, “;pwd=MiPassword”)
Fuente: www.recursosvisualbasic.com.ar
Como agregar (”todos”) a un cuadro combinado
11.04.2008
Mediante la siguiente función se añade el valor “(todos)” a un cuadro combinado o un cuadro de lista. Tras crear el elemento que contiene los datos que queremos mostrar hay que cambiar la propiedad “RowSourceType del valor “Table/Quert” a “AddAllToList”, y establece el valor de la propiedad Tag del cuadro combinado o del cuadro de lista el número de la comna en la que se quiere que aparezca el valor “(todos)”.
La función también permite que tras el número de la columna indicado en la propiedad Tag se puede añadir un punto y coma (;) y el texto que quieras que aparezca y que sea distinto de “(todos)” (por ejemplo: valor de Tag=”2;<ninguno>”. Muestra el valor “ninguno” en la segunda columna de la lista).
El siguiente ejemplo muestra como simular el control de Microsoft TreeView mediante un cuadro de lista. El ejemplo contiene dos ejemplos, el primero utiliza el método AddItem y RemoveItem disponible sólo en la versión de Access 2002. El segundo utiliza una técnica un poco más elegante refinado mediante recordset no asociados, implementando una estructura jerárquica multinivel
Descargar. Access 2000.
Fuente: Sitio comune



