Fecha y hora actual: Domingo 26 Oct 2014 11:29
Índice del Foro

Foros de programación informática, diseño gráfico y Web

En esta comunidad intentaremos dar soporte de programación a todos los niveles, desde principiantes a profesionales de la informática, desarrollo de programas, programación web y mucho más.

Como conectar Visual Basic con MySQL

Responder al Tema Ir a página 123456Siguiente

Índice del Foro > Visual Basic y VBA > Como conectar Visual Basic con MySQL

Autor Mensaje
Tesis
Administrador


Registrado: 04 Mar 2007
Mensajes: 2992
Ubicación: Valencia - España

Mensaje Publicado: Jueves 27 Dic 2007 21:19

Título del mensaje: Como conectar Visual Basic con MySQL

Responder citando

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
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 toda esta información y que si tenéis alguna crítica, duda o sugerencia no dudéis en postearla.

Saludos.


Normas del foro
Aprende a postear correctamente usando las etiquetas

Ultima edición por Tesis el Jueves 03 Nov 2011 13:05; editado 2 veces
Volver arriba
Ver perfil del usuario Enviar mensaje privado
Arael25
Colaborador


Registrado: 13 Mar 2007
Mensajes: 611
Ubicación: Lima - Peru

Mensaje Publicado: Viernes 28 Dic 2007 20:36

Título del mensaje:

Responder citando

esta bueno tu aporte tesis pero dao

no tendras por ahy algo pero en ado, que es un poquito mas seguro
no te parece, yo tambien voy nahacer u post para saber las diferencias entre dao y ado, para que los user sepan que tecnologia usar


Me olvide de ustedes pero ya volvi para quedarme
Volver arriba
Ver perfil del usuario Enviar mensaje privado Visitar sitio web del autor MSN Messenger
Just15



Registrado: 05 May 2008
Mensajes: 3
Ubicación: Los Teques, Miranda, Venezuela

Mensaje Publicado: Lunes 05 May 2008 03:50

Título del mensaje:

Responder citando

Que tal, excelente guia. Tengo un error al momento de visualizar la base de datos Ruborizado . El error es: N° de error: -2147217887 | El controlador ODBC no admite las propiedades solicitadas. ¿Tendrás alguna idea del porqué? Es la primera vez que intento hacer este tipo de conexión. Triste

Volver arriba
Ver perfil del usuario Enviar mensaje privado
Tesis
Administrador


Registrado: 04 Mar 2007
Mensajes: 2992
Ubicación: Valencia - España

Mensaje Publicado: Lunes 05 May 2008 08:45

Título del mensaje:

Responder citando

Hola Just15, bienvenido al foro. Si deseas presentarte a la comunidad lo puedes hacer desde AQUI

Just15 escribió:
Que tal, excelente guia. Tengo un error al momento de visualizar la base de datos Ruborizado . El error es: N° de error: -2147217887 | El controlador ODBC no admite las propiedades solicitadas. ¿Tendrás alguna idea del porqué? Es la primera vez que intento hacer este tipo de conexión. Triste


Ese error sucede cuando la instrucción SQL que intentas enviar es errónea. Posteala para que veamos el code.


Saludos.


Normas del foro
Aprende a postear correctamente usando las etiquetas
Volver arriba
Ver perfil del usuario Enviar mensaje privado
Julia



Registrado: 28 Jun 2008
Mensajes: 4

Mensaje Publicado: Sábado 28 Jun 2008 03:55

Título del mensaje: Re: COMO CONECTAR VISUAL BASIC CON MySQL

Responder citando

Hola, Risa tonta tengo un problema me sale un error cuando intento conectar
-2147467259[Microsoft][Administrador de controladores ODBC]No se encuentra el nombre de origen de datos y no se especifico ningun controlador predeterminado. Desde ya muchas gracias

Y podrias explicar un poco mas el codigo, para saber que hace cada linea

Volver arriba
Ver perfil del usuario Enviar mensaje privado
Tesis
Administrador


Registrado: 04 Mar 2007
Mensajes: 2992
Ubicación: Valencia - España

Mensaje Publicado: Sábado 28 Jun 2008 15:15

Título del mensaje: Re: COMO CONECTAR VISUAL BASIC CON MySQL

Responder citando

Hola Julia, bienvenida al foro Ok Ok

Contestando tu pregunta, podrías decir todos los pasos que has seguido y pegar el code de donde te salta el error?

Saludos.


Normas del foro
Aprende a postear correctamente usando las etiquetas
Volver arriba
Ver perfil del usuario Enviar mensaje privado
Julia



Registrado: 28 Jun 2008
Mensajes: 4

Mensaje Publicado: Domingo 29 Jun 2008 01:17

Título del mensaje: Re: COMO CONECTAR VISUAL BASIC CON MySQL

Responder citando

hola tesis:
te cuento que segui tus instrucciones y el codigo es simil solo le cambie el orden de los datos ya que vos en el texto pones:

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

y luego en el codigo

Código:
"Server=" & Text1 & ";" & _
"Port=" & Text2 & ";" & _
"Database=" & Text3 & ";" & _
"User=" & Text4 & ";" & _
"Password=" & Text5 & ";" & _
"Option=3;"


el orden esta cambiado.
y el error me aparece cuando hago clic en el boton conectar.

:||:||
Y tambien en el command2 en el cogigo dice command1

Volver arriba
Ver perfil del usuario Enviar mensaje privado
Tesis
Administrador


Registrado: 04 Mar 2007
Mensajes: 2992
Ubicación: Valencia - España

Mensaje Publicado: Domingo 29 Jun 2008 10:41

Título del mensaje: Re: COMO CONECTAR VISUAL BASIC CON MySQL

Responder citando

Hola, sigue estos pasos:

1- Instala el conector ODBC 3.51
2- Agrega las referencias correspondientes:

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

3- Agrega los textbox correspondientes y los dos botones (el orden no afecta)
4- MUY IMPOTANTE
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.
5- Declara las variables
6- crea la cadena de conexión.


Si después de seguir estos pasos no te sale, comentalo.


Saludos.


Normas del foro
Aprende a postear correctamente usando las etiquetas
Volver arriba
Ver perfil del usuario Enviar mensaje privado
Julia



Registrado: 28 Jun 2008
Mensajes: 4

Mensaje Publicado: Domingo 29 Jun 2008 21:27

Título del mensaje: Re: COMO CONECTAR VISUAL BASIC CON MySQL

Responder citando

Aplauso Aplauso Aplauso Aplauso Aplauso Aplauso Aplauso
GRACIAS
Me habia confundido en la version del ODBC Ruborizado

ahora probare el resto y te cuento

Volver arriba
Ver perfil del usuario Enviar mensaje privado
Heber
Usuario Iniciado


Registrado: 11 Jul 2008
Mensajes: 22
Ubicación: Oaxaca

Mensaje Publicado: Viernes 11 Jul 2008 18:35

Título del mensaje: Re: COMO CONECTAR VISUAL BASIC CON MySQL

Responder citando

estoy haciendo una funcion para hacer una actualizacion en mi base de datos que esta en mysql pero me marca un error "error -2147217887(80040e21) en tiempo de ejecucion"

mi funcion es la siguiente

Public Function Actualizar_Registro_Monitorear(ID As Integer, status As String)

Set RecSQL = New ADODB.Recordset
Dim SQL As String
Dim Fecha As Date
Dim dispo As Double

dispo = 99.99

Fecha = Format(Now, "yyyy-mm-dd")

SQL = "UPDATE monitoreo SET estado= '& status &' , disponibilidad= '& dispo &' ,fecha= '& Fecha &' WHERE idmonitoreo= '& ID &'"

RecSQL.Open SQL, DB, adOpenStatic, adLockPessimistic

End Function

ojala puedan ayudar

Volver arriba
Ver perfil del usuario Enviar mensaje privado
guiyermo
Ex coAdmin


Registrado: 07 Mar 2007
Mensajes: 897
Ubicación: Avià - Barcelona

Mensaje Publicado: Sábado 12 Jul 2008 20:59

Título del mensaje: Re: COMO CONECTAR VISUAL BASIC CON MySQL

Responder citando

Bienvenido Heber!

Una salvedad: es muy importante que pongas el código entre las etiquetas de Code, así es más fácil de visualizarlo para quienes puedan ayudarte a corregirlo.

Si quieres presentarte a la comunidad puedes hacerlo desde aquí


GRACIAS
GUIYERMO
NO SOY DIGNO Y PRETENDO SERLO
www.operaberga.es
Normas del foro
Aprende a postear correctamente usando las etiquetas
Volver arriba
Ver perfil del usuario Enviar mensaje privado Visitar sitio web del autor
Tesis
Administrador


Registrado: 04 Mar 2007
Mensajes: 2992
Ubicación: Valencia - España

Mensaje Publicado: Domingo 13 Jul 2008 21:48

Título del mensaje: Re: COMO CONECTAR VISUAL BASIC CON MySQL

Responder citando

Heber escribió:
estoy haciendo una funcion para hacer una actualizacion en mi base de datos que esta en mysql pero me marca un error "error -2147217887(80040e21) en tiempo de ejecucion"

mi funcion es la siguiente

Public Function Actualizar_Registro_Monitorear(ID As Integer, status As String)

Set RecSQL = New ADODB.Recordset
Dim SQL As String
Dim Fecha As Date
Dim dispo As Double

dispo = 99.99

Fecha = Format(Now, "yyyy-mm-dd")

SQL = "UPDATE monitoreo SET estado= '& status &' , disponibilidad= '& dispo &' ,fecha= '& Fecha &' WHERE idmonitoreo= '& ID &'"

RecSQL.Open SQL, DB, adOpenStatic, adLockPessimistic

End Function

ojala puedan ayudar


Ese es un error típico por intentar utilizar un tipo de dato que no está establecido en la bd.

Esa sentencia SQL no toma valores, para que los tome tienes que meter las variables fuera de la cadena e ir concatenado.

Yo la dejaría así
Código:
SQL = "UPDATE monitoreo SET estado= '" & status & "' , disponibilidad= '" & dispo & "' ,fecha= ' " & Fecha & "'  WHERE idmonitoreo= " & ID

Suponiendo que idmonitoreo sea numérico.


Bienvenido al foro. Ok


Normas del foro
Aprende a postear correctamente usando las etiquetas
Volver arriba
Ver perfil del usuario Enviar mensaje privado
Heber
Usuario Iniciado


Registrado: 11 Jul 2008
Mensajes: 22
Ubicación: Oaxaca

Mensaje Publicado: Lunes 14 Jul 2008 17:24

Título del mensaje: COMO CONECTAR VISUAL BASIC CON MySQL

Responder citando

Gracias Tesis me sirvio mucho tu respuesta ya me hizo la actualizacion mil gracias ya despues los molestare con alguna otra duda, gracias nuevamente, ah tambien gracias a Guylermo

Volver arriba
Ver perfil del usuario Enviar mensaje privado
Tesis
Administrador


Registrado: 04 Mar 2007
Mensajes: 2992
Ubicación: Valencia - España

Mensaje Publicado: Lunes 14 Jul 2008 23:36

Título del mensaje: Re: COMO CONECTAR VISUAL BASIC CON MySQL

Responder citando

De nada Ok Ok para eso estamos Amigos


Normas del foro
Aprende a postear correctamente usando las etiquetas
Volver arriba
Ver perfil del usuario Enviar mensaje privado
guiyermo
Ex coAdmin


Registrado: 07 Mar 2007
Mensajes: 897
Ubicación: Avià - Barcelona

Mensaje Publicado: Miércoles 16 Jul 2008 03:38

Título del mensaje: Re: COMO CONECTAR VISUAL BASIC CON MySQL

Responder citando

Amigos Amigos Amigos Amigos Amigos
Ok Ok Ok Ok


GRACIAS
GUIYERMO
NO SOY DIGNO Y PRETENDO SERLO
www.operaberga.es
Normas del foro
Aprende a postear correctamente usando las etiquetas
Volver arriba
Ver perfil del usuario Enviar mensaje privado Visitar sitio web del autor
Responder al Tema Ir a página 123456Siguiente
Mostrar mensajes anteriores:   
Ir a:  
Todas las horas están en GMT + 2 Horas

Temas relacionados

Tema Autor Foros Respuestas Publicado
El foro no contiene ningún mensaje nuevo

Reproductor de video como Youtube

Blanca Programación Web en general 0 Martes 07 Oct 2014 14:37 Ver último mensaje
El foro no contiene ningún mensaje nuevo

plugin Visual editor para eclipse Luna

depotBill Java 0 Miércoles 01 Oct 2014 14:22 Ver último mensaje
El foro no contiene ningún mensaje nuevo

Como hacer funcionables los botones (open, clos...

Pico C, C#, Visual C++ 10 Domingo 14 Sep 2014 17:22 Ver último mensaje
El foro no contiene ningún mensaje nuevo

Como imprimir un informe o rdlc

monxu88 Visual Basic .NET 1 Viernes 12 Sep 2014 19:55 Ver último mensaje
El foro no contiene ningún mensaje nuevo

AYUDA!como hacer este arreglo biodimensional

End3rkid C, C#, Visual C++ 1 Lunes 08 Sep 2014 19:44 Ver último mensaje
Panel de Control
No puede crear mensajes, No puede responder temas, No puede editar sus mensajes, No puede borrar sus mensajes, No puede votar en encuestas,