Activex
Data Object. Para poder agregar un control de datos ADO (Adodc), se
requiere agregar
un componente, desde del menú Project -->Components
y después:

Palomear en el componente microsoft
ADO Data Control 6.0
(OLEDB).
En el
cuadro de herramientas, se agrega este componente: |
 |
Dibujado
en el formulario tiene una apariencia así: |
 |
A continuación
se muestra un ejemplo para mostrar el uso de este control.
Para empezar:
Crear un nuevo proyecto, agregar el componente, Hacer dobleclick en ese
control para que se añada al formulario, cambiarle la altura
a un valor pequeño: 315 está bien, añadir un TextBox,
cambiar el tamaño, valores: alto 315, ancho 2955.
Crear un array del Text1; seleccionar el Text1, pulsar el botón
derecho y copiarlo; pulsar en cualquier lado del Form y pulsar el ratón
derecho del ratón, seleccionar Pegar... saldrá un mensaje
preguntando si se quiere crear un array del control Text1, responder
que SI.
Volver a pegar de nuevo y se creará un tercer Text1.
Se tendran tres controles Text1 con los índices desde 0 a 2
Configurar el ADO datacontrol:
Seleccionar el datacontrol, en la ventana de propiedades pulsar en Propiedades...
mostrará un cuadro de diálogo, en la ficha General,
estará seleccionada la opción
"Use Connection String", pulsar en el botón "Build..." (o
Construir)
Mostrará otro cuadro de diálogo, en la ficha "Provider",
seleccionar Microsoft Jet 4.0 OLE DB Provider, pulsar en "Next>>" y
seleccionar la base de datos que se quiera usar, el resto de opciones
dejarlos como están; pulsar en "Aceptar" dos
veces para que se cierren los cuadros de diálogo
.

Seleccionar
la propiedad CursorType y de la lista desplegable seleccionar 2-adOpenDynaset.
Seleccionar la propiedad RecordSource y pulsar en el botón, mostrará un
cuadro de diálogo.
De la lista desplegable (Command type), seleccionar: 2-adCmdTable, la
lista "Table or Stored Procedure Name" se habrá habilitado,
seleccionar el nombre de la tabla que se quiera usar, en este caso Table1
y pulsar en Aceptar.
Esto mismo se puede
hacer mediante código, para ello asignar
estos valores al datacontrol: (por ejemplo en el 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 |
|
Es
necesario "ligar" los cuadros de texto
con el Datacontrol y los campos correspondientes:
Seleccionar los tres Text1, en la ventana de propiedades seleccionar
DataSource y en la lista desplegable selecciona Adodc1
Para ligar cada Text1 con un campo de la base de datos:
Pulsar en cualquier parte del formulario para quitar la selección
actual.
Seleccionar el Text1 con índice 0.
En la ventana de propiedades, selecciona DataField y de la lista desplegable,
seleccionar "Nombre"
Hacer lo mismo con los otros dos Text1, pero para el de índice
1, seleccionar "e-mail" y para el otro: "Comentario"
Este último control sería conveniente que se hiciera más
grande y MultiLine, ya que se supone que aceptará textos más
grandes porque el tipo de campo es "Memo"
Pulsar en F5 para probar que todo esto funciona.
Para hacerlo manualmente,
añadir lo siguiente en el evento Form_Load:
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" |
|
|
' Conectarlo a la tabla de prueba |
|
|
Adodc1.RecordSource
= "Table1" |
|
|
' Refresh es necesario para que se cargue la tabla |
|
|
|
' Conectar manualmente los Text1 al recordset |
|
' Asignar el control data |
|
Set Text1(i).DataSource = Adodc1 |
|
' 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ñadir este código:
Private Sub Adodc1_MoveComplete(ByVal adReason As |
|
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 |
|
Adodc1.Caption
= "ID del Registro: " & Adodc1.Recordset!ID |
|
Añadir
y borrar registros de la tabla.
Para tener estas dos opciones, añadir dos botones al formulario,
al primero ponerle el nombre cmdAdd y en el Caption escribir Añadir,
al otro botón el nombre a cmdDel y en el Caption escribir: Eliminar.
Añadir el siguiente código:
Private Sub cmdAdd_Click() |
Private Sub cmdDel_Click() |
|
|