Zona HTML Zona Java Zona PHP Zona ASP Zona Bases de datos
Inicio > Artículos > Entornos de desarrollo > Visual Basic > Acceso a base de datos de Access 2000 usando el ADO Data Control
-Artículos

Acceso a base de datos de Access 2000 usando el ADO Data Control

1 . Para empezar
2 . Ahora vamos a configurar el ADO Data Control
3 . Para ligar cada Text1 con un campo de la base de datos
4 . Añadir y borrar registros de la tabla

Si has intentado usar una base de datos creada o convertida con el Access 2000, te habrás llevado una pequeña sorpresa al ver que usando el Data Control que se incluye en el Visual Basic no te permite hacerlo. Esto es porque el nuevo formato de Access usa el motor Jet versión 4.0 y los datacontrol DAO sólo "entienden" hasta la versión 3.6...

Pero si tienes la versión 6.0 de Visual Basic, o bien has conseguido las DLLs de ADO (ActiveX Data Object), puedes usarlas sin problemas... incluso con el ADO Datacontrol.

En el siguiente código veremos cómo abrir y movernos en una base de datos, en este caso, lo mismo dará que la base de datos haya sido creada con Access 97 o con el Access 2000.

Para empezar

Crea un nuevo proyecto, en Proyecto/Componentes... selecciona Microsoft ADO Data Control (OLEDB), pulsa Aceptar y verás que se añade un nuevo control a la barra de herramientas: ¡Ese será el control que usaremos!

Haz dobleclick en ese control para que se añada al formulario, cámbiale la altura a un valor pequeño: 315 está bien, sitúalo donde más coraje te de y añade un TextBox, cambia el tamaño, yo le he dado estos valores:

  • Alto 315, ancho 2955.

Crea un array del Text1 recién añadido:

  • Selecciona el Text1, pulsa el botón derecho y copialo; pulsa en cualquier lado del Form y pulsa el ratón derecho del ratón, selecciona Pegar... te preguntará si quieres crear un array del control Text1, responde que SI.
  • Vuelve a pegar de nuevo y se creará un tercer Text1.
  • Ahora tendrás tres controles Text1 con los índices desde 0 a 2

Si te parece demasiado "básico" todos estos pasos... te aguantas... y espera un poco que ya mismo termino.

Ahora vamos a configurar el ADO Data Control

Selecciona el datacontrol, en la ventana de propiedades pulsa en Custom...

Te mostrará un cuadro de diálogo, (puede que si tienes la versión en castellano del VB, no te muestre lo que yo te digo, ya que la versión que tengo está en inglés, pero espero que no te lies...)

  • En la ficha General, estará seleccionada la opción "Use Connection String", pulsa en el botón "Build..."
  • Te mostrará otro cuadro de diálogo, en la ficha "Provider", selecciona Microsoft Jet 4.0 OLE DB Provider, pulsa en "Next>>" y selecciona la base de datos que quieres usar, (si tienes la que están incluidas en el ZIP, se llamará db2000.mdb); el resto de opciones déjalos como está; pulsa en "Aceptar" dos veces para que se cierren los cuadros de diálogo.

Ahora tenemos que decirle que tabla usar y otras cosillas.

  • Selecciona la propiedad CursorType y de la lista desplegable selecciona 2-adOpenDynaset.
  • Selecciona la propiedad RecordSource y pulsa en el botón, te mostrará un cuadro de diálogo.
  • De la lista desplegable (Command type), selecciona: 2-adCmdTable, la lista "Table or Stored Procedure Name" se habrá habilitado, selecciona el nombre de la tabla que quieres usar, en este caso Table1 y pulsa en Aceptar.

Esto mismo se puede hacer mediante código, para ello asígnale estos valores al datacontrol: (por ejemplo en el evento Form_Load)

Evento Form_Load
' Indicar la base de datos a usar
Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                          "Data Source=" & App.Path & "\db2000.mdb"
Adodc1.CursorType = adOpenDynamic

' Conectarlo a la tabla de prueba
Adodc1.RecordSource = "Table1"

' Refresh es necesario para que se cargue la tabla
Adodc1.Refresh

Nota: En el código de ejemplo asignaremos en tiempo de ejecución la base de datos y demás conexiones necesarias.

Ahora será necesario "ligar" los cuadros de texto con el Datacontrol y los campos correspondientes:

  • Selecciona los tres Text1, en la ventana de propiedades selecciona DataSource y en la lista desplegable selecciona Adodc1

Para ligar cada Text1 con un campo de la base de datos

Pulsa en cualquier parte del formulario para quitar la selección actual.

Selecciona el Text1 con índice 0.

En la ventana de propiedades, selecciona DataField y de la lista desplegable, selecciona "Nombre".

Haz lo mismo con los otros dos Text1, pero para el de índice 1, selecciona "e-mail" y para el otro: "Comentario".

Este último control sería conveniente que lo hicieras más grande y MultiLine, ya que se supone que aceptará textos más grandes porque el tipo de campo es "Memo".

Ya puedes pulsar en F5 para probar que todo esto funciona.

Realmente no es necesario añadir nada de código, pero si quieres hacerlo manualmente, añade lo siguiente en el evento Form_Load:

Evento Form_Load (II)
Private Sub Form_Load()
    ' Indicar la base de datos a usar
    Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                              "Data Source=" & App.Path & "\db2000.mdb"
    Adodc1.CursorType = adOpenDynamic

    ' Conectarlo a la tabla de prueba
    Adodc1.RecordSource = "Table1"

    ' Refresh es necesario para que se cargue la tabla
    Adodc1.Refresh

    ' Conectar manualmente los Text1 al recordset
    Dim i As Long

    ' Asignar el control data
    For i = 0 To 2
        Set Text1(i).DataSource = Adodc1
    Next

    ' Asignar los nombres de los campos
    Text1(0).DataField = "Nombre"
    Text1(1).DataField = "e-mail"
    Text1(2).DataField = "Comentario"
End Sub

Para que el Caption del data control nos muestre el número de registro, en este caso el campo ID de la tabla, añade este código:

Adodc1_MoveComplete
Private Sub Adodc1_MoveComplete(ByVal adReason As ADODB.EventReasonEnum,_
                                ByVal pError As ADODB.Error, _
                                adStatus As ADODB.EventStatusEnum, _
                                ByVal pRecordset As ADODB.Recordset)
    ' Mostrar el ID del registro actual
    ' si se pasa del primero o del último, dará error
    On Local Error Resume Next

    ' Mostrar el ID del registro actual usando el recordset pasado como
    ' parámetro
    'Adodc1.Caption = "ID del Registro: " & pRecordset!ID
    ' También se puede usar:
    Adodc1.Caption = "ID del Registro: " & Adodc1.Recordset!ID

    Err = 0
End Sub

Esta página web nos deberia de presentar la información contenida en la tabla direcciones de la base de datos prueba. Y a partir de aquí solamente teneis que leer la documentación y usar vuestra imaginación para crear páginas web dinámicas, actualizadas y que presenten la información contenida en vuestras bases de datos.

Añadir y borrar registros de la tabla

Para tener estas dos opciones, añade dos botones al formulario, al primero lo llamas cmdAdd y en el Caption escribe Añadir, al otro botón le cambias el nombre a cmdDel y en el Caption escribe: Eliminar.

Añade el siguiente código:

Private Sub cmdAdd_Click()
    Adodc1.Recordset.AddNew
End Sub

Private Sub cmdDel_Click()
    Adodc1.Recordset.Delete
End Sub
 

Últimos comentarios
Últimos 5 comentarios

busqueda en acces con inputbox (15/11/2006)

Por
quiero que me ayuden por favor....tengo un formulario donde tengo los campos y un boton de buscar...lo que quiero hacer es que cuando le de clic al boton me salga un inputbox y ahi introducir la clave de mi producto y que se situe en los capos de formulario ...por favor se los agradecere mucho...

muy bueno todo, pero como se abre si se le pone clave a la DB (24/10/2005)

Por
me gustaria saber como se abre la DB si tiene clave?

gracias,

¿COMO VINCULAR BASE DE DATOS EN ACCESS EN LA RED? (14/07/2005)

Por
Quiero saber como hago para importar y vincilar todo lo de una base de datos en acces en la red.

que en todos los quipos en los que los vincule se puedan ver los cambios que realicé en otro equipo a traves de la red interna

boton buscar y camparar registro (08/07/2005)

Por
En mi tabla llamada VEHICULO existe un campo llamado PLACA, quiero realizar un precedimiento que le indique al USUARIO si ya se le hizo o no mantenimiento al VEHICULO, al momento de incluir la PLACA DEL VEHICULO.

Coool (29/05/2005)

Por
Qué buena onda con este artículo de acceso a bases de datos de access 2000 con visual basic, me ha salvado el pellejo, GRACIAS!!!
 
Tienda
Patrocinados
 

Copyright © 1999-2006 Programación en castellano. Todos los derechos reservados.
Formulario de Contacto - Datos legales - Publicidad

Hospedaje web y servidores dedicados linux por Ferca Network