como conectar visual basic con mysql

6
COMO CONECTAR VISUAL BASIC CON MySQL Empezamos!!! Lo primero que necesitamos es el driver para la conexión (MySQL Connector/ODBC 3.51) que lo descargaremos de AQUI Lo siguiente es agregar las referencias necesarias para nuestro proyecto. Abrimos Visual Basic > Nuevo proyecto > EXE estándar > picamos en proyecto > referencias. Se abrirá una ventana y seleccionaremos estas dos referencias: 1. Microsoft DAO 3.51 Object Library 2. Microsoft ActiveX Data Objects 2.0 Library Una vez agregadas las referencias pulsamos aceptar. En el formulario añadimos 5 TextBox y 2 commandButton Esta va ha ser una versión simple para ver como conecta con MySQL y trata los datos, después de vuestra parte esta hacerlo mas complejo. (los nombres de los textbox y de los commandbutton son los da el programa por defecto) Usaremos los campos de texto en este orden: Text1 > puerto (3306) Text2 > nombre (nombre de usuario)* Text3 > contraseña (contraseña del usuario) Text4 > nombre de la base de datos (nombre de la base de datos) Text5 > servidor (DNS del servidor) Command1 > conectar Command2 > visualizar

Upload: caryaxo-rama

Post on 06-Mar-2015

32 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Como Conectar Visual Basic Con Mysql

COMO CONECTAR VISUAL BASIC CON MySQL

Empezamos!!!

Lo primero que necesitamos es el driver para la conexión (MySQL Connector/ODBC 3.51) que lo descargaremos de AQUI

Lo siguiente es agregar las referencias necesarias para nuestro proyecto.

Abrimos Visual Basic > Nuevo proyecto > EXE estándar > picamos en proyecto > referencias.

Se abrirá una ventana y seleccionaremos estas dos referencias:

1. Microsoft DAO 3.51 Object Library 2. Microsoft ActiveX Data Objects 2.0 Library

Una vez agregadas las referencias pulsamos aceptar.

En el formulario añadimos 5 TextBox y 2 commandButton Esta va ha ser una versión simple para ver como conecta con MySQL y trata los datos, después de vuestra parte esta hacerlo mas complejo. (los nombres de los textbox y de los commandbutton son los da el programa por defecto)

Usaremos los campos de texto en este orden:

Text1 > puerto (3306) Text2 > nombre (nombre de usuario)* Text3 > contraseña (contraseña del usuario) Text4 > nombre de la base de datos (nombre de la base de datos) Text5 > servidor (DNS del servidor) Command1 > conectar Command2 > visualizar

NOTA: El usuario tiene que estar creado en tu servidor, así que créalo y asígnale los permisos pertinentes (por lo menos lectura) También tienes que tener en cuenta el Administrador de acceso MySQL remoto (si tienes dudas agrega un % ), no es seguro pero para hacer alguna prueba no creo que tengas que preocuparte en exceso.

Declaramos las variables:

Código:

Public BD As ADODB.Connection

Page 2: Como Conectar Visual Basic Con Mysql

Public RecSQL As ADODB.Recordset

Contenido del command1 (conectar con la base de datos)

Código:

Private Sub Command1_Click() On Error GoTo Ver

Set BD = New ADODB.Connection BD.ConnectionString = "driver={MySQL ODBC 3.51 Driver};" & _ "Server=" & Text1 & ";" & _ "Port=" & Text2 & ";" & _ "Database=" & Text3 & ";" & _ "User=" & Text4 & ";" & _ "Password=" & Text5 & ";" & _ "Option=3;"

BD.Open

MsgBox "Conexión establecida!!!", vbExclamation, "Conexión"

Exit Sub Ver:  MsgBox "Nº de error: " & Err.Number & " | " & Err.Description, vbCritical, "Control de errores"  Err.Clear End Sub

Una vez la conexión se ha establecido nos queda ver los datos, así que vamos a ello.

Contenido del command2 (recorrer la base de datos)

Código:

Private Sub Command1_Click () On Error GoTo Ver

Set RecBD = New ADODB.Recordset RecBD.Open "select * from datos", BD, adOpenStatic, adLockOptimistic

While Not RecBD.EOF   MsgBox "Su ID: " & RecBD.Fields(0) & " | " & " y su nombre " & RecBD.Fields(1), , "Información..."   RecBD.MoveNext

Page 3: Como Conectar Visual Basic Con Mysql

Wend

Exit Sub Ver:  MsgBox "Nº de error: " & Err.Number & " | " & Err.Description, vbCritical, "Control de errores"  Err.Clear End Sub

El sistema es muy similar a Access y la verdad es que es muy intuitivo.

Añadiendo registros: Hay dos formas para añadir registros (una más correcta y rápida que la otra)

Esta es la menos correcta:

Código:

Set RecSQL = New ADODB.Recordset RecSQL.Open "select * from datos", BD, adOpenStatic, adLockOptimistic

RecSQL.AddNew RecSQL.Fields(1).Value = Text1 RecSQL.Fields(2).Value = Text2 RecSQL.Update

RecSQL.Close Set RecSQL = Nothing

Esta es la más correcta:

Código:

Set RecSQL = New ADODB.Recordset

RecSQL.Open "INSERT INTO datos (id,nombre) VALUES (" & val(Text1) & ",'" & Text2 & "')", BD, adOpenStatic, adLockOptimistic

Set RecSQL = Nothing

Como modificar registros:

Page 4: Como Conectar Visual Basic Con Mysql

Código:

Set RecSQL = New ADODB.Recordset

RecSQL.Open "UPDATE datos SET id=" & val(Text1) & " , nombre='" & Text2 & "' WHERE id =" & 1 , BD, adOpenStatic, adLockOptimistic

Set RecSQL = Nothing

Eliminando registros: Hay dos maneras de hacer esta operación (una mas correcta que otra, pero la tenéis que descubrir jejejejeje)

Esta es la primera:

Código:

Set RecSQL = New ADODB.Recordset

RecSQL.Open "SELECT * FROM datos WHERE id =" & Val(Text1), BD, adOpenStatic, adLockOptimistic

RecSQL.Delete Set RecSQL = Nothing

O se puede hacer la búsqueda con LIKE:

Código:

Set RecSQL = New ADODB.Recordset       RecSQL.Open "SELECT * FROM datos WHERE nombre LIKE ‘" & Text2 & “’”, BD, adOpenStatic, adLockOptimistic       RecSQL.Delete Set RecSQL = Nothing

Esta es la otra:

Código:

Set RecSQL = New ADODB.Recordset

RecSQL.Open "DELETE FROM contactos WHERE id=" & Val(Text1), BD, adOpenStatic, adLockOptimistic

Page 5: Como Conectar Visual Basic Con Mysql

Set RecSQL = Nothing

Como trata las fechas MySQL? El formato predefinido es AAAA-MM-DD ¿y como lo tratamos desde Visual Basic?,es bastante sencillo, lo vemos…

Esta es una consulta de un campo fecha:

Código:

Set RecSQL = New ADODB.Recordset

RecSQL.Open "SELECT * FROM tabla WHERE Campo_fecha=’” & Format(Text2, "yyyy-mm-dd") & "'”, BD, adOpenStatic, adLockOptimistic

Esta es una consulta de un rango de fechas:

Código:

Set RecSQL = New ADODB.Recordset

RecSQL.Open "SELECT * FROM tabla WHERE Campo_fecha BETWEEN '" & Format(Text1, "yyyy-mm-dd") & "' AND '" & Format(Text2, "yyyy-mm-dd") & "'”, BD, adOpenStatic, adLockOptimistic