1. República Bolivariana de Venezuela.
Ministerio del Poder Popular para la Educación.
Instituto Universitario Politécnico Santiago Mariño.
Materia: Programación.
Unidad IV: Aplicaciones, creaciones y manipulaciones
de base de datos en visual basic.
Realizado por:
Lisbay Urdaneta.
C.I.: V-23.875.371
2. DESARROLLO
1) Conectar Visual Basic a las siguientes bases de datos:
a) Microsoft Access 2003 o una versión posterior:
i) Abrimos un proyecto en visual basic 6.0 ya dentro del proyecto en la parte superior izquierda
seleccionamos Proyecto y después Referencias
ii) Buscamos la opción Microsoft Office 12.0 Acces DataBase Engine. La seleccionamos para que
aparezca la palomita
iii) La subimos con las flechas de prioridad y la ponemos debajo de OLE Automation como se muestra en
la figura siguiente
3. iv) Le damos aceptar. Ahora vamos a conectar la base de datos con visual basic 6.0. Tenemos que tener
lista nuestra interfaz con la que se va a conectar la base de datos y sobre todo nuestra base de datos
lista para ser conectada así como crear una carpeta en donde ustedes quieran y con el nombre que
quieran para que hay pongan toda la información por ejemplo fotos, proyectos, base de datos, videos
etc.
4. v) Cuando tengamos nuestra base de datos es muy importante que este guardada como acces 2007
vi) vamos a agregar el objeto de conexión, en la barra de objetos de lado izquierdo le damos clic derecho
y seleccionamos componentes.
5. vii) dentro del cuadro de componentes vamos a buscar la opción microsoft ado data control 6.0 (oledb)
viii) una vez localizado lo seleccionamos y vamos a dar clic en aplicar y luego aceptar, ahora vamos a
dibujar en el formulario el objeto de conexión. lo seleccionamos, esta de lado izquierdo y lo dibujamos
en nuestra interfaz
6. ix) una vez que tenemos en objeto de conexión vamos a establecer todas sus propiedades, empezaremos
por cambiarle el nombre y se llamara como se llama tu base de datos ejemplo adodcservicios.
7. x) ahora vamos a direccionar el objeto hacia la base de datos que vamos a conectar a la aplicación para
esto vamos a buscar la propiedad connectionstring en la ventana de propiedades y damos clic en el
icono
xi) dentro de la página de propiedades vamos a seleccionar la opción user connection string
8. xii) y damos clic en generar y seleccionamos el motor de búsqueda
xiii) y vamos a seleccionar la opción Microsoft office 12.0 access database engineole db provider y damos
clic en siguiente
9. xiv)y pegamos la dirección de la base de datos y esa se encuentra dentro de la carpeta que creamos
xv) es muy importante que peguen la ruta correcta porque si no les causara error. Antes de aceptar la
conexión vamos a probar a conexión para evitar errores posteriores.
10. xvi)Ahora vamos a indicarle al objeto la tabla con la que nos vamos a conectar para esto vamos a utilizar
la propiedad recordsource lo seleccionamos
xvii) en la parte de tipo de comando vamos a seleccionar la opción de tabla
11. xviii) en tabla o nombre de procedimiento almacenado seleccionamos la base de datos que
ocuparemos.
xix)ahora lo que sigue es seleccionar los campos que vamos a conectar a la aplicación y enlazar las cajas
de texto con los campos de la base de datos
12. xx) para ello seleccionamos la caja de texto id
xxi)nos vamos a ir a la propiedad datasource y vamos a seleccionar el objeto de conexión adodcservicios
13. xxii) ahora seleccionamos la opción datafield que nos va a permitir enlazar la caja de texto al campo de
la base de datos
xxiii) y vamos a hacer los mismos con las demas cajas de texto hasta que se complete el enlazamiento
14. xxiv) con esto ya tenemos conectados nuestros objetos de nuestro formulario de tal forma que podremos
visualizar los datos que tenemos en nuestra base de datos. Ahora lo que falta es probar el proyectos
presionando la tecla f5 o darle clic en iniciar
xxv) Y ahora está funcionando sin código. Como podemos ver la caja de texto muestran la información
que tenemos en nuestra base de datos, podemos movernos dentro de ella dando le clic en el objeto de
conexión ado.
15. b) Microsoft SQL Server 2008 o una versión posterior: Cuando instalas SQL Server 2005 se añade un
nuevo proveedor de bases de datos OLEDB: SQLNCLI. Ese proveedor usará las cadenas de conexión en
lugar de SQLOLEDB que es el que se usará para acceder a una base de datos de SQL Server 2000 con
Visual Basic 6.0.
Al usar un control FlexGrid para asignar un Recordset y mostrar los datos directamente.
Tendremos que crear un nuevo proyecto de Visual Basic 6.0 y agregar ese componente, el cual se
muestra como: Microsoft Hierarchical FlexGrid Control 6.0 (SP4) (OLEDB) y en realidad es el
control MSHFLXGD.OCX. También se añadirá una referencia a la librería de OLEDB, en este caso he
usado Microsoft ActiveX Data Objects 2.8 Library. Si lo que pretendemos es acceder a un fichero con la
extensión .mdf, pues tendrás que tener el fichero al que quieres acceder. Es decir una base de datos de
SQL Server 2005 en un fichero físico, el cual puedes guardar en el mismo directorio del ejecutable o
donde más te plazca, que esa es una de las ventajas de SQL Server 2005: el poder usar un fichero de
base de datos directamente, con lo que no necesitas distribuir una base de tipo Access.
i) Acceder a una base de una instancia: En el caso de la base de datos "pubs", la cadena de conexión
será la siguiente:
Provider=SQLNCLI;
Initial Catalog=pubs;
Data Source=(local)SQLEXPRESS;
integrated security=SSPI; persist security info=True;
En este caso, la base de datos se supone que está en la instancia SQLEXPRESS del servidor del equipo
actual, si no es así, tendrás que cambiar el valor de Data Source.
La base de datos es pubs, si no fuera esa, cambia el nombre asignado a Initial Catalog.
La autenticación usada es la de Windows, si no fuera esa, tendrás que indicar el usuario y el password y
cambiar adecuadamente el valor de Integrated Security, aquí tienes un ejemplo de cómo "formar" una
cadena de conexión a una base de datos de SQL Server.
Suponiendo que la conexión a la base de datos la hacemos desde el evento Click de un botón y que la
cadena de selección es SELECT * FROM authors, para mostrar los datos en el
control FlexGrid (llamado MSHFlexGrid1), el código sería el siguiente:
Private Sub btnConectar_Click()
' La conexión a la base de datos
Dim cn As ADODB.Connection
Set cn = New ADODB.Connection
' Para la cadena de selección
Dim sSelect As String
' Para una base de datos normal:
sSelect = "SELECT * FROM authors"
cn.Open "Provider=SQLNCLI; " & _
"Initial Catalog=pubs; " & _
"Data Source=(local)SQLEXPRESS; " & _
"integrated security=SSPI; persist security info=True;"
' El recordset para acceder a los datos
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
16. ' Abrir el recordset de forma estática, no vamos a cambiar datos
rs.Open sSelect, cn, adOpenStatic
' Permitir redimensionar las columnas
MSHFlexGrid1.AllowUserResizing = flexResizeColumns
' Asignar el recordset al FlexGrid
Set MSHFlexGrid1.DataSource = rs
rs.Close
cn.Close
End Sub
ii) Acceder a una base de un fichero: Para acceder a una base de datos que está en un fichero,
necesitarás indicar la ruta (path) en la que está ese fichero con la extensión .mdf. En este ejemplo, esa
ruta está en la variable sBase. La cadena de conexión sería la siguiente:
Provider=SQLNCLI;
AttachDBFileName= ruta completa del fichero de la base de datos;
Data Source=(local)SQLEXPRESS;
integrated security=SSPI; persist security info=True;
Como es de suponer, el nombre (y el directorio completo) de la base de datos es lo que tienes que
asignar a AttachDBFileName. Además debes indicar en Data Source el nombre de la instancia de
SQLEXPRESS que se usará para acceder a esa base de datos, al menos debes indicar una instancia
válida.
En el siguiente código se ve cómo usar una base de datos llamada PruebaPrecios.mdf que está en un
directorio llamado bases del disco E. Esa base de datos debe tener una tabla llamada Clientes que es
la que se usa en el siguiente ejemplo, que como en el código del ejemplo anterior, se ejecuta desde el
evento Click de un botón y asigna los datos al FlexGrid que tenemos en el formulario.
Private Sub btnConectar_Click()
' La conexión a la base de datos
Dim cn As ADODB.Connection
Set cn = New ADODB.Connection
' Para la cadena de selección
Dim sSelect As String
' Para usar un fichero directamente:
Dim sBase As String
' Poner aquí el path y el nombre de la base
sBase = "E:basesPruebaPrecios.mdf"
17. ' Y la cadena de selección adecuada
sSelect = "SELECT * FROM Clientes"
'
cn.Open "Provider=SQLNCLI; " & _
"AttachDBFileName=" & sBase & "; " & _
"Data Source=(local)SQLEXPRESS; " & _
"integrated security=SSPI; persist security info=True;"
' El recordset para acceder a los datos
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
' Abrir el recordset de forma estática, no vamos a cambiar datos
rs.Open sSelect, cn, adOpenStatic
' Permitir redimensionar las columnas
Me.MSHFlexGrid1.AllowUserResizing = flexResizeColumns
' Asignar el recordset al FlexGrid
Set Me.MSHFlexGrid1.DataSource = rs
rs.Close
cn.Close
End Sub
c) MySQL (Cualquier versión): Para empezar debemos bajar la librería necesaria para establecer la
conexión y trabajar con las funciones que nos brinda MySQL (MySQL Connector.NET). Después abrimos
nuestra versión de Visual y en el proyecto le damos clic derecho y agregamos una referencia, allí saldrá
una ventana para buscar y seleccionar el archivo a agregar, en este caso será la librería MySql.Data.dll,
que se encuentra en la carpeta de instalación.
18. i) Importar las librerías para trabajar con MySQL:
ii) Declarar una variable global para la conexión:
iii) Luego en el evento Clic del botón que agregamos, declaramos tres variables que harán referencia a
los datos de conexión.
iv) Luego creamos un objeto de la variable conexión para trabajar con él. Por medio de un String
agregamos todos los datos de conexión proporcionados por las variables:
v) Terminamos la gestión de errores, por si la conexión no se realiza sale un mensaje de error. Asi
evitamos comportamientos inesperados.
vi) El código completo del evento será asi:
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
Button2.Click
Try
conexion = New MySqlConnection()
conexion.ConnectionString = "server=" & ServerTxt.Text & ";" & "user id=" &
UsuarioTxt.Text & ";" & "password=" & pswdTxt.Text & ";"
conexion.Open()
MessageBox.Show("Conectado al servidor")
Catch ex As MySqlException
MessageBox.Show("No se ha podido conectar al servidor")
End Try
End Sub