Você está na página 1de 20

Lic.

Victor Pozo Daz SQL Server y Visual Basic

2013
Victor Pozo Daz

ACCESO A BASE DE DATOS Desde Visual Basic 6.0


El control de datos ADO (Objetos de Datos ActiveX)
El control de datos ADO usa Objetos de Datos ActiveX (ADO) para crear de una manera rpida
conexiones entre controles de enlace de datos y proveedores de datos.
Los controles ms utilizados para enlace de datos, ComboBox, TextBox. De manera adicional,
Visual Basic incluye distintos controles ActiveX de enlace de datos, como los controles DataGrid.

El objeto Connection
El objeto connection representa una sesin con el origen de los datos. La funcin de este objeto es
recoger todas la informacin del proveedor de los datos que se va utilizar para crear un objeto
recordset.
Para crear una variable de tipo connection debemos hacer lo siguiente:
Public conexin as New ADODB.Connection crear la variable connexion de tipo Connection
Luego se debe abrir la conexin :
Conexin.open DSN=ORIGENBIBLIO;uid=;pwd=; Si trabaja con Origen de datos (ODBC)
Donde:
DSN
Nombre del origen de datos creado por el usuario
UID
nombre del usuario que abre la conexin
PWD Clave utilizada por el usuario para abrir la conexin

conexion.Open "DRIVER=SQL Server;SERVER=WINDOWSSP4;DATABASE=COMISARIA;UID=;PWD=;"


Donde:
WINDOWSSP4; Nombre del equipo o servidor de BD.
COMISARIA; Nombre de la base de datos en SQL Server.

Propiedades relacionadas con el control ADO


Propiedad
Backcolor

Descripcion
devuelve o establece el color de fondo
de un objeto.
ConnectionString Contiene la informacin que se utiliza
para establecer una conexin a un
origen de datos.
RecordSource
Devuelve o establece la instruccin o la
consulta con que se obtiene un conjunto
de registros.
1

Sintaxis y/o ejemplo


BackColor = QBColor(Rnd * 15)
PROVIDER=MSDASQL;
dsn=asistencia;uid=;pwd=;
select Nombres,Materno,Paterno from
Empleado;

Lic. Victor Pozo Daz SQL Server y Visual Basic

2013
Victor Pozo Daz

ToolTipText
Visible

Devuelve o establece Informacin sobre objeto.ToolTipText [= cadena]


herramientas.
Devuelve o establece un valor que indica objeto.Visible [= booleano]
si un objeto es visible o est oculto.

Objeto Recordset
Un objeto Recordset representa los registros de una tabla base o los registros que se generan al
ejecutar una consulta.
Utilice los objetos Recordset para manipular datos en una base de datos a nivel de registro.
Cuando utiliza objetos de acceso de datos, interacta con los datos prcticamente utilizando
objetos Recordset. Todos los objetos Recordset se construyen utilizando registros (filas) y
campos (columnas).
Ejemplo: Si Queremos trabajar con el objeto LECTOR debemos hacer lo siguiente:
Primero se debe declarar una variable de tipo recordset y luego crearlo de la siguiente forma:
Public tabLector As New ADODB.Recordset
tabLector.Open LECTOR, adOpenDynamic, adLockOptimistic

TabLector.Open SELECT * FROM LECTOR, adOpenDynamic, adLockOptimistic

Lic. Victor Pozo Daz SQL Server y Visual Basic

2013
Victor Pozo Daz

Lic. Victor Pozo Daz SQL Server y Visual Basic

2013
Victor Pozo Daz

EJEMPLO. Realizar las siguientes tareas en SQL-Server y Visual Basic 6.0:

Crear una base de datos en SQL-Server BIBLIOTECA


Crear el objeto LECTOR
Crear un origen de datos ORIGENBIBLIO que conecte con la base de datos
BIOBLIOTECA.
Crear un proyecto en VB que permita Administrar el objeto LECTOR

1. CREAR UNA BASE DE DATOS EN SQL-SERVER BIBLIOTECA CON EL


ADMINISTRADOR CORPORATIVO
a) Verificar que el administrador de servicios esta en ejecucin
caso
contrario se debe iniciar, haciendo doble clic en el icono y presionando el botn
Iniciar o continuar
b) Iniciar el Administrador corporativo (Enterprise Manager) desde el grupo de
programas de Microsoft SQLServer 7.0
c) Clic en el smbolo + ubicado a la izquierda de
d) Clic en botn derecho del Mouse en la carpeta Bases de Datos
e) Seleccionar la opcin Nueva base de datos...
f) Escribir el nombre de la base de datos BIBLIOTECA
g) Clic en el botn Aceptar

Lic. Victor Pozo Daz SQL Server y Visual Basic

2013
Victor Pozo Daz

2. CREAR EL OBJETO LECTOR


a)
b)
c)
d)
e)
f)

Clic en el smbolo + ubicado a la izquierda de la base de datos BIBLIOTECA


botn derecho sobre Tablas
Seleccionar la opcin Nueva tabla...
Escribir el nombre de la tabla LECTOR
Clic en el botn Aceptar
Escribir los atributos, tipos de datos con sus restricciones de la tabla LECTOR
como se observa en la figura

a) Clic en el botn Guardar


b) Clic en el botn X de la ventana de tabla
Adicionar datos a nuestras tablas LECTOR
a)
b)
c)
d)

Botn derecho sobre la tabla LECTOR


Elegir la opcin abrir tabla
Seleccionar la opcin devolver todas las filas
Escribir los datos de la tabla LECTOR

Lic. Victor Pozo Daz SQL Server y Visual Basic

2013
Victor Pozo Daz

3. CREAR EL ORIGEN DE DATOS ORIGENBIBLIO PARA ACCESAR A LA BASE


DE DATOS BIBLIOTECA
a) Ingresar a Panel de Control, Herramientas Administrativas
b) Doble clic en Origen de Datos (ODBC)

c)
d)
e)
f)

Clic en Agregar
Seleccionar SQL Server
Clic en Finalizar
Llenar los datos de acuerdo a la figura

Lic. Victor Pozo Daz SQL Server y Visual Basic

2013
Victor Pozo Daz

Nombre
del origen
de datos

Nombre
del Equipo

g) Clic en Siguiente>
h) Clic en siguiente>
i) En Establecer la siguiente base de datos como predeterminada:
Seleccionar BIBLIOTECA

j) Clic en Siguiente>
k) Clic en Finalizar (Ver figura)

l) clic en Probar origen de datos


m) Clic en Aceptar

Lic. Victor Pozo Daz SQL Server y Visual Basic

2013
Victor Pozo Daz

Resultado:

Lic. Victor Pozo Daz SQL Server y Visual Basic

2013
Victor Pozo Daz

4. CREAR UN PROYECTO EN VB QUE PERMITA ADMINISTRAR EL OBJETO


LECTOR
1. Acceso a los datos a travs de Enlace de DATOS COMPLEJOS;
a) Se debe agregar los siguientes componentes:

b) Disear el siguiente formulario

DataGrid

Lic. Victor Pozo Daz SQL Server y Visual Basic

2013
Victor Pozo Daz

Control
Form1

Label1

Adodc1

DataGrid
Command1

Command2

Command3

Command4

Command5

Command6

Command7

propiedad
(nombre)=frmLector
Caption= FORMULARIO DE LECTORES
ControlBox=False
Moveable=False
BorderStyle=1-Fixed Single
Caption=BIBLIOTECA ESPECIALIZADA CEMSE
BorderStyle=1-Fixed Single
Alignment=2-Center
Font=Gill Sans MT, Tamao 14
(nombre)=ADODCLector
ConnectionString=DSN=ORIGENBIBLIO
Recordsource=select * from LECTOR
DataSource=ADODCLector
(Nombre)=cmdGrabar
Caption=Grabar
Style=1-Graphical
Picture= Buscar un archivo grafico (Mapa
(Nombre)=cmdNuevo
Caption=Nuevo
Style=1-Graphical
Picture= Buscar un archivo grafico (Mapa
(Nombre)=cmdBuscar
Caption=Buscar
Style=1-Graphical
Picture= Buscar un archivo grafico (Mapa
(Nombre)=cmdModificar
Caption=Modificar
Style=1-Graphical
Picture= Buscar un archivo grafico (Mapa
(Nombre)=cmdEliminar
Caption=Eliminar
Style=1-Graphical
Picture= Buscar un archivo grafico (Mapa
(Nombre)=cmdCancelar
Caption=Cancelar
Style=1-Graphical
Picture= Buscar un archivo grafico (Mapa
(Nombre)=cmdSalir
Caption=Salir
Style=1-Graphical
Picture= Buscar un archivo grafico (Mapa

10

de bits)

de bits)

de bits)

de bits)

de bits)

de bits))

de bits)

Lic. Victor Pozo Daz SQL Server y Visual Basic

2013
Victor Pozo Daz

Resultado:

CODIGO
Option Explicit
'Variables definidas a nivel de modulo de formulario (frmLector)
Dim varCodAl ,mensaje, estilo, titulo As String
Dim respuesta As Byte

Private Sub ADODCLector_MoveComplete(ByVal adReason As


ADODB.EventReasonEnum, ByVal pError As ADODB.Error, adStatus As
ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)
'El mtodo MoveComplete es invocado despus de que la posicin actual del
Recordset 'haya cambiado.
'RecordCount;Indica el nmero actual de registros de un objeto Recordset.
'AbsolutePosition; Devuelve el nmero de registro relativo de un registro activo
del objeto Recordset.

ADODCLector.Caption = "Registro N " &


ADODCLector.Recordset.AbsolutePosition & " de " &
ADODCLector.Recordset.RecordCount
End Sub

11

Lic. Victor Pozo Daz SQL Server y Visual Basic

2013
Victor Pozo Daz

Private Sub cmdBuscar_Click()


On Error GoTo mensajeError 'Manejador

de errores en tiempo de ejecucin.

'Salta a la etiqueta mensajeError si existe un error.

ADODCLector.Recordset.MoveFirst 'Mueve el puntero al primer registro


varCodAl = Trim(InputBox("Introduzca el cdigo del LECTOR...", ""))
ADODCLector.Recordset.Find "COD_LEC='" & Trim(varCodAl) & "'"
If ADODCLector.Recordset.EOF Then 'Verifica si el puntero esta al final
MsgBox "NO EXISTE EL LECTOR" & " " & varCodAl & " " & "EN LA BASE DE DATOS..."
ADODCLector.Recordset.MoveFirst 'Mueve el puntero al primer registro y
'lo convierte en el registro actual.

End If
mensajeError:
If Err.Number <> 0 Then

'Err; Contiene informacin sobre errores en tiempo de ejecucin.

MsgBox Err.Description
End If
End Sub
Private Sub cmdCancelar_Click()
On Error GoTo mensajeError
ADODCLector.Recordset.CancelBatch

'Cancela una actualizacin por lotes pendiente

'Mueve el puntero al primer registro y lo convierte en el registro actual, para que los
'cambios sean permanentes

ADODCLector.Recordset.MoveFirst
mensajeError:
If Err.Number <> 0 Then

'Err; Contiene informacin sobre errores en tiempo de ejecucin.

MsgBox Err.Description
End If
End Sub

12

Lic. Victor Pozo Daz SQL Server y Visual Basic

2013
Victor Pozo Daz

Private Sub cmdEliminar_Click()


On Error GoTo mensajeError
mensaje = "ESTA SEGURO(a) DE BORRAR EL REGISTRO..."
titulo = "CUADRO DE ELIMNACION"
estilo = vbYesNo + vbInformation
respuesta = MsgBox(mensaje, estilo, titulo)
If respuesta = vbYes Then
ADODCLector.Recordset.Delete

'Borra el Registro seleccionado

ADODCLector.Refresh

'Actualiza o reconstruye el control ADODCLector

End If
mensajeError:
If Err.Number <> 0 Then
MsgBox Err.Description
End If
End Sub
Private Sub cmdGrabar_Click()
On Error GoTo mensajeError
ADODCLector.Recordset.Update
ADODCLector.Refresh

'Actualiza los valores de los campos del objeto LECTOR

'Actualiza o reconstruye el control ADODCLector

mensajeError:
If Err.Number <> 0 Then
MsgBox Err.Description
End If
End Sub
Private Sub cmdModificar_Click()
On Error GoTo mensajeError
ADODCLector.Recordset.Update

'Guarda los cambios realizados

ADODCLector.Refresh 'Actualiza o reconstruye el control ADODCLector


mensajeError:
If Err.Number <> 0 Then
MsgBox Err.Description
End If
End Sub

13

Lic. Victor Pozo Daz SQL Server y Visual Basic

2013
Victor Pozo Daz

Private Sub cmdNuevo_Click()


On Error GoTo mensajeError
ADODCLector.Recordset.AddNew 'Crea una nueva fila para el objeto recordset
mensajeError:
If Err.Number <> 0 Then
MsgBox Err.Description
End If
End Sub

Private Sub cmdSalir_Click()


End
End Sub

14

Lic. Victor Pozo Daz SQL Server y Visual Basic

2013
Victor Pozo Daz

2. Acceso a los datos a travs de Enlace de DATOS SIMPLES


c) Agregar un nuevo formulario Nombre=frmLector02
d) Disear el siguiente formulario

Control
Form2

Label1

Adodc1

Text1

Text2
Text3
Text4

propiedad
(nombre)=frmLector02
Caption=FORMULARIO DE LECTORES
ControlBox=False
Moveable=True
BorderStyle=1-Fixed Single
Caption= ACCESO A LOS DATOS A TRAVES DE ENLACE DE DATOS SIMPLES
BorderStyle=1-Fixed Single
Alignment=2-Center
Font=Arial, Tamao 14
(nombre)=ADODCLector02
ConnectionString=DSN=ORIGENBIBLIO
Recordsource=select * from LECTOR
DataSource=ADODCLector02
DataField=COD_LEC
MaxLength=10
DataSource=ADODCLector02
DataField=PATERNO
DataSource=ADODCLector02
DataField=MATERNO
DataSource=ADODCLector02
DataField=NOMBRES
15

Lic. Victor Pozo Daz SQL Server y Visual Basic

2013
Victor Pozo Daz

Text5

Text6
Command1

Command2

Command3

Command4

Command5

Command6

Command7

DataSource=ADODCLector02
DataField=FECHA_NAC
MaxLength=8
DataSource=ADODCLector02
DataField=DIRECCION
(Nombre)=cmdGrabar
Caption=Grabar
Style=1-Graphical
Picture= Buscar un archivo
bits)
(Nombre)=cmdNuevo
Caption=Nuevo
Style=1-Graphical
Picture= Buscar un archivo
bits)
(Nombre)=cmdBuscar
Caption=Buscar
Style=1-Graphical
Picture= Buscar un archivo
bits)
(Nombre)=cmdModificar
Caption=Modificar
Style=1-Graphical
Picture= Buscar un archivo
bits)
(Nombre)=cmdEliminar
Caption=Eliminar
Style=1-Graphical
Picture= Buscar un archivo
bits)
(Nombre)=cmdCancelar
Caption=Cancelar
Style=1-Graphical
Picture= Buscar un archivo
bits))
(Nombre)=cmdSalir
Caption=Salir
Style=1-Graphical
Picture= Buscar un archivo
bits))

16

grafico (Mapa de

grafico (Mapa de

grafico (Mapa de

grafico (Mapa de

grafico (Mapa de

grafico (Mapa de

grafico (Mapa de

Lic. Victor Pozo Daz SQL Server y Visual Basic

2013
Victor Pozo Daz

Resultado:

CODIGO
Private Sub ADODCLector02_MoveComplete(ByVal adReason As
ADODB.EventReasonEnum, ByVal pError As ADODB.Error, adStatus As
ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)
'El mtodo MoveComplete es invocado despus de que la posicin actual del
'Recordset haya cambiado.

ADODCLector02.Caption = "Registro N " &


ADODCLector02.Recordset.AbsolutePosition & " de " &
ADODCLector02.Recordset.RecordCount
End Sub

17

Lic. Victor Pozo Daz SQL Server y Visual Basic

2013
Victor Pozo Daz

Private Sub cmdBuscar_Click()


ADODCLector02.Recordset.MoveFirst 'Mueve el puntero al primer registro
varCodAl = Trim(InputBox("Introduzca el codigo del LECTOR...", ""))
ADODCLector02.Recordset.Find "COD_LEC='" & Trim(varCodAl) & "'"
If ADODCLector02.Recordset.EOF Then 'Verifica si el puntero esta al final
MsgBox "NO EXISTE EL LECTOR" & " " & varCodAl & " " & "EN LA BASE DE DATOS..."

ADODCLector02.Recordset.MoveFirst

'Mueve el puntero al primer registro y lo


'convierte en el registro actual, para que
'los cambios sean permanentes.

End If
End Sub
Private Sub cmdCancelar_Click()
On Error GoTo mensajeError

'Manejador de errores en tiempo de ejecucin. Salta


'a la etiqueta mensajeError si existe un error

ADODCLector02.Recordset.CancelBatch
ADODCLector02.Recordset.MoveFirst
mensajeError:
If Err.Number <> 0 Then

Cancela una actualizacin por lotes pendiente

'Err; Contiene informacin sobre errores en tiempo de ejecucin.

MsgBox Err.Description
End If
End Sub
Private Sub cmdEliminar_Click()
On Error GoTo mensajeError
mensaje = "ESTA SEGURO(a) DE BORRAR EL REGISTRO..."
titulo = "CUADRO DE ELIMNACION"
estilo = vbYesNo + vbInformation
respuesta = MsgBox(mensaje, estilo, titulo)
If respuesta = vbYes Then
ADODCLector02.Recordset.Delete

'Borra el Registro seleccionado

ADODCLector02.Refresh 'Actualiza o reconstruye el control (ADODCLector02)


End If
mensajeError:
If Err.Number <> 0 Then
MsgBox Err.Description
End If
End Sub

18

Lic. Victor Pozo Daz SQL Server y Visual Basic

2013
Victor Pozo Daz

Private Sub cmdGrabar_Click()


On Error GoTo mensajeError
mensaje = "ESTA SEGURO(a) DE GRABAR..."
titulo = "CUADRO DE CONFIRMACION" estilo =
vbYesNo + vbInformation
respuesta = MsgBox(mensaje, estilo, titulo)
If respuesta = vbYes Then
ADODCLector02.Recordset.Update
ADODCLector02.Refresh

'Actualiza los valores de los campos del objeto LECTOR

'Actualiza o reconstruye el control ADODCLector02

Else
'Cancela todas las actualizaciones pendientes del objeto Recordset

ADODCLector02.Recordset.CancelUpdate
End If
mensajeError:
If Err.Number <> 0 Then
MsgBox Err.Description
End If
End Sub
Private Sub cmdModificar_Click()
On Error GoTo mensajeError
'Guarda los cambios realizados en el registro actual de un objeto recordset

ADODCLector02.Recordset.Update
ADODCLector02.Refresh
mensajeError:
If Err.Number <> 0 Then
MsgBox Err.Description
End If
End Sub

19

Lic. Victor Pozo Daz SQL Server y Visual Basic

2013
Victor Pozo Daz

Private Sub cmdNuevo_Click()


On Error GoTo mensajeError
ADODCLector02.Recordset.AddNew

'Crea una nueva fila para el objeto recordset

Text1.SetFocus

'Mueve el enfoque al control Text1

mensajeError:
If Err.Number <> 0 Then
MsgBox Err.Description
End If
End Sub

Private Sub cmdSalir_Click()


End
End Sub

20

Você também pode gostar