Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Practicas
Escuela de Ingeniería de Antioquia – EIA
Primer semestre 2009
Christian Lochmueller
• Visual Basic (VB) y Visual Basic for Applications (VBA) ambos tienen el
mismo predecesor – Basic – y ambos son productos de la empresa
Microsoft
• VB es un lenguaje de programación usado por desarrolladores de software
y en este sentido mas “amplio” que VBA. VBA es un lenguaje de scripting
para crear aplicaciones y es integrado en MS-Excel, -Access, etc. Es decir
VBA es incluido en otro producto
• VB y VBA amplían la funcionalidad de Macros
– Un macro se usa para automatizar una serie / una secuencias de acciones o
comandos
• VB / VBA permite desarrollar interacciones orientadas hacia el usuario
• Permite ejecutar operaciones complejas con registros (=> SQL)
• Permite un control completo sobre el modelo objeto de Access (Access
Object Model) y sus métodos y propiedades
• VB / VBA ofrece mejor manejo de errores
• VB6, lo cual usamos en clase, fue introducido al mercado en el año 1998
Pagina 3 Practicas – Base de Datos y Sistemas de Información © 2009 by C. Lochmueller
ADO (Active X Data Object)
• 1) MS-Access tiene incorporado un motor de base de datos (database enginge)
que se llama “Jet” – y lo cual usted podria usar
– Pero también se puede usar en el lugar de Jet un servidor de datos aparte
• Como MS-SQLServer, Oracle or MySQL
• Cada uno de ellos funciona un poco diferente
• 2) Los datos (y servidor) de pronto corren en el un solo computador – juntos con
Access
– Pero es posible también que ellos corren en diferentes maquinas
• 3) Los datos (y servidor) de pronto no son en una base de datos relacional
– Pueden ser en una pagina web o en una hoja de calculo
• ADO = Active Data Objects es un solo modelo para capturar todos estos casos
• ADO es uno de los mecanismos que usan los programas de computadoras para
comunicarse con las bases de datos, darles órdenes y obtener resultados de ellas
Advertencia:
Si el control ADO no aparece
automáticamente, seleccione lo
primero:
Proyecto – Componentes –
Controles - “Microsoft ADO Data
Control 6.0 (OLEDB)”
Seleccionar “Aceptar”
entra la Source (fuente)
como propiedad
Pagina 20 Practicas – Base de Datos y Sistemas de Información © 2009 by C. Lochmueller
6. Para las 5 cajas de texto asigna en la propiedad “DataSource”
el valor “Adodc1” (el valor del control ADO) y para la propiedad
“DataField” el valor adecuado para cada campo (usando la
flecha / triangula al lado derecho de la propiedad). Es decir para
vendedor => vendedores.nombre etc.
• Si uno guarda el proyecto (como ventas) y lo ejecuta
se presentará así,
los valores para
los campos vienen
de la base de datos
(ventas.accdb):
Adodc1.Recordset.MoveNext
If Not Adodc1.Recordset.EOF Then
Adodc1.Recordset.Find Criterio
End If
If Adodc1.Recordset.EOF Then
Adodc1.Recordset.MoveFirst
Adodc1.Recordset.Find Criterio
If Adodc1.Recordset.EOF Then
Adodc1.Recordset.MoveLast
MsgBox ("No encuentro ese nombre")
End If
End If
End Sub
Private Sub Form_Load() <- ‘Función para cargar el formulario con los datos
Grabar.Enabled = False
InhabilitarCajas
End Sub
' Indicar el DataSource de los cajas de texto (las cuales en este ejemplo son
una matriz)
' ya que con ADO se puede asignar en tiempo de ejecución
Dim i As Long
For i = 0 To 4
Set Text1(i).DataSource = Adodc1
Next
' Asignar los campos (el indice (0) a (4) hace referencia a la matriz)
Text1(0).DataField = "vendedores.nombre"
Text1(1).DataField = "productos.nombre"
Text1(2).DataField = "municipios.nombre"
Text1(3).DataField = "fecha"
Text1(4).DataField = "UnidadesVendidas"
' Mostrar en las etiquetas el campo a usar
Label1(0).Caption = "Vendedor:"
Label1(1).Caption = "Producto:"
Label1(2).Caption = "Municipio:"
Label1(3).Caption = "Fecha:"
Label1(4).Caption = "Unidades vendidas:"
End Sub
Pagina 38 Practicas – Base de Datos y Sistemas de Información © 2009 by C. Lochmueller
Opción 2:
… y el resultado es el mismo
Command1.Caption = "Inicio“
Command2.Caption = "Anterior“
Command3.Caption = "Siguiente“ Private Sub Command2_Click()
Command4.Caption = "Final" Adodc1.Recordset.MovePrevious
If Adodc1.Recordset.BOF Then
Private Sub Command1_Click() Adodc1.Recordset.MoveFirst
Adodc1.Recordset.MoveFirst End If
End Sub End Sub
End Sub