Anda di halaman 1dari 15

Curso de Visual Basic Aplicado Harley Solano Sánchez 31

H
a
Gestionando Información con ADO r
l
1. Insertar un nuevo formulario y establezca las siguientes propiedades : e
y
Nombre = Clientes
MDIChild = True S
ControlBox = False o
BorderStyle = None l
Top = 30 a
Left = 2820 n
Height = 7460 o
Width = 9030
*
2. Escribir las siguientes líneas de código
*
Objeto : Formulario Clientes
H
Evento : Load a
r
Código :
l
Private Sub Form_Load() e
Clientes.Top = 30 y
Clientes.Left = 2820
Clientes.Height = 7460 S
Clientes.Width = 9030 o
End Sub l
a
3. Activar el formulario Menú. n
o
4. Haga clic en la opción Registrar del menú principal y luego clic en la opción Clientes para
escribir la siguiente línea de código :
*
Objeto : clie (Opción Clientes del menú principal) *

Evento : Click H
a
Código :
r
Private Sub clie_Click() l
Clientes.Show e
End Sub y

5. Active el formulario Clientes y guárdelo con el nombre de Clientes.frm S


o
6. Desde el diseño del formulario Clientes, inserte los siguientes componentes :
l
a
n
o

harley.solano@gmail.com hasx1@hotmail.com
Curso de Visual Basic Aplicado Harley Solano Sánchez 32
H
a
Luego de Aceptar verá que la Cuadro de Herramientas tiene incorporado nuevos elementos similar a r
los siguientes : l
e
y

Adodc DataGrid S
o
7. Agregar un objeto Adodc al formulario con las siguientes propiedades l
a
Nombre = AdoCliente n
Caption = AdoCliente o
Visible = False
Ahora indique el conjunto de registros que almacenará el ADO de la siguiente manera : *
*
a. Ubíquese en la propiedad ConnectionString y haga clic sobre los tres puntos
suspensivos ubicados en el extremo izquierdo. H
a
r
l
b. De la ventana que aparece haga clic en el botón Generar
e
y

S
o
l
a
n
c. De la ventana Propiedades de Data Link seleccione la opción
o
Microsoft Jet 4.0 OLE DB Provider y haga clic en el botón
Siguiente.
*
*

H
a
r
l
e
y
d. Escriba la ubicación de la Base de datos llamada
CHELE.MDB o examine el disco para su S
ubicación, si lo desea puede Probar la conexión y o
después haga clic en Ok. l
a
n
o

harley.solano@gmail.com hasx1@hotmail.com
Curso de Visual Basic Aplicado Harley Solano Sánchez 33
H
a
e. Ubíquese en la propiedad RecordSource y haga clic sobre los tres puntos suspensivos r
ubicados en el extremo izquierdo. l
e
f. Indique que como Tipo de Comando la y
opción 2 – adCmdTable
S
g. Y en la opción Tabla o nombre de
o
procedimiento almacenado seleccione la
l
tabla Clientes de la Base de Datos.
a
n
o

*
*
8. Agregar los siguientes objetos al formulario Clientes :
H
xId cmdBuscar a
r
xDir
xName l
e
y
Frame1
S
o
l
a
n
o
FrameSaldos
*
*

H
DataGrid2 a
r
Más adelante le enseño l
a configurarlo por e
ahora no se preocupe
y

S
o
l
a
n
cmdNuevo cmdCancel cmdPrimer cmdAnte Sale
o
cmdSave Modifica cmdSigue cmdUltimo

harley.solano@gmail.com hasx1@hotmail.com
Curso de Visual Basic Aplicado Harley Solano Sánchez 34
H
a
9. Configurar los cuadros de textos de la siguiente manera r
l
Propiedades e
Objeto DataSource DataField y
xId AdoCliente Idcliente
xName AdoCliente Nombres S
xDir AdoCliente Dirección o
l
10. Modificar el código del formulario en el evento Load de la siguiente manera (las líneas nuevas a
las pondré en negrilla, las anteriores quedarán normal) n
o
Objeto : Formulario Clientes
Evento : Load *
Código : *
Private Sub Form_Load() H
Clientes.Top = 30 a
Clientes.Left = 2820 r
Clientes.Height = 7460 l
Clientes.Width = 9030 e
clientes.xid.Enabled = False y
clientes.xName.Enabled = False
clientes.xDir.Enabled = False S
clientes.cmdnuevo.Enabled = True o
clientes.cmdsave.Enabled = False l
clientes.cmdcancel.Enabled = False a
End Sub n
11. Inserte un Objeto Adodc con las siguientes propiedades o

Nombre = AdoBusca *
Caption = AdoBusca *
Visible = False
ConnectionString = Debe configurarse de la misma manera que el anterior H
RecordSource = vea la siguiente figura a
r
l
Seleccione la opción 8 – adCmdUnknown e
y
Y escriba el siguiente comando SQL como
origen de los registros : S
o
SELECT idcliente, nombres FROM cliente l
ORDER BY nombres a
n
o

harley.solano@gmail.com hasx1@hotmail.com
Curso de Visual Basic Aplicado Harley Solano Sánchez 35
H
a
Programando el TreeView y el ToolBar r
l
12. Ahora programe para que el resto de formularios pueda llamar al formulario clientes. Recuerde e
que hasta el momento solo lo llama desde el menú principal y necesitamos que sea invocado y
desde el arbol (TreeView) y desde la barra de herramientas (ToolBar).
S
o
l
a. Programar el Arbol o TreeView. a
n
i. Active el diseño del formulario Arbol.
o
ii. Escriba las siguientes líneas de código para presentarlo cuando se haga doble clic
sobre la opción Clientes del arbol
*
Objeto : TreeView1 *

Evento : Doble Clic H


a
Código :
r
Private Sub TreeView1_DblClick() l
' es una Letra O con un 11 e
If TreeView1.SelectedItem.Key = RTrim("O11") Then y
If clientes.Visible Then
clientes.Hide S
Else o
clientes.Show l
End If a
End If n
End Sub o

*
*
iii. Escriba las siguientes líneas de código para presentarlo cuando se arrastre la
opción Clientes del arbol H
a
Objeto : TreeView1 r
l
Evento : OLE Complete Drag
e
Código : y

Private Sub TreeView1_OLECompleteDrag(Effect As Long) S


TreeView1_DblClick o
End Sub l
a
n
o

harley.solano@gmail.com hasx1@hotmail.com
Curso de Visual Basic Aplicado Harley Solano Sánchez 36
H
a
b. Programar la barra de herramientas. r
l
i. Active el diseño del formulario Menu e
ii. Haga doble clic sobre la barra de herramientas y escriba las siguientes líneas de y
códigos para programar que se abra el formulario correcto cuando se haga clic
sobre cualquier botón. S
Objeto : ToolBar1 o
l
Evento : Clic a
n
Código : o
Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)
If Button.Key = "bCliente" Then *
If clientes.Visible Then *
clientes.Hide
Else H
clientes.Show a
End If r
End If l
End Sub e
y

c. Para obtener mejor coordinación, el formulario se abrirá cuando se carga el S


programa, pero no se mostrará. o
l
i. Active el diseño del formulario Fondo a
ii. Modifique el código del evento Load de la siguiente manera (las líneas nuevas las n
escribiré en negrilla para diferenciarla de las líneas ya programadas) o
Objeto : Formulario Fondo *
Evento : Load *

Código : H
a
Private Sub Form_Load() r
Top = 30 l
Left = 2820 e
Height = 7460 y
Width = 9030
Image2.Left = -7320 S
Clientes.Hide o
Menu.WindowState = 2 l
End Sub a
n
o

harley.solano@gmail.com hasx1@hotmail.com
Curso de Visual Basic Aplicado Harley Solano Sánchez 37
H
a
Configurando el DataGrid r
l
Active el diseño del formulario Clientes y siga las siguientes instrucciones e
y
13. Insertar un objeto Frame con las siguientes propiedades
S
Nombre = FrameBusca o
Caption = Búsqueda de Clientes l
Font = MS Sans Serif (Negrilla, Cursiva de 12 Pts) a
Visible = False n
o
14. Insertar dentro del FrameBusca un objeto DataGrid con las siguientes propiedades
*
Nombre = DataGrid1
*

H
a
r
l
e
y
15. Con el objeto FrameBusca seleccionado haga clic con el botón derecho del ratón y seleccione la
opción Propiedades.
S
Aparece una ventana con un conjunto de fichas o pestañas que deberá configurar así : o
l
a. La ficha General no cambie nada a
b. La ficha Teclado configúrela de la siguiente manera n
o

*
*

H
c. La ficha Divisiones configúrela de la siguiente manera a
r
l
e
y

S
o
l
a
n
o

harley.solano@gmail.com hasx1@hotmail.com
Curso de Visual Basic Aplicado Harley Solano Sánchez 38
H
a
d. La ficha Columnas configúrela de la siguiente manera r
l
e
y

S
o
l
Columna 0 Columna 1 a
16. Para ver la funcionalidad de todo lo que hemos preparado escriba el siguiente código al objeto n
cmdBuscar para buscar a un cliente en particular. o
Objeto : cmdBuscar *
Evento : Click *
Código :
Private Sub cmdBuscar_Click() H
If framebusca.Visible Then a
framebusca.Visible = False r
Else l
With framebusca e
.Visible = True y
.Height = 3255
.Left = 3360 S
.Top = 1560 o
.Width = 5055 l
End With a
DataGrid1.SetFocus n
AdoBusca.Recordset.Update o
AdoBusca.Refresh
End If *
End Sub *
17. Ahora programar la respuesta del DataGrid1 cuando el usuario seleccione un cliente de la lista
que presenta. H
Objeto : DataGrid1 a
Evento : Doble Click r
Código : l
Private Sub DataGrid1_DblClick() e
Adocliente.Recordset.MoveFirst y
framebusca.Visible = False
For i% = 0 To Adocliente.Recordset.RecordCount - 1 S
If Adocliente.Recordset.Fields(0) = DataGrid1.Columns(0) Then o
cmdPrimer.SetFocus l
Exit Sub a
End If n
Adocliente.Recordset.MoveNext o
Next
End Sub

harley.solano@gmail.com hasx1@hotmail.com
Curso de Visual Basic Aplicado Harley Solano Sánchez 39
H
a
18. Si se presiona la tecla ENTER sobre el DataGrid1 entonces r
l
Objeto : DataGrid1 e
y
Evento : KeyPress
Código : S
Private Sub DataGrid1_KeyPress(KeyAscii As Integer) o
If KeyAscii = 13 Then l
DataGrid1_DblClick a
End If n
End Sub o

*
Vinculando ADO’s en una relación 1 a muchos ( 1 a ∝ ) *

H
19. Inserte un Objeto Adodc con las siguientes propiedades
a
Nombre = AdoSaldos r
Caption = AdoSaldos l
Visible = False e
ConnectionString = configurar igual que los anteriores y
RecordSource = SELECT * FROM Saldos
S
Vea el punto número 11 en la página número 34, para recordar los procedimientos. o
l
20. Proceda a configurar el DataGrid2.
a
n
o

*
*

21. Haga clic con el botón derecho sobre el DataGrid2 y clic en la opción Recuperar Campos y H
contestando Sí a la pregunta que se realiza para confirmar el proceso a
r
l
e
Lo anterior permite que todas las
y
columnas del ADO se incorporen al
DataGrid.
S
o
Si lo desea personalice el Caption y el
l
DataField para cada una de las
a
columnas
n
o

harley.solano@gmail.com hasx1@hotmail.com
Curso de Visual Basic Aplicado Harley Solano Sánchez 40
H
a
22. Termine de Personalizar las propiedades del DataGrid2 de la siguiente manera r
l
e
y

S
o
l
a
n
o

*
*
23. El objetivo que se persigue es hacer que cada vez que se cambie los datos de un Cliente H
automáticamente se muestren los Saldos relacionados (1 cliente tiene Muchos Saldos, ver el a
modelo relacional) r
Objeto : AdoCliente l
Evento : MoveComplete e
Código : y

‘ Comienza línea sola S


Private Sub AdoCliente_MoveComplete(ByVal adReason As ADODB.EventReasonEnum, ByVal o
pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As l
ADODB.Recordset) a
‘ Termina línea sola n
o
‘ Comienza otra línea sola
If adReason = adRsnMoveLast Or adReason = adRsnMoveFirst Or adReason = *
adRsnMoveNext Or adReason = adRsnMovePrevious Or adReason = adRsnUpdate Or adReason *
= adRsnDelete Or adReason = adRsnMove Then
‘ Termina línea sola H
If Adocliente.Recordset.BOF Then a
Adocliente.Recordset.MoveFirst r
ElseIf Adocliente.Recordset.EOF Then l
Adocliente.Recordset.MoveLast e
End If y

‘ Comienza otra línea sola S


AdoSaldos.RecordSource = "Select * from [saldos] where [idcliente]='" & o
Adocliente.Recordset.Fields(0) & "'" l
‘ Termina otra línea sola a
n
AdoSaldos.Refresh o
End If
End Sub

harley.solano@gmail.com hasx1@hotmail.com
Curso de Visual Basic Aplicado Harley Solano Sánchez 41
H
a
24. Para darle un poco más de estética programar el objeto xName cuando cambie para que nos r
informe de que cliente estamos viendo los saldos. l
e
Objeto : xName y
Evento : Change
Código : S
o
Private Sub xName_Change() l
FrameSaldos.Caption = "Saldo de " + xName.Text a
End Sub n
o
Programando los botones de Gestión y de Navegación
*
25. Programando el botón cmdNuevo *
Objeto : cmdNuevo
H
Evento : Click
a
Código :
r
Private Sub cmdnuevo_Click()
l
Adocliente.Recordset.AddNew
e
clientes.xid.Enabled = True
y
clientes.xName.Enabled = True
clientes.xDir.Enabled = True
S
clientes.cmdnuevo.Enabled = False
o
clientes.cmdsave.Enabled = True
l
clientes.cmdcancel.Enabled = True
a
clientes.cmdante.Enabled = False
n
clientes.cmdSigue.Enabled = False
o
clientes.cmdPrimer.Enabled = False
clientes.cmdultimo.Enabled = False
*
clientes.cmdBuscar.Enabled = False
*
FrameSaldos.Visible = False
Modifica.Enabled = False
H
End Sub
a
26. Programando el botón cmdSave r
l
Objeto : cmdSave e
Evento : Click y
Código :
Private Sub cmdSave_Click() S
If xid = "" Then o
MsgBox ("No se Puede Grabar debido a que no ha " + Chr(13) _ l
+ " introducido un Código de Cliente") a
xid.SetFocus n
Exit Sub o
End If

…. Continua en página siguiente….

harley.solano@gmail.com hasx1@hotmail.com
Curso de Visual Basic Aplicado Harley Solano Sánchez 42
H
a
r
If xName = "" Then l
MsgBox ("No se Puede Grabar debido a que no ha " + Chr(13) _ e
+ " introducido un Nombre de Cliente") y
xName.SetFocus
Exit Sub S
End If o
Adocliente.Recordset.Update l
clientes.cmdante.Enabled = True a
clientes.cmdSigue.Enabled = True n
clientes.cmdPrimer.Enabled = True o
clientes.cmdultimo.Enabled = True
clientes.cmdsave.Enabled = False *
clientes.cmdnuevo.Enabled = True *
clientes.cmdcancel.Enabled = False
clientes.cmdBuscar.Enabled = True H
FrameSaldos.Visible = True a
Modifica.Enabled = True r
clientes.xid.Enabled = False l
clientes.xName.Enabled = False e
clientes.xDir.Enabled = False y
End Sub
S
27. Programando el botón cmdCancel o
l
Objeto : cmdCancel a
Evento : Click n
Código : o
Private Sub cmdcancel_Click()
Adocliente.Recordset.CancelUpdate *
clientes.xid.Enabled = False *
clientes.xName.Enabled = False
clientes.xDir.Enabled = False H
clientes.cmdnuevo.Enabled = True a
clientes.cmdsave.Enabled = False r
clientes.cmdcancel.Enabled = False l
clientes.cmdante.Enabled = True e
clientes.cmdSigue.Enabled = True y
clientes.cmdPrimer.Enabled = True
clientes.cmdultimo.Enabled = True S
clientes.cmdBuscar.Enabled = True o
FrameSaldos.Visible = True l
Modifica.Enabled = True a
End Sub n
o

harley.solano@gmail.com hasx1@hotmail.com
Curso de Visual Basic Aplicado Harley Solano Sánchez 43
H
a
28. Programando el botón Modifica r
l
Objeto : Modifica e
Evento :Click y
Código :
Private Sub Modifica_Click() S
If xid.Text = "X" Then o
MsgBox "Este Registro No Puede ser Alterado " & _ l
Chr(13) + "Este registro es utilizado por el Sistema para reconocer a un Cliente " & _ a
Chr(13) + "Transitorio" n
Exit Sub o
End If
If xid.Text = "EL CHELE" Then *
MsgBox "Este Registro No Puede ser Alterado " & _ *
Chr(13) + "Este registro es utilizado por el Sistema para reconocer una" & _
Chr(13) + "Factura de Compra" H
Exit Sub a
End If r
xid.Enabled = True l
xName.Enabled = True e
xDir.Enabled = True y
cmdultimo.Enabled = False
cmdPrimer.Enabled = False S
cmdante.Enabled = False o
cmdSigue.Enabled = False l
cmdnuevo.Enabled = False a
cmdsave.Enabled = True n
cmdcancel.Enabled = False o
Modifica.Enabled = False
cmdBuscar.Enabled = False *
End Sub *

29. Programando el botón cmdPrimer H


a
Objeto : cmdPrimer r
Evento :Click l
Código : e
y
Private Sub cmdPrimer_Click()
Adocliente.Recordset.MoveFirst S
cmdSigue.Enabled = True o
cmdPrimer.Enabled = False l
cmdante.Enabled = False a
cmdultimo.Enabled = True n
End Sub o

harley.solano@gmail.com hasx1@hotmail.com
Curso de Visual Basic Aplicado Harley Solano Sánchez 44
H
a
30. Programando el botón cmdSigue r
l
Objeto : cmdSigue e
Evento :Clic y
Código : S
Private Sub cmdSigue_Click() o
Adocliente.Recordset.MoveNext l
If Adocliente.Recordset.Bookmark = Adocliente.Recordset.RecordCount Then a
Adocliente.Recordset.MoveLast n
cmdSigue.Enabled = False o
cmdultimo.Enabled = False
cmdPrimer.Enabled = True *
cmdante.Enabled = True *
Exit Sub
Else H
cmdSigue.Enabled = True a
cmdPrimer.Enabled = True r
cmdante.Enabled = True l
End If e
End Sub y

S
o
31. Programando el botón cmdAnte l
a
Objeto : cmdAnte n
Evento : Click o
Código :
Private Sub cmdante_Click() *
Adocliente.Recordset.MovePrevious *
If Adocliente.Recordset.Bookmark = 1 Then
Adocliente.Recordset.MoveFirst H
cmdSigue.Enabled = True a
cmdante.Enabled = False r
cmdPrimer.Enabled = False l
cmdultimo.Enabled = True e
Exit Sub y
Else
cmdSigue.Enabled = True S
cmdultimo.Enabled = True o
End If l
End Sub a
n
o

harley.solano@gmail.com hasx1@hotmail.com
Curso de Visual Basic Aplicado Harley Solano Sánchez 45
H
a
32. Programando el botón cmdUltimo r
l
Objeto : cmdUltimo e
Evento : Click y
Código :
Private Sub cmdultimo_Click() S
Adocliente.Recordset.MoveLast o
cmdultimo.Enabled = False l
cmdPrimer.Enabled = True a
cmdante.Enabled = True n
cmdSigue.Enabled = False o
End Sub
*
33. Programando la imagen Sale *

Objeto : Sale H
Evento : Click a
Código : r
Private Sub sale_Click() l
Me.Hide e
End Sub y

34. Diseñe y programa el Formulario Productos similar al siguiente S


o
l
a
n
o

*
*

H
a
r
l
e
y

S
o
l
a
n
o

harley.solano@gmail.com hasx1@hotmail.com

Anda mungkin juga menyukai