elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Conexión con Visual Basic 6.0 y MySql
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Conexión con Visual Basic 6.0 y MySql  (Leído 2,294 veces)
ReViJa

Desconectado Desconectado

Mensajes: 149


Ver Perfil WWW
Conexión con Visual Basic 6.0 y MySql
« en: 4 Junio 2008, 21:15 pm »

[size=18]COMO CONECTAR VISUAL BASIC CON MySQL[/size]

Hola, quería compartir con vosotros esta pequeña introducción de como conectar vb 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
    [/list]

    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[/list]

    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
    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
    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:

    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

    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


    Espero que sirva de ayuda.
    Fuente original: http://www.foro.lospillaos.es/viewtopic.php?t=2660

    Saludos.


    En línea

    Páginas: [1] Ir Arriba Respuesta Imprimir 

    Ir a:  

    Mensajes similares
    Asunto Iniciado por Respuestas Vistas Último mensaje
    Espacios en blanco en sentencia de mysql consola y visual basic
    .NET (C#, VB.NET, ASP)
    ¡Micronet! 1 2,088 Último mensaje 27 Abril 2012, 09:08 am
    por HdM
    Como enlazar Visual Basic 6 con Mysql, codigo y video
    Programación Visual Basic
    BARMANMMA 5 4,609 Último mensaje 22 Junio 2012, 15:06 pm
    por HdM
    Conexión Entre Fiddler Y Visual Basic
    .NET (C#, VB.NET, ASP)
    Cripting 2 1,038 Último mensaje 14 Diciembre 2016, 02:19 am
    por Cripting
    WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines