Trabajando con ADO Viual Basic 6.0

Crear una base de datos con ADO, usando código de VB
Para poder crear una base de datos, desde Visual Basic, usando ADO (ActiveX
   D
ata Objects), tenemos que crear en nuestro proyecto una referencia a: Microsoft ADO Ext. 2.6 for DDL and Security (msadox.dll), y crear un objeto del tipo Catalog.


 
Cita: Mostrar

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

Dim cat As ADOX.Catalog
Set cat = New ADOX.Catalog
'
' Crear la base de datos
cat.Create "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 = "Microsoft.Jet.OLEDB.3.51"
Para una base de datos del tipo Access 2000, sProvider = "Microsoft.Jet.OLEDB.4.0"


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


[/size]Abrir una base de datos ADO con contraseña 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=Microsoft.Jet.OLEDB.4.0;
Set Cnn = New ADODB.Connection

Cnn.Open "Provider=Microsoft.Jet.OLEDB.3.51; " & _
     "Data Source=" & sBase & ";" & _
     "Jet OLEDB:Database Password=laclave"
En este ejemplo, asumimos que tenemos una variable llamada Cnn del tipo ADODB.Connection y otra, sBase del tipo String, a
la que se ha asignado el nombre de la base de datos a la que queremos acceder.
[/size]Crear una tabla en una base de datos usando ADO y VB 
Hay que crear una referencia a ADOX El código, casi simplificado, sería algo como esto:


Dim cat As ADOX.Catalog
Dim tbl As ADOX.Table
'
Set cat = New ADOX.Catalog
Set tbl = New ADOX.Table
'
' Abrir el catálogo
cat.ActiveConnection = _
        "Provider=" & cboProvider.Text & ";" & _
        "Data Source=" & txtNombreBase.Text & ";"
'
' Crear la nueva tabla
With tbl
    .Name = txtNombreTabla.Text
    ' 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
    .Columns.Append "ID", adInteger
    ' Dependiendo del tipo de proveedor, los datos de cadena serán de un tipo u otro
    If cboProvider.Text = "Microsoft.Jet.OLEDB.3.51" Then
        ' Para Access 97
        .Columns.Append "Nombre", adVarChar, 50         ' Una cadena de 50 caracteres
        .Columns.Append "email", adVarChar, 100
        .Columns.Append "Telefono", adVarChar
        .Columns.Append "Observaciones", adLongVarChar  ' Una cadena larga, (Memo)
    Else
        ' Para Access 2000
        .Columns.Append "Nombre", adVarWChar, 50        ' Una cadena de 50 caracteres
        .Columns.Append "email", adVarWChar, 100
        .Columns.Append "Telefono", adVarWChar
        .Columns.Append "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
cat.Tables.Append 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 = "Microsoft.Jet.OLEDB.3.51"
Para una base de datos del tipo Access 2000, sProvider = "Microsoft.Jet.OLEDB.4.0"

[/size]Comprobar si un Recordset está vacío
 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
           
lblData.Caption = "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.



Hasta la Proxima................
VENECODIGO
Trabajando con ADO Viual Basic 6.0
0 Puntos Score: 0/10
Visitas: 1107 Favoritos: 7
3 Comentarios Trabajando con ADO Viual Basic 6.0
HOLA, quisiera saber c?
Para dejar un comentario Registrate! o.. eres ya usuario? Accede!