|
| Autor |
Mensaje |
Tesis Administrador

Registrado: 04 Mar 2007 Mensajes: 2750 Ubicación: Valencia - España
|
Publicado: Jue 27 Dic, 2007 21:19 pm
Título del mensaje: Como conectar Visual Basic con MySQL |
|
|
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. |
www.lospillaos.es
Normas del foro
Aprende a postear correctamente usando las etiquetas
Ultima edición por Tesis el Jue 03 Nov, 2011 13:05 pm; editado 2 veces
|
|
| Volver arriba |
|
|
Arael25 Colaborador

Registrado: 13 Mar 2007 Mensajes: 611 Ubicación: Lima - Peru
|
|
| Volver arriba |
|
|
Just15

Registrado: 05 May 2008 Mensajes: 3 Ubicación: Los Teques, Miranda, Venezuela
|
|
| Volver arriba |
|
|
Tesis Administrador

Registrado: 04 Mar 2007 Mensajes: 2750 Ubicación: Valencia - España
|
|
| Volver arriba |
|
|
Julia
Registrado: 28 Jun 2008 Mensajes: 4
|
|
| Volver arriba |
|
|
Tesis Administrador

Registrado: 04 Mar 2007 Mensajes: 2750 Ubicación: Valencia - España
|
|
| Volver arriba |
|
|
Julia
Registrado: 28 Jun 2008 Mensajes: 4
|
Publicado: Dom 29 Jun, 2008 01:17 am
Título del mensaje: Re: COMO CONECTAR VISUAL BASIC CON MySQL |
|
|
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 |
|
|
Tesis Administrador

Registrado: 04 Mar 2007 Mensajes: 2750 Ubicación: Valencia - España
|
Publicado: Dom 29 Jun, 2008 10:41 am
Título del mensaje: Re: COMO CONECTAR VISUAL BASIC CON MySQL |
|
|
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. |
www.lospillaos.es
Normas del foro
Aprende a postear correctamente usando las etiquetas
|
|
| Volver arriba |
|
|
Julia
Registrado: 28 Jun 2008 Mensajes: 4
|
|
| Volver arriba |
|
|
Heber Usuario Iniciado
Registrado: 11 Jul 2008 Mensajes: 22 Ubicación: Oaxaca
|
Publicado: Vie 11 Jul, 2008 18:35 pm
Título del mensaje: Re: COMO CONECTAR VISUAL BASIC CON MySQL |
|
|
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 |
|
|
guiyermo Ex coAdmin

Registrado: 07 Mar 2007 Mensajes: 894 Ubicación: Avià - Barcelona
|
Publicado: Sab 12 Jul, 2008 20:59 pm
Título del mensaje: Re: COMO CONECTAR VISUAL BASIC CON MySQL |
|
|
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 |
|
|
Tesis Administrador

Registrado: 04 Mar 2007 Mensajes: 2750 Ubicación: Valencia - España
|
Publicado: Dom 13 Jul, 2008 21:48 pm
Título del mensaje: Re: COMO CONECTAR VISUAL BASIC CON MySQL |
|
|
| 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.  |
www.lospillaos.es
Normas del foro
Aprende a postear correctamente usando las etiquetas
|
|
| Volver arriba |
|
|
Heber Usuario Iniciado
Registrado: 11 Jul 2008 Mensajes: 22 Ubicación: Oaxaca
|
Publicado: Lun 14 Jul, 2008 17:24 pm
Título del mensaje: COMO CONECTAR VISUAL BASIC CON MySQL |
|
|
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 |
|
|
Tesis Administrador

Registrado: 04 Mar 2007 Mensajes: 2750 Ubicación: Valencia - España
|
|
| Volver arriba |
|
|
guiyermo Ex coAdmin

Registrado: 07 Mar 2007 Mensajes: 894 Ubicación: Avià - Barcelona
|
|
| Volver arriba |
|
|