Como conectarse a una Base de datos MySQL desde VB 6...

Iniciado por Sk9ITk5Z, 19 Diciembre 2009, 17:51 PM

0 Miembros y 1 Visitante están viendo este tema.

Sk9ITk5Z

Lo que les traigo es un pequeño tuto de cómo hacer una conexión a bases de datos de mysql con el querido vb 6 y pues más que nada es para la gente que apenas va empezando en estas cosas y es pero que les sirva de apoyo  ya que es algo muy  sencillo.

Bueno para ahcer la conexion yo hice un boton de conectar y dentro de este meti el siguiente codigo,del cual yo jalo los datos de pass y user desde dos txt, para que solo yo pueda entrar a mi bd, tambien se pueden jalar los demas datos como son el nombre de la bd, el puerto, hasta en en que maquina esta la bd eso hace que el programita funcione con cualquier bd que use MySQL. Pero yo les voy a mostar un caso espesifico para que sea un poco mas sencillo.
otra cosa para que esto funcione tenemos que agregar una dependencia a nuestro proyecto que seria la "Microsoft ActiveX Data Objects 2.8 Library"
y un objeto que se llama datagrid para mostrar nuestras tablas.

nota:
las variables conexion y rs son publicas para que se puedan utilizar en todo el formulario
Código (vb) [Seleccionar]

Private Sub Command1_Click()
'declaramos una variable del tipo ADODB.Connection que nos permitira conectarnos nuestra bd
Set conexion = New ADODB.Connection
'ahora le asignamos a nuestra variable la propiedad de ConnectionString_
'que es la cadena de conexion a nuestra bd_
'y ai iria la cadena que esta despues del = entre ""
'Eso no va cambiar esa cadena no la da mysql para poder conectarnos a bd de sus servidor de db_
'en esta caso es 5.0.3
conexion.ConnectionString = "driver={MySQL ODBC 3.51 Driver};server=localhost;uid=" & user.Text & ";pwd=" & pass.Text & ";database=inventario;connection="
' Despues de poner la cadena de conexion la abrimos con Open
conexion.Open
' y ya con esto estamos conectados a la BD
End Sub


Bueno ahora  ya estando coenctados pues lo que queremos es ver el contenido de las tablas para eso yo utilize un combobox para seleccionar la tabla que yo quiera ver y mostrarla en un datagrid, En mi caso son tres tablas llamdas memorias,comunicaciones y micros, para eso meti el codigo en el evento click del combo box que es cuando selecciona el contenido del combo, en tonces solo lo que se hace es preguntar que item selecciono y entrar a esa parte del codigo entonces quedaria asi:

Código (vb) [Seleccionar]

Private Sub Combo1_Click()
'creamos una varaible y le asignamos un ubjeto recordset  
Set rs = New ADODB.Recordset
'preguntamos que tabla selecciono
 If Combo1.Text = "Memorias" Then
' aqui se hace un sivlo para poder leer el contenido completo de la tabla seleccionada
    With rs
        .ActiveConnection = conexion
        .CursorLocation = adUseClient
        .CursorType = adOpenDynamic
        .LockType = adLockOptimistic
        .Open "select * from Memorias"
    End With
' se termina el siclo, se leen los datos y se imprimen en el data grid de_
' la siguiente manera
     Set DataGrid1.DataSource = rs
' a qui solo acomode el ancho de las columnas para que los datos se mostraran correctamente
     DataGrid1.Columns(0).Width = 200
     DataGrid1.Columns(1).Width = 500
     DataGrid1.Columns(2).Width = 5000
     DataGrid1.Columns(3).Width = 1000
     tabla = 1
 End If

 If Combo1.Text = "Comunicaciones" Then
    With rs
        .ActiveConnection = conexion
        .CursorLocation = adUseClient
        .CursorType = adOpenDynamic
        .LockType = adLockOptimistic
        .Open "select * from Comunicaciones"
    End With
     Set DataGrid1.DataSource = rs
     DataGrid1.Columns(0).Width = 200
     DataGrid1.Columns(1).Width = 1800
     DataGrid1.Columns(2).Width = 1000
     DataGrid1.Columns(3).Width = 5000
     tabla = 2
 End If
 
 
 If Combo1.Text = "Micros" Then
    With rs
        .ActiveConnection = conexion
        .CursorLocation = adUseClient
        .CursorType = adOpenDynamic
        .LockType = adLockOptimistic
        .Open "select * from Micros"
    End With
     Set DataGrid1.DataSource = rs
     DataGrid1.Columns(0).Width = 200
     DataGrid1.Columns(1).Width = 800
     DataGrid1.Columns(2).Width = 5000
 
     tabla = 3
 End If

 
End Sub


Esta es la interface de la aplicacion




Ahora para doder modificar las tablas lo que quice es poder hacerlo desde el datagrid, entonces me cree un menu con las opxiones de Agregar registro, borrar y guardar
para poder crear un registro nuevo seria asi:

Código (vb) [Seleccionar]

'con esto se abre un registro nuevo y en el data grid les aparesera esos campos_ 'vacios  para lleabrlos
rs.AddNew


Despues solo se le tiene que guardar y listo

Código (vb) [Seleccionar]

con eso se actualizan los cambios y se guardan en nuestra bd
rs.Update



Ahora el boton de borrar
Código (vb) [Seleccionar]

Private Sub baja_Click()
'Aqui le puse una pregunta por que hay veces que uno preciona la opcion sin querer
'y para evitar borrar un registro indeseadamente le puse la aprovacion esa
   Dim x As Integer
   x = MsgBox("desea borrar el registro", vbYesNo + vbQuestion, "aviso")
'aqui se pregunta si se eligio que si en el msgbox
   If x <> vbYes Then Exit Sub
'se borra el registro
     rs.Delete
'se mueve el puntero al registro siguiente
     rs.MoveNext
' se pregutna si estas hasta el final de la tabla muevete un registro atras
     If rs.EOF Then
       rs.MoveLast
     End If
     MsgBox "El registro se borro correctamente", vbInformation

End Sub



Bueno espero que les sea de utilidad a los que van empesando con esto ya que creo que es la manera mas sencilla de poder ver tablas y agregar y borrar registro de una BD....

Esta no es la mejor de tratar con BD MySQL pero si creo que es la mas sencilla es por eso que la puse, yo recomiendo que se usen mejor sentencias sql para todo(busquedas, borrado, añadir,vistas,etc....), pero como en un principio dije que es para las personas que van empesando y creo que con esto se darian una idea de como  es esto
Este es un pueblo de corazón extraviado, no quiere conocer mis caminos por eso no entraran en mi descanso.

gct

buen tuto me gusto crees q puedas colocar para algun mail para contactar? estoy aprendiendo vb6 y sql y mysql,caracas-venezuela,si es msn(mesenger mejor)

Sk9ITk5Z

Cita de: gct en 20 Diciembre 2009, 02:28 AM
buen tuto me gusto crees q puedas colocar para algun mail para contactar? estoy aprendiendo vb6 y sql y mysql,caracas-venezuela,si es msn(mesenger mejor)
no se pueden postear correos a quie, pero cual quier duda que tengas no dudes en preguntar para eso es este foro para ayudarnos...
Este es un pueblo de corazón extraviado, no quiere conocer mis caminos por eso no entraran en mi descanso.

‭‭‭‭jackl007

hay una DLL llamado AdoKit que te ayuda muchiisimo para contectarte a base de datos.. incluso a la de Access...

ssccaann43 ©

Cita de: ‭‭‭‭jackl007 en  9 Febrero 2010, 04:58 AM
hay una DLL llamado AdoKit que te ayuda muchiisimo para contectarte a base de datos.. incluso a la de Access...


Para conectarte a BD, es mucho mejor si no tienes dependencias con DLL...!

Sencillo pero creo que iluminaras a las personas que se inician en VB6.0
- Miguel Núñez
Todos tenemos derechos a ser estupidos, pero algunos abusan de ese privilegio...
"I like ^TiFa^"