0% encontró este documento útil (0 votos)
26 vistas6 páginas

Guía de ADO en Visual Basic

El documento proporciona una guía sobre el uso de ADO (ActiveX Data Objects) con Visual Basic, incluyendo ejemplos prácticos para conectar a bases de datos, realizar consultas SQL, y manejar datos. Se abordan temas como la creación y compactación de bases de datos, así como consejos para optimizar el acceso a datos. Además, se incluyen fragmentos de código y recomendaciones para trabajar con bases de datos Access y SQL Server.

Cargado por

JEROJAN SOSA
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
26 vistas6 páginas

Guía de ADO en Visual Basic

El documento proporciona una guía sobre el uso de ADO (ActiveX Data Objects) con Visual Basic, incluyendo ejemplos prácticos para conectar a bases de datos, realizar consultas SQL, y manejar datos. Se abordan temas como la creación y compactación de bases de datos, así como consejos para optimizar el acceso a datos. Además, se incluyen fragmentos de código y recomendaciones para trabajar con bases de datos Access y SQL Server.

Cargado por

JEROJAN SOSA
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Bases de Datos ADO con Visual Basic [Link]

htm

el Guille, la Web del Visual Basic, C#, .NET y


más...
Lo Nuevo - .NET - [Link] - [Link] - Cómo... - Colabora - VB6 - API
- Bases - HTML - Links

Bases de datos Calificación:

ADO
Lectores: 179
Guillermo guille
Autor:
Som
Calif. Autor:
DCE: 1
(ActiveX Data Objects) Normal 6 Calificar

Actualizado el 18/Sep/2004
Mi Panorama SOS
Escribe para Nosostros

Sigue este link para ver cómo hacer las cosas con DAO

Contenido: (los más recientes arriba)


1. Indicar el path de una base de datos usando el control data (18/Sep/04)
Ejemplo paso a paso de cómo usar un control data y DataGrid
2. Conectar a una base de datos de SQL Server con VB6 (Abrir una tabla y mostrar
los campos/columnas) (10/Sep/04)
3. Instrucciones SQL para seleccionar, actualizar, eliminar datos, etc. (02/May/04)
4. Acceder a una base de datos de Access desde una página ASPX usando ADO
(02/Ene/04)
5. Comprobar si un Recordset está vacío (18/Dic/03)
6. Cómo manejar fechas en consultas, además de otros ejemplos, tanto para ADO
como para DAO (09/Jul/03)
7. Acceder a una base de datos ADO sin el data control (Curso Básico entrega 41)
(09/Jul/03)
8. Más consejos para mejorar el acceso a datos, aportados por Norman A. Armas
(25/Oct/01)
9. Compactar y cambiar el password de una base de datos (24/Oct/01)
10. Compactar una base de datos con password (24/Oct/01)
11. Consejos para mejorar el acceso a los datos (04/Oct/01)
12. Código de ejemplo de compactar, crear base y crear tablas con ADO (29/Sep/01)
13. Compactar una base de datos usando ADO y VB (29/Sep/01)
14. Crear una tabla en una base de datos, usando ADO y VB (29/Sep/01)
Leer nota del 04/Oct/01 y 27/Dic/02
15. Crear una base de datos con ADO, usando código de VB (29/Sep/01)
16. Abrir una base de datos ADO con contraseña (05/Sep/01)
17. Manipular imágenes usando ADO (con datacontrol) (11/Jul/01)
18. Usar el ADO DataControl (Curso Básico entrega 36) (14/Feb/01)

1 de 6 11/03/2005 11:22 a.m.


Bases de Datos ADO con Visual Basic [Link]

19. Acceder a bases de datos usando ADO (sin el data control) (31/Ago/99)
20. Acceder a bases de Access 2000 (usando el datacontrol de ADO) (31/Ago/99)

Comprobar si un Recordset está vacío (18/Dic/2003)

Como sabrás, se puede usar .BOF o .EOF para comprobar si está en los límites del
recordset.
BOF devolverá True si el "puntero" está antes del primer registro, por otro lado EOF
nos indicará si ese puntero está después del último registro, pero la recomendación
para comprobar si realmente está vacío es que se cumplan esas dos condiciones: que
tanto BOF como EOF sean True, por tanto podremos hacer una comprobación como
esta:

With rst
If .EOF And .BOF Then
[Link] = "No hay ningún registro activo"
.MoveFirst
Else
Text1(0) = .Fields("Au_ID")
' Por si el dato es nulo, añadirle una cadena vacia
Text1(1) = .Fields("Author") & ""
Text1(2) = .Fields("Year Born") & ""
End If
End With

Aunque también se podría comprobar que .BOF Or .EOF sean True, es decir, hacer algo
como esto:
If .EOF Or .BOF Then
pero ya te digo que lo más correcto es usar AND, al menos eso es lo que he leído en la
documentación de ADO.
Espero que esta pequeña aclaración te pueda ser de utilidad.

Nos vemos.
Guillermo

Más consejos para mejorar el acceso a los datos, aportados por Norman A.
Armas (25/Oct/2001)

Algunos consejos para mejorar el acceso a datos:

-Abrir el recordset o el Data sólo en el momento necesario, NUNCA abrir los recordsets
o datas en el momento de cargar la forma (salvo en casos en que no queda mas
remedio)
Por ejemplo si tienes un formulario con varios combos no es necesario llenarlos en el
momento de cargar la forma, una buena costumbre es cargarlos en el momento en
que el usuario haga click en el combo.

-No cargar mas de 100 records como máximo en un grid o lista, si es necesario
mostrar más, jugar con el SELECT TOP y el WHERE para mostrar los datos en bloques
de a 100 (o menos de 100)

Compactar una base de datos con password y cambiarlo. (24/Oct/2001)

2 de 6 11/03/2005 11:22 a.m.


Bases de Datos ADO con Visual Basic [Link]

Para compactar una base de datos con password (o contraseña), se hace


prácticamente igual que en una base de datos sin password, lo único que hay que
hacer es añadirle la cadena correspondiente al código mostrado anteriormente.

Este sería el código para compactar una base de datos con password:

[Link] "Data Source=" & [Link] & ";" & _


"Jet OLEDB:Database Password=PasswordAnterior", _
"Data Source=" & sDBTmp & ";"

Y este otro para cambiarle el password actual y ponerle otro:

[Link] "Data Source=" & [Link] & ";" & _


"Jet OLEDB:Database Password=PasswordAnterior", _
"Data Source=" & sDBTmp & ";" & _
"Jet OLEDB:Database Password=NuevoPassword"

Consejos para mejorar el acceso a los datos (04/Oct/2001)

Esta sección te mostrará algunos consejos con los cuales podrás mejorar el acceso a
los datos, el primero de ellos, con el que inauguramos esta sección es de Norman A.
Armas, si crees que tienes alguno que se pueda añadir, me lo mandas. Gracias.

1. Consejo aportado por Norman A. Armas, publicado el 04/Oct/2001

Nunca usar SELECT * FROM TuTabla., especifica siempre que campos son los que
se quieren seleccionar en ese momento y que record o records

Código de ejemplo de compacta, crear base y crear tablas con ADO


(29/Sep/2001)

Este es el link al código completo de los tres casos indicados:

Cómo crear una base de datos con ADO,


Cómo crear tablas y
Cómo compactar una base de datos.

En la página se muestra el código completo, el cual puedes bajar mediante un fichero


comprimido.

¡Que lo disfrutes!
Guillermo

Compactar una base de datos usando ADO y VB (29/Sep/2001)

Para compactar bases de datos usando ADO, tienes que crear una referencia a
Microsoft Jet and Replication Objects 2.6 Library (JRO).

Nota: JRO sólo se puede usar con bases de datos Microsoft JET

3 de 6 11/03/2005 11:22 a.m.


Bases de Datos ADO con Visual Basic [Link]

Aquí tienes el código necesario para compactar una base de datos:


Private Sub cmdCompactar_Click()
' Compactar una base de datos con ADO
Dim sDBTmp As String
Dim je As [Link]
'
On Error GoTo ErrCompactar
'
Set je = New [Link]
'
' Crear un nombre "medio" aleatorio
sDBTmp = "DBT_" & Format$(Minute(Now), "00") & Format$(Second(Now), "00") & ".mdb"
' Asegurarnos de que no existe una base con el nombre temporal
If Len(Dir$(sDBTmp)) Then
Kill sDBTmp
End If
'
[Link] = " Compactando la base de datos..."
[Link]
'
' Compactar la base de datos
[Link] "Data Source=" & [Link] & ";", _
"Data Source=" & sDBTmp & ";"
'
' Eliminar la base de datos original
Kill [Link]
'
' Renombrar la base temporal con el original
Name sDBTmp As [Link]
'
[Link] = " Base de datos compactada."
[Link]
'
Exit Sub
'
ErrCompactar:
' Mostrar el mensaje de error
MsgBox "Error al compactar la base de datos:" & vbCrLf & _
[Link] & " " & [Link], _
vbExclamation, "Error al compactar la base de datos"
[Link]
[Link] = " *** Error al compactar la base de datos ***"
[Link]
End Sub

Para más información: Compacting a Database (MDAC Technical Articles)

Crear una tabla en una base de datos usando ADO y VB


(29/Sep/2001)

Hay que crear una referencia a ADOX (ver Cómo crear una base de datos con ADO).
El código, casi simplificado, sería algo como esto:

Dim cat As [Link]


Dim tbl As [Link]
'
Set cat = New [Link]
Set tbl = New [Link]
'
' Abrir el catálogo
[Link] = _
"Provider=" & [Link] & ";" & _
"Data Source=" & [Link] & ";"
'
' Crear la nueva tabla
With tbl
.Name = [Link]
' Crear los campos y añadirlos a la tabla.
' Esto hay que hacerlo antes de añadir la tabla a la colección de tablas
.[Link] "ID", adInteger

4 de 6 11/03/2005 11:22 a.m.


Bases de Datos ADO con Visual Basic [Link]

' Dependiendo del tipo de proveedor, los datos de cadena serán de un tipo u otro
If [Link] = "[Link].3.51" Then
' Para Access 97
.[Link] "Nombre", adVarChar, 50 ' Una cadena de 50 caracteres
.[Link] "email", adVarChar, 100
.[Link] "Telefono", adVarChar
.[Link] "Observaciones", adLongVarChar ' Una cadena larga, (Memo)
Else
' Para Access 2000
.[Link] "Nombre", adVarWChar, 50 ' Una cadena de 50 caracteres
.[Link] "email", adVarWChar, 100
.[Link] "Telefono", adVarWChar
.[Link] "Observaciones", adLongVarWChar ' Una cadena larga, (Memo)
End If
.Columns("Nombre").Attributes = adColNullable ' Permite contener nulos
.Columns("email").Attributes = adColNullable
.Columns("Telefono").Attributes = adColNullable
.Columns("Observaciones").Attributes = adColNullable
End With
'
' Añadir la nueva tabla a la base de datos
[Link] tbl
'
Set tbl = Nothing
Set cat = Nothing

En este ejemplo, tenemos que tener asignadas las variables sProvider (el proveedor),
sNombreBase (el nombre y path de la base de datos) y sNombreTabla para el
nombre de la tabla.
Para una base de datos del tipo Access 97, sProvider =
"[Link].3.51"
Para una base de datos del tipo Access 2000, sProvider =
"[Link].4.0"

Nota:
Los tipos de datos de cadena adVarChar y adLongVarChar son los
que aceptan las tablas para Access 97,
las tablas de Access 2000 se deben usar los del tipo adVarWChar y
adLongWChar.

Nota 2:
Los campos se añaden a la tabla por orden alfabético,
independientemente del orden en el que se han añadido.
Nota del 27/Dic/02:
Esto sólo ocurre si se usa el JET 3.51, con JET 4.0 los crea en el
orden indicado al crearlos.
Gracias Jose Angel Calvo.

Si alguien sabe cómo hacer que no se clasifiquen, (en JET 3.51), por favor
que me lo diga, gracias

Para más información: Defining and Retrieving a Database’s Schema


(MDAC Technical Articles)

Crear una base de datos con ADO, usando código de VB


(29/Sep/2001)

Para poder crear una base de datos, desde Visual Basic, usando ADO (ActiveX Data
Objects), tenemos que crear en nuestro proyecto una referencia a: Microsoft ADO
Ext. 2.6 for DDL and Security ([Link]), y crear un objeto del tipo Catalog.

Nota: Esta referencia es para la versión 2.6 de ADO, por tanto

5 de 6 11/03/2005 11:22 a.m.


Bases de Datos ADO con Visual Basic [Link]

puede ser que, si la versión que tienes instalada es otra, en


lugar de 2.6 aparezca otra numeración.
ADOX sólo está disponible a partir de la versión 2.1 de ADO.

Veamos, de forma simple, cómo crear una base de datos:


Dim cat As [Link]
Set cat = New [Link]
'
' Crear la base de datos
[Link] "Provider=" & sProvider & ";" & _
"Data Source=" & sNombreBase & ";"

En este ejemplo, tenemos que tener asignadas las variables sProvider (el proveedor)
y sNombreBase (el nombre y path de la base de datos).
Para una base de datos del tipo Access 97, sProvider =
"[Link].3.51"
Para una base de datos del tipo Access 2000, sProvider =
"[Link].4.0"

Nota: Si la base de datos ya existe, dará un error.

Para más información: Defining and Retrieving a Database’s Schema


(MDAC Technical Articles)

Abrir una base de datos ADO con contraseña (05/Sep/2001)

Para abrir una base de datos ADO con contraseña, podemos hacerlo al crear la
conexión.
He probado varias de las formas que se indican en la ayuda, pero la única que me ha
funcionado es la que aquí te muestro... así que, si a ti te funciona de otra forma,
pues... eso, que uses la que mejor te parezca... je, je.

Este código es para bases de datos del tipo Access 97, en caso de que quieras usar
una de Access 2000, hay que cambiar el provider por:
Provider=[Link].4.0;
Set Cnn = New [Link]

[Link] "Provider=[Link].3.51; " & _


"Data Source=" & sBase & ";" & _
"Jet OLEDB:Database Password=laclave"

En este ejemplo, asumimos que tenemos una variable llamada Cnn del tipo
[Link] y otra, sBase del tipo String, a la que se ha asignado el nombre
de la base de datos a la que queremos acceder.

6 de 6 11/03/2005 11:22 a.m.

También podría gustarte