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

Xido (10/06/2008)

Por
Olap poez aki dejando mi comentario la vdd ezq me gustho la forma en la q exlico pazo a pazo aunk por ai ai un error en fin jejej
aun azi me di cuenta jeje
la vdd ezq dezpuez de buzzcar en muxaz paginaz llegue a eszta y poez al fin me zalio lo q io keria muxaz graxiaz por ezo pff salve mi calificacion grax a ti grax!!
me dezpido
azta luego y nuevamente
grax!!
bye!!

Ayuda (07/04/2008)

Por
Esta muy bien lo que describes, solo una pergunta si deseo utilizar mas de un adodc en una aplicacion pero cada uno con diferentes tablas, tengo un problema las tablas tienen relaciones y quiero que al mostrar los datos respete las relaciones, como vinculo a los adodc?
Espero me contesten gracias

una preguntita (09/11/2007)

Por
hola te escribo por que en primera me sirvio mucho tu articulo; soy novato en esto de la programacion y la verdad fue de gran ayuda tu articulo y la segunda razon es para preguntarte como realizar una consulta o una busqueda de algun campo en una base de datos y si tienes algun ejemplo me lo pudieras mandar por favor

una preguntita (09/11/2007)

Por
hola te escribo por que en primera me sirvio mucho tu articulo; soy novato en esto de la programacion y la verdad fue de gran ayuda tu articulo y la segunda razon es para preguntarte como realizar una consulta o una busqueda de algun campo en una base de datos y si tienes algun ejemplo me lo pudieras mandar por favor

Imprimir (17/08/2007)

Por
en mi base de datos necesito poner un boton imprimir, pero no se como hacerle, si me pudiera ayudar estaria muty agradecido.
 
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