como conectar visual basic con mysql
TRANSCRIPT
![Page 1: Como Conectar Visual Basic Con Mysql](https://reader035.vdocumento.com/reader035/viewer/2022081807/54f9cabc4a795956048b45bf/html5/thumbnails/1.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022081807/54f9cabc4a795956048b45bf/html5/thumbnails/2.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022081807/54f9cabc4a795956048b45bf/html5/thumbnails/3.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022081807/54f9cabc4a795956048b45bf/html5/thumbnails/4.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022081807/54f9cabc4a795956048b45bf/html5/thumbnails/5.jpg)
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