Conexión VB6.0 con MYSQL – MariaDB

A continuación les indicare paso a paso como conectar Visual Basic 6  a un Base de Datos MySQL o llamada también la ultimas versiones como MariaDB

Pasos

  1. Descargar el Conector ODBC de MySQL
  2. Creación de la Base de datos.
  3. Crear un Proyecto Nuevo de Visual Basic
  4. Agregar las Referencias en Visual Basic
  5. Crear el Módulo de conexión
  6. Crear la Función que hará la conexión
  7. CRUD haciendo Pruebas de consultas a la base de datos
  8.  Generando el Punto Exe

 

Descargar el Conector ODBC de MySQL

Lo primero que se debe hacer para realizar la conexión con MySQL es Descargar el Conector ODBC de MysQL que debe ser de 32 bit, lo puedes descargar del siguiente link:

https://dev.mysql.com/downloads/connector/odbc/

Aparece varias opciones de descarga se debe seleccionar Windows (x86, 32-bit), MSI Installer

Le das clic en el botón azul Download.

Luego te preguntara si quieres loguearte pero no es necesario solo hay que darle en la opción No thanks, just start my download.

Creación de la Base de Datos

Se debe crear una base de datos con el nombre de crud_mysql y el código para crear la tabla es el siguiente:

--
-- Base de datos: `crud_mysql`
--

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `clientes`
--

CREATE TABLE `clientes` (
  `id_cliente` int(11) NOT NULL,
  `identificacion` int(15) NOT NULL,
  `nombres` varchar(50) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

--
-- Índices para tablas volcadas
--

--
-- Indices de la tabla `clientes`
--
ALTER TABLE `clientes`
  ADD PRIMARY KEY (`id_cliente`);

--
-- AUTO_INCREMENT de las tablas volcadas
--

--
-- AUTO_INCREMENT de la tabla `clientes`
--
ALTER TABLE `clientes`
  MODIFY `id_cliente` int(11) NOT NULL AUTO_INCREMENT;
COMMIT;

 

Crear un Proyecto Nuevo de Visual Basic

Abre Visual Basic 6 y vas a seleccionar un proyecto Profesional de Visual Basic, la versión profesional es las mas usada debido a que trae todos los controles.

En el formulario que se abre vas a diseñar el formulario de la siguiente manera ya que la idea que hacer un CRUD (Crea, Modifica, Listar y Eliminar).

Lista de Controles:

  • txtIdentificacion
  • txtNombres
  • MSHGrid
  • cmdNuevo
  • cmdGuardar
  • cmdSalir

Agregar las Referencias en Visual Basic

Para poder hacer la conexión a una base de datos usando ADO se debe agregar esa referencia a Visual Basic, para agregarla debe ir al Menú Proyecto, luego en Referencias.

Se debe buscar en la lista la referencia Microsoft ActiveX Data Object 2.5 Library, para agregarla solo debe darle clic en el cuadrito para que active el chulito y luego dar en el botón aceptar.

Con esto ya queda habilitado Visual Basic para realizar conexiones a base de datos utilizando ADO.

 

Crear el Módulo de conexión

Para agregar un módulo a Visual Basic, debes dar clic en el Menú Proyecto y luego en Agregar Módulo y Luego clic en botón Abrir.

Se le cambia el nombre al módulo por mdoConexion

El código del módulo seria el siguiente:

Global ConexionADO As New ADODB.Connection

'Abre una conexión MYSQL
Sub AbrirConexionADO()
    On Error GoTo error

    Server = "127.0.0.1"
    Database = "crud_mysql"
    NombreBase = "root"
    User = "root"
    Password = ""
    Driver = "MySQL ODBC 8.0 ANSI Driver" 'depende de la versión instalada
        
    
    If ConexionADO.State = 1 Then
       ConexionADO.Close
    End If
    
    ConexionADO.CursorLocation = adUseClient
    ConexionADO.Open "DRIVER={" & Driver & "};SERVER=" & Server & ";DATABASE=" & Database & ";USER=" & User & ";PASSWORD=" & Password & ";OPTION=3;"
          
        
Exit Sub
error:
    If Err.Number = -2147467259 Then
       MsgBox "No se pudo conectar con la Base de Datos, verifique los datos de conexión", vbCritical, "Error de Conexión. No. " & Err.Number
       MsgBox "SERVER=" & Server & ";DATABASE=" & vDatabase & ";USER=" & User & ";PASSWORD=" & Password
    Else
       MsgBox Err.Description, vbCritical, "Erro al conectar con la base de datos"
    End If
End Sub

'Este procedimiento se encarga de llenar un MSHFlexGrid
'Se le debe pasar el nombre del MSHFlexGrid, la consulta SQL y el total de columnas
Sub ListarGridMSH(Grid As MSHFlexGrid, sql, totalCampos)
     Dim RecorsetTemp As New ADODB.Recordset
    
     RecorsetTemp.Open sql, ConexionADO, adOpenStatic, adLockReadOnly
     
   
    Grid.Redraw = False
    Grid.Rows = 1
    Grid.FixedRows = 0
    Grid.Rows = 0

    Grid.DataMember = RecorsetTemp.DataMember
    Set Grid.DataSource = RecorsetTemp.DataSource
    
    TotalColumnas = totalCampos
    
    Grid.AddItem "", 0
    
    If Grid.Rows > 1 Then Grid.FixedRows = 1
   
    ww = 70
    For cc = 0 To Grid.Cols - 1
        ww = ww + Grid.ColWidth(cc)
    Next
    If Grid.RowHeight(0) * Grid.Rows > Grid.Height Then
        ww = ww + 240
    End If
    
    For i = 1 To TotalColumnas
                Grid.Row = 0
                Grid.Col = i
                Grid.CellBackColor = &H8C5828 '&HFFCCAB
                Grid.CellAlignment = flexAlignCenterCenter
                Grid.CellForeColor = vbWhite
                Grid.CellFontBold = True
    Next i
    
    Grid.Row = 0
    suma = 0
    For cc = 1 To Grid.Rows - 1
        Grid.Row = cc
 
        If cc Mod 2 = 0 Then
            For i = 1 To TotalColumnas
                Grid.Col = i
                Grid.CellBackColor = &HFEEEDD
            Next i
        End If
        Grid.Row = cc
        Grid.Col = 1
        Grid.CellAlignment = flexAlignLeftCenter
    Next
    
    
    Grid.Redraw = True
    Grid.Col = 0
    If Grid.Row > 0 Then
        Grid.Row = 1
       ' Grid.SetFocus
    End If
    
End Sub

El driver depende la versión instalada para saberlo debe ir al Panel de Control, y luego en Programas y Características y se busca Mysql Connector y debe decir la versión instalada.

Luego en el evento Load del formulario se llama al procedimiento que abre la conexón con la base de datos:

Private Sub Form_Load()
    Call AbrirConexionADO
End Sub

El código completo del CRUD es el siguiente:

Dim IdCliente As Integer 'Esta variable se utiliza para saber si se actualiza o no un registro

'Lista la lista de clientes actuales en la tabla Clientes
Sub ListarClientes()
    sql = "Select * from clientes Order by nombres ASC "
    
    Call ListarGridMSH(MSHGrid, sql, 3)
    
    MSHGrid.ColWidth(0) = 0
    MSHGrid.ColWidth(1) = 1200
    MSHGrid.ColWidth(2) = 1400
    MSHGrid.ColWidth(3) = 3000

    
    MSHGrid.TextMatrix(0, 1) = "Codigo"
    MSHGrid.TextMatrix(0, 2) = "Identificación"
    MSHGrid.TextMatrix(0, 3) = "Nombres"
    
End Sub

'Elimina un cliente por su ID
Private Sub cmdEliminar_Click()
    On Error GoTo error
    
    id = MSHGrid.TextMatrix(MSHGrid.Row, 1)
    nombre = MSHGrid.TextMatrix(MSHGrid.Row, 3)
    If id <> "" Then
       res = MsgBox("¿Está seguro de borrar al cliente: " & nombre & " ?", vbYesNo, "Confirmar")
       If res = vbYes Then
          sql = "Delete from clientes where id_cliente = " & id
          ConexionADO.Execute sql
          
          Call ListarClientes
          
       End If
    End If
    
      Exit Sub
error:
  MsgBox Err.Description, vbCritical, "Error Nº " & Err.Number
End Sub

Private Sub cmdGuardar_Click()
  On Error GoTo error
    
    If IdCliente = 0 Then 'se es cero se agrega uno nuevo
        sql = "Insert into clientes (identificacion, nombres) values ('" & txtIdentificacion & "', '" & Me.txtNombres & "')"
    Else 'sino se actualiza
        sql = "Update clientes SET identificacion = '" & txtIdentificacion & "', nombres = '" & Me.txtNombres & "' Where id_cliente = " & IdCliente
    End If
        ConexionADO.Execute sql
        
    Call ListarClientes
    Call cmdNuevo_Click
  Exit Sub
error:
  MsgBox Err.Description, vbCritical, "Error Nº " & Err.Number
    
End Sub

Private Sub cmdNuevo_Click()
    Me.Caption = "CRUD MySQL"
    IdCliente = 0
    txtIdentificacion.Text = ""
    txtNombres.Text = ""
    txtIdentificacion.SetFocus
    
    Call ListarClientes
End Sub

Private Sub cmdSalir_Click()
    Unload Me
End Sub

Private Sub Form_Load()
    Call AbrirConexionADO
    IdCliente = 0
    Call ListarClientes
End Sub

'si se da doble clic se procede a llenar los campos del formulario con los datos del Cliente
Private Sub MSHGrid_DblClick()
    id = MSHGrid.TextMatrix(MSHGrid.Row, 1)
    ident = MSHGrid.TextMatrix(MSHGrid.Row, 2)
    nombre = MSHGrid.TextMatrix(MSHGrid.Row, 3)
    If id <> "" Then 'en caso que no se le de doble clic a un cliente
        IdCliente = id
        txtIdentificacion.Text = ident
        txtNombres.Text = nombre
        Me.Caption = "CRUD MySQL - Modificando el cliente ID: " & IdCliente
    End If
End Sub

El formulario final quedó de la siguiente manera:

Generando el Punto Exe

Para crear el .EXE solo hay que ir al menú Archivo y Luego en Generar “Nombre del proyecto”

Descarga el Código de Aquí: Descargar proyecto

 

Total Page Visits: 10252 - Today Page Visits: 2

Deja una respuesta