Gamarod JavaScript - Rutinas JavaScript Efectos javascript Codigos javascript Rutinas JavaScript

Programacion




Todo sobre Visual Basic - Acceso a base de datos de Access 2000

Acceso a base de datos de Access 2000






Ejemplos para acceder a las bases de datos generadas con el Access 2000, desde el VB5 (también vale para el VB6 o posterior), pero usando DAO.

El "truco" consiste en agregar la referencia a la librería adecuada del motor JET, en esta ocasión será: Microsoft DAO 3.6 Object Library

Por tanto, en el menú de proyecto tendrás que seleccionar "Referencias..." y de la lista seleccionar la librería de la versión 3.6. Una vez referenciada el motor adecuado, podremos acceder a las bases creadas con el Access 2000. 

El código de ejemplo:

Crea un nuevo proyecto, en Proyecto/Referencias... selecciona Microsoft DAO 3.6 Object Library, añade 3 controles TextBox (Text1, un array desde el índice 0 al 2), otro TextBox (Text2), un array de cuatro botones (cmdMove, con índices desde 0 a 3), un botón para Actualizar (cmdUpdate), otro para Eliminar registros (cmdDel) y otro para Añadir nuevos registros (cmdAdd), además una etiqueta (lblStatus) para mostrar alguna que otra información de lo que estamos haciendo.
Por último, pega este código y... ¡ya está!

Este es el aspecto del formulario:

 
Option Explicit
Private sBase As String ' Nombre de la base de datos

' Objetos para acceder directamente a la base usando código
Private db As Database
Private rst As Recordset

' Constantes para el movimiento dentro del recordset
Const cPrimero = 0
Const cAnterior = 1
Const cSiguiente = 2
Const cUltimo = 3


Private Sub cmdAdd_Click()
' Añadir un nuevo registro al recordset
Dim i As Long


' Vaciar el contenido de los textboxes
For i = 0 To 2
Text1(i) = " "
Next
Text2 = "Nuevo registro"


On Error Resume Next


' Añadir uno nuevo
With rst
.AddNew
!Nombre = Text1(0)
![e-mail] = Text1(1)
!Comentario = Text1(2)


' Actualizar el contenido
.Update
' Esto es necesario para actualizar el "puntero" del recordset
.Bookmark = .LastModified


Text2.Text = "ID: " & !ID
lblStatus.Caption = " Registro: " & !ID & " (" & .AbsolutePosition + 1 & ")"
End With


Text1(0).SetFocus


Err = 0
End Sub



Private Sub cmdDel_Click()
' Eliminar el registro actual
rst.Delete


On Error Resume Next


' Mover al siguiente registro
rst.Move 1
' Si no puede moverse al siguiente, moverlo al anterior
If Err Then
rst.MovePrevious
End If


' Es necesario mostrar el contenido de los registros
MostrarRegistro


Err = 0
End Sub



Private Sub cmdMove_Click(Index As Integer)
' Moverse por el recordset

On Local Error Resume Next


Err = 0


Select Case Index
Case cPrimero ' Primero
rst.MoveFirst
Case cAnterior ' Anterior
rst.MovePrevious
Case cSiguiente ' Siguiente
rst.MoveNext
Case cUltimo ' Último
rst.MoveLast
End Select


' Mostrar el contenido del reg
istro actual MostrarRegistro


' Mostrar el mensaje de error,
para comprobación If Err Then
lblStatus.Caption = " " & Err.Description
Else
' Mostrar el ID del registro y la posición dentro del recordset
lblStatus.Caption = " Registro: " & rst!ID & " (" & rst.AbsolutePosition + 1 & ")"
End If


Err = 0
End Sub


Private Sub cmdUpdate_Click()
' Actualizar el contenido del registro actual


On Error Resume Next

' Entrar en modo de edición
rst.Edit

' Cuando no se liguen los controles, después de introducir los datos,
' es necesario pulsar en este botón
rst!Nombre = Text1(0)
' Como el nombre de este campo tiene signos especiales,
' hay que ponerlo entre corchetes
rst![e-mail] = Text1(1)
rst!Comentario = Text1(2)


' Actualizar el contenido
rst.Update


If Err Then
lblStatus.Caption = " Actualizar: " & Err.Description
Else
lblStatus.Caption = " Registro actualizado"
End If


Err = 0
End Sub



Private Sub Form_Load()
' Asignar el nombre de la base de datos
' (si la aplicación se ejecuta en el directorio raiz, quitar el \)
sBase = App.Path & "\db2000.mdb"


lblStatus.Caption = ""


' Crear los objetos
Set db = OpenDatabase(sBase)
Set rst = db.OpenRecordset("SELECT * FROM Table1")


' Deshabilitar el botón de Actualizar
cmdUpdate.Enabled = False

' Posicionarse en el primer registro
cmdMove_Click cPrimero

End Sub



Private Sub Form_Unload(Cancel As Integer)
' Cerrar las conexiones y deshacerse de las referencias de los objetos


On Error Resume Next


rst.Close
db.Close


Set rst = Nothing
Set db = Nothing


Err = 0


Set fDAO = Nothing
End Sub



Private Sub MostrarRegistro()
' Mostrar en las cajas de texto el contenido del registro actual


On Error Resume Next


' Comprobamos que nos hemos movido a un registro existente
If (Not rst.EOF) And (Not rst.BOF) Then
Text2.Text = "ID: " & rst!ID

Text1(0) = rst!Nombre
' Como el nombre de este campo tiene signos especiales,
' hay que ponerlo entre corchetes
Text1(1) = rst![e-mail]
Text1(2) = rst!Comentario
End If


Err = 0
End Sub


Private Sub Text1_Change(Index As Integer)
' Si se modifica el contenido de los textbox, permitir actualizar
cmdUpdate.Enabled = True
End Sub




Informe (Visual Basic) de Diego Jober


 
Valora este artículo   Malo Excelente  

Han valorado este artículo de Visual Basic. 257 usuario(s).
Valoración media: Acceso

Este artículo ha sido leído ( 107286 veces ).
Fecha: 4/17/2003


Agregar comentario | (0) comentarios
trucos Visual Basic Recomendar este artículo Visual Basic
Foros sobre Visual Basic
Visual Basic
Imprimir Visual Basic
artículo Visual Basic Agregar a Favoritos este artículo Visual Basic


Visual Basic
Artículos Relacionados

• Coloca un icono junto al reloj mediante visual basic

• Conversor de Texto en visual basic

• Cómo conectarse a una unidad de red con visual basic

• Copiar, Mover y Eliminar ficheros usando el API de Windows (SHFileOperation)

• Barra divisoria hecha en casa con visual basic

• Usando el API de Windows mediante visual basic (SHBrowseForFolder)

• Acceso a base de datos de Access 2000 desde visual basic

• Trucos para visual basic.