Conectar a MySQL con Visual Basic (VB6) usando ODBC

Desde mis primeros desarrollos he conectado a VB con Access por la sencillez, pero en nuevos proyectos web, empecé a utilizar MySQL como servidor de base de datos, atacándolo con PHP, sobre todo por ser completamente software gratuito.

Pero aún sigo utilizando Visual Basic 6, para algún proyecto que necesita alguna gestión más «amigable» y prefiero utilizar la potencia y sencillez de vb, es por lo que tuve la necesidad de crear una conexión Visual Basic Vs MySQL.

En principio no es muy complejo, lo primero que debemos de hacer, es descargar un controlador ODBC que nos proporcionan gratuitamente desde la web de MySQL e instalarlo, al tiempo de este tutorial es  la descarga disponible es la versión 5.1.6.

Una vez instalados estos drivers, solo debemos utilizar la cadena de conexión en nuestro VB, pero voy a poneros la función completa para que solo tengais que copiar y pegar:

Dim CON As ADODB.Connection
Dim Comd As ADODB.Command
Dim Rs As ADODB.Recordset

Public Function Conectar_bd()

Set CON = New ADODB.Connection
Set comd = New ADODB.Command
Set Rs = New ADODB.Recordset

CON.CommandTimeout = 40
CON.CursorLocation = 1

CON.Open «DRIVER={MySQL ODBC 3.51 Driver};DATABASE=» & NomBd & «;SERVER=» & Servidor &     «;UID=» & Usuario & «;password=» & Pwd & «;PORT=3306;»

Set Comd.ActiveConnection = CON

End Function

En la función anterior, declaramos CON, que será la conexión de la base de datos, el Comd es la que ejecutará el comando, y Rs, el RecordSet, para la utilización de los registros, dependiendo del proyecto, podeis declararlas como publicas para todo el proyecto y reutilizarlas, o en la función que veais que se utilizará, yo suelo utilizarlas Public para usar por todo el proyecto, ya que son variables a reutilizar con la conexión y no han de variar.

Además tenemos 4 variables que no hemos declarado y que debereis declarar vosotros y darle el valor que corresponda, estas son:

  • NomBD: El nombre de la base de datos. (ej. Datos)
  • Servidor: El nombre o dirección Ip de nuestro servidor de MySQL. (ej. Localhost)
  • Usuario: El usuario para acceder a nuestra base de datos de MySQL. (ej. vertutoriales)
  • Pwd: La clave de acceso a nuestro servidor de MySQL. (ej. ######) 😀

El puerto por defecto es el 3306, pero tambien podeis modificarlo si usais versiones anteriores, o simplemente teneis otro puerto abierto para el uso de la base de datos.

Ya para terminar os dejo el código que debeis utilizar una vez conectados con la base de datos de MySQL, para que solo tengais que modificarlo a vuestras necesidades:

‘Llamo a la función de conexión a la base de datos

Conectar_bd

‘Le digo la consulta a ejecutar al comando

comd.CommandText = «SELECT * FROM Usuarios»

Rs.CursorLocation = adUseClient

Rs.Open comd, , 1, 1

Y listo!,  con estas lineas de código ya tendríais la conexión y la forma de realizar consultas a vuestra base de datos MySQL atacando con Visual Basic 6. Ya solo quedaría utilizar el Rs de la manera normal.

Espero que os sea útil. Si teneis alguna duda podeis escribirme a tutor@dkreativo.es o dejar algún comentario!

Un saludo! 😀

NOTA Reeditada

Para poder usar este código debeis de registrar un par de referencias:

Microsoft Data Objets 2.0 y Microsoft ActiveX Data Objets 2.8
Las versiones las dejo aproximadas, pero tened en cuenta que si la versión es más moderna que la que tiene el usuario instalada es posible que tengais que instalarla aparte. Así que os aconsejo que no instaleis las últimas, a mi la 2.8 me ha dado problemas con algún cliente, y he tenido que bajar actualizaciones desde la web de microsoft. Aunque tambien es verdad que el pc del cliente iba a carbón.

Carlos Dk

Apasionado por la enseñanza y el SEO

111 comentarios en “Conectar a MySQL con Visual Basic (VB6) usando ODBC

  • el 29 abril, 2010 a las 4:23 pm
    Permalink

    » { » me dice que caracter no valido

    Respuesta
    • el 30 abril, 2010 a las 1:30 am
      Permalink

      Revisa si al copiar y pegar las comillas están bien puestas, en principio el código está sacado de un script que está en producción, así que es funcional 100×100.

      Ya me comentas si te sigue dando problemas, si fuera así, exponlo y le damos solución.

      Un saludo!

      Respuesta
    • el 20 mayo, 2017 a las 11:11 pm
      Permalink

      hola buena tarde tengo un problema, no pudo conectar la base de datos con visual basic me sale un error, me dice que (error en la prueba de conexión al inicializar al proveedor.no se reconoce formato de base de dato) a quien puede ayudarme

      Respuesta
      • el 20 junio, 2017 a las 10:16 am
        Permalink

        ¿El proveedor está correcto? Qué cadena de conexión pusiste? Tienes el ODBC instalado? 🙂

        Respuesta
  • el 27 mayo, 2010 a las 10:13 pm
    Permalink

    tengo el mismo error que chuy con la { me puedes ayudar?
    te lo agradeceria mucho.
    p.d muy buen aporte lo de la claculadora saludos. dejo mi correo por si las dudas ssjtantonio@hotmail.com

    Respuesta
  • el 27 mayo, 2010 a las 10:53 pm
    Permalink

    El problema ha sido que los drivers del código son los 3.51 y los que descargais son los 5.1.6, solo debeis de actualizar a la versión que esteis utilizando.

    Quedaría:
    CON.Open “DRIVER={MySQL ODBC 5.1 Driver};DATABASE=” & NomBd & “;SERVER=” & Servidor & “;UID=” & Usuario & “;password=” & Pwd & “;PORT=3306;”

    O algo parecído, debeis de ver con que nombre se os guarda en el administrador de odbc.

    Un saludo!

    Respuesta
  • el 20 octubre, 2010 a las 3:57 pm
    Permalink

    Muchas gracias, la verdad que encontré muchos ejemplos en la red pero ninguno decía que había que descargar e instalar el conector. Estuve batallando hasta que encontré tu tutorial. Me has salvado el día.

    Saludos

    Respuesta
    • el 20 octubre, 2010 a las 5:32 pm
      Permalink

      Nada 🙂

      Precisamente está puesto por que yo en su día tambien tuve que pelearme con lo mismo!

      Ya sabes si tienes alguna consulta que no pueda ser abordada en el blog, puedes acudir a http://www.forohtml5.com 🙂

      Un saludo!

      Respuesta
  • el 12 febrero, 2011 a las 6:55 pm
    Permalink

    Hola agradecido por todo lo qe indicas en estos tutoriales u orientación, quisiera saber si podriamos contactarnos por el MSN para otras cosas mas qe necesito de forma urgente, agradeceria bastante tu ayuda.

    Respuesta
    • el 12 febrero, 2011 a las 8:11 pm
      Permalink

      Prefiero que las dudas las refieras aquí en el blog para que las respuestas les ayuden a otros como a tí.

      Un saludo!

      Respuesta
  • el 5 abril, 2011 a las 10:06 pm
    Permalink

    gracias buena aportacion esta mas explicado que anteriores gracias de ante mano

    Respuesta
  • el 6 abril, 2011 a las 6:18 pm
    Permalink

    tengo, alguna duda,

    primero al descargar el controlador odbc, lo instalo pero no se si hayque configurar algo,

    segundo, me tira elmismo error en {MySQL ODBC 5.1 Driver} el caracter no es valido,

    y por ultimo, analisando el codigo, veo que primero establecemos la coneccion, y luego la llamamos, pero no veo en ingun lugar, en donde visualisar los datos de la consulta,

    porfavor ayuda,,,

    Respuesta
  • el 9 abril, 2011 a las 5:59 pm
    Permalink

    Con respecto al caracter no válido, revisa la comillas, posiblemente no estén abiertas y cerradas, te recomiendo que hagas una búsqueda y reemplaces por «.

    Por otro lado, tambien te invito a visitar otro tutorial relacionado con este, el cual da algunos pasos más que en este tutorial no quedó reflejado.

    http://www.vertutoriales.com/index.php/conectar-visual-basic-6-vb6-con-mysql-pasos-previos-de-configuracion-para-eludir-problemas-o-errores/

    Un saludo!

    Respuesta
  • el 14 abril, 2011 a las 12:02 pm
    Permalink

    hola a todos soi carlos y probe el código y me da un error en “DRIVER={MySQL ODBC 3.51 Driver}» en los parentecis de llave y tanbien aquí

    Private Sub Command2_Click()

    Dim CON As ADODB.Connection

    me dise que o esta definido por el usuario

    si alguien me podria ayudar le estaria agradecido 😀

    Respuesta
    • el 14 abril, 2011 a las 12:52 pm
      Permalink

      Para el tema del “DRIVER={MySQL ODBC 3.51 Driver}” copialó sin las comillas esas, es decir, pega esto:
      «DRIVER={MySQL ODBC 3.51 Driver}»

      Con respecto al error de que no está definido por el usuario, tendrás que crear un botón que se llame Command2 (en la propiedad del name)

      Un saludo!

      Respuesta
  • el 18 abril, 2011 a las 2:01 pm
    Permalink

    Muchas gracias Funciono 😀

    Respuesta
  • el 18 abril, 2011 a las 2:59 pm
    Permalink

    Una pregunta sobre visual basic 6.0…… a
    sabes yo estoi haciendo la practica en el cesfam de tome y tengo que hacerles un programa que muestre los pacientes que se han echo em EMP y los que aun no lo terminan el cesfam maneja muchos datos en la base de datos del año 2007 hasta el de ahora 2011

    ahora viene la pregunta 😀

    Me gustaria saber si visual puede buscar en todas las tablas de la base de datos y mostrar algunos datos en un combo box o list box (rut.nombre.fecha del examen, sexo, edad etc) de la persona indicada con el campo clave rut
    no se si me explico bien… en otras palabras al agregar el rut de una persona que el combo box o listbox muestre los datos requeridos

    me podrian facilitar un codigo para eso si esk se puede claro 😀 y disculpen las molestias y muchas gracias de antemano por todo 😀

    y lo del face cuando llegue a la casa lo ago porque ahora estoi en la practiva y tiene bloqueado todas esa paginas jejeje

    Respuesta
    • el 18 abril, 2011 a las 3:34 pm
      Permalink

      No te entendí bien, pero sea lo que sea, seguro que se puede programar :D, te aconsejo que le eches un vistazo a alguno de estos tutoriales Visual Basic 6 (vb6), seguramente encuentre algo interesante.

      Respuesta
  • el 19 abril, 2011 a las 12:13 pm
    Permalink

    saben si me pueden ayudar tengo un problema con ese codigo en mi bd la logre conectar pero quiero que me muestre los datos que necesito en los text que estan allí pero cuando yo ingreso el rut
    en este codigo le puse yo el rut y los carga bien pero no quiero eso. quiero que al ingresar el rut los muestre. me podrian ayudar haber cual es mi error porfavor gracias

    Private Sub Command1_Click()
    On Error GoTo Ver

    Set recBd = New ADODB.RecordsetGo
    recBd.Open «select * from Miembros Where Rut =’10.590.151-8′», BD, adOpenStatic, adLockOptimistic

    ‘While Not RecBD.EOF
    Text1.Text = recBd.Fields(0)
    Text2.Text = recBd.Fields(1)
    Text3.Text = recBd.Fields(2)
    Text4.Text = recBd.Fields(3)
    Text5.Text = recBd.Fields(4)
    Text6.Text = recBd.Fields(5)
    Text7.Text = recBd.Fields(6)
    Text8.Text = recBd.Fields(7)

    ‘MsgBox «Su ID: » & RecBD.Fields(0) & » | » & » y su nombre » & RecBD.Fields(1), , «Información…»
    recBd.MoveNext
    ‘Wend

    Exit Sub
    End Sub

    Respuesta
    • el 19 abril, 2011 a las 12:50 pm
      Permalink

      Buenas Carlos,

      Te pego un código de un programa que está en producción
      Set RsAux = New ADODB.Recordset

      RsAux.Open «SELECT * FROM » & Tabla & » WHERE Codigo = » & txtCod.text, BD, adOpenDynamic, adLockOptimistic

      ‘Compruebo q el cliente exista
      If RsAux.EOF = False Then

      txtCliente1.text = «» & RsAux(1).Value
      txtCliente2.text = «» & RsAux(2).Value
      txtCliente3.text = «» & RsAux(3).Value
      txtCliente4.text = «» & RsAux(4).Value
      txtCliente5.text = «» & RsAux(5).Value
      txtCliente6.text = «» & RsAux(6).Value

      End If

      En principio esa lectura ha de funcionar correctamente, si te está fallando y no me dices en qué, no podré ayudarte. Comprueba que el Rut que estás pasandole esté correcto, quizás el -8 es un -B, no sé, ya me cuentas.

      Un saludo!

      Respuesta
  • el 30 mayo, 2011 a las 12:10 am
    Permalink

    Buen dia.
    Amigo tengo un par de dias tratando de conectar el VB6 con el MySQL y no lo he logrado.

    Puedes hacer una revicion a ver que falla?

    tengo instalado:
    -mysql-5.5.12-win32-2
    -mysql-connector-odbc-5.1.8-win32

    El codigo lo copie de aqui y lo ajuste a mi caso.

    Dim CON As ADODB.Connection
    Dim Comd As ADODB.Command
    Dim Rs As ADODB.Recordset

    Public Function Conectar_bd()

    Set CON = New ADODB.Connection
    Set Comd = New ADODB.Command
    Set Rs = New ADODB.Recordset

    CON.CommandTimeout = 40
    CON.CursorLocation = 1

    CON.Open «Driver={MySQL ODBC 5.1 Driver};DATABASE=icaHorse» & _
    «;SERVER=localhost;UID=root;password=WVadmin01;PORT=3306;»

    Set Comd.ActiveConnection = CON

    End Function

    Private Sub Command1_Click()
    Conectar_bd
    End Sub

    Me salta un error -2147467259

    Respuesta
  • el 7 junio, 2011 a las 2:16 am
    Permalink

    hola no se si me puedas ayudar pero cuando corro el codigo me sale un mensaje como este:

    error ‘-2147467259(80004005)’ en tiempo de ejecucion:
    [microsoft][administrador de controladores ODBC]No se encuentra el nombre del origen de datos y no se especifico ningun controlador predeterminado.

    de antemano muchas gracias por la ayuda y pues es un gran foro este adios

    Respuesta
  • el 11 junio, 2011 a las 5:46 am
    Permalink

    Muy bien explicado el tuto, felicitaciones, te expongo mi problema, estoy desarrollando un programa, puedo conectarme al MySql normal, puedo ejecutar mis sentencias, funciona espectacular, pero el mayor d etodos mis problemas, es de que si tengo una ventana abierta por mas d eun minuto y quiero ejecutar una setencia sql piero la conexion 🙁 la solucion que hice, fue de que cada vez q ejecute una sentencia cierro y vuelvo a abrir la conexion, pero al hacer esto, toda la informacion que hay en los datacombo o data grid se borran 🙁
    Existe alguna manera de tener la conexion abierta siempre? o alguna otra solucion??

    Te copio el error que me sale:
    Mysql Server has gone away

    Respuesta
    • el 11 junio, 2011 a las 8:13 am
      Permalink

      Supongo que la conexión la haces con un servidor en remoto así que la solución que encuentro es que no utilices controles directamente conectados a la bd, es decir, utiliza objetos para cargarlos en memoria y luego trabajas con ellos normalmente.

      Acabo de montarte un tutorial con código para que cambies la forma de utilizar los objetos:
      Cargar datos en un ListView usando MySQL y VB6

      Respuesta
  • el 11 junio, 2011 a las 3:10 pm
    Permalink

    Gracias por tu rapida respuesta.

    Si, yo tambien hago lo mismo que tu

    Abro la conexion
    cargo por ejemplo un data combo

    Set rs = ListaDatos(CNX, «SELECT * FROM USUARIO WHERE USU_TIP = ‘DOC’ ORDER BY USU_NOM»)
    Set DTLDOC.RowSource = rs
    DTLDOC.ListField = «USU_NOM»
    DTLDOC.BoundColumn = «USU_COD»

    y hasta alli todo bien, si interactuo con los controles sin esperar tiempo, todo muy bien, pero si dejo que transcurrar aprox un minuto sin hacer nada y quiero por ejemplo insertar un registro con una sentencia sql, haciendo uso de la conexion, me aparece este error
    Mysql Server has gone away

    que me imagino es porque la conexion con el servidor se pierde por haber estado inactivo algun tiempo.

    Lo que hago para solucionar eso es llamar a la funcion para conectarme a la bd, es decir la cierro y la vuelvo a cargar, pero al cerrarla, la informacion cargada en el data combo se borra, como si no hubiera llenado nada.

    Creo que ahora especifique mejor mi problema, espero puedas ayudarme
    porque la otra solucion seria volver a recargar todo y guardar todos los valores ya seleccionados en variables, pero me parece que seria un proceso que demoraria mucho ya que es una conexion remota

    Respuesta
  • el 11 junio, 2011 a las 8:11 pm
    Permalink

    Correcto, entendi lo que me quieres decir, pucha ahora si tengo q buscar controles que guarden toda mi info mmm, a ver que consigo, si se me ocurre alguna otra solucion lo posteare aqui, muchas gracias por tu tiempo

    Respuesta
    • el 11 junio, 2011 a las 9:45 pm
      Permalink

      Mi forma de trabajar si es en listas utilizo directamente un listview, si tienes que realizar una carga en diferentes cajas de textos, lo que hago es crear un index en las diferentes cajas, de manera que puedo recorrer el indice correspondiendo junto con el campo de la fila de la consulta.

      Es decir
      txtCaja(x).text = rs(x).value;

      X sería un valor dentro del bucle. No sé si era exactamente RecordSet(x).value, pero busca por ese camino.

      Un saludo!

      Respuesta
  • el 11 junio, 2011 a las 7:40 pm
    Permalink

    Sí entendí a la primera, intento explicarme mejor, y usando tu propia solución de cargar en «variables» lo que yo estoy haciendo es cargar en un objeto ajeno a esos datos y me explico.

    Tú abre la conexión y conectas un objeto a esos datos. Al desconectar, esos datos desaparecen.

    La solución es cargar esos datos en un objeto independiente, el tiempo de carga es ínfimo, yo trabajo así y no se nota el tiempo, dependerá de la conexión y de la consulta, pero el resultado es igual, abres conexión, envias consulta, lees datos, muestras, <- en ese último paso es donde se crea la diferencia, yo lo cargo en un objeto ajeno y tú sigues conectado a la fuerza. ¿Asi sí? 😀

    Respuesta
  • el 12 junio, 2011 a las 3:47 am
    Permalink

    hola hermano gracias por la excelente explicacion, pero tengo un problema y no se por donde empezar.
    resulta que estoy realizando una aplicacion que posee dos textbox y un commandbutton, en donde el textbox1 es usuario, el textbox2 es clave y el commandbutton es entrar.
    logre hacer la conexion gracias a tu explicacion pero no he podido hacer una consulta que verifique lo introducido en los textbox sea igual a lo que esta en mi base de datos mysql para poder hacer un form.show a otro formulario, por favor si puede colocar una estructura de como seria el codigo, gracias de antemano

    Respuesta
    • el 12 junio, 2011 a las 10:49 am
      Permalink

      Buenas HackBlack,

      Si buscas en la página encontrarás más artículos que pueden venirte bien, te aconsejo este último que es para cargar datos en un listview Pero que puedes utilizar para cargarlo en una caja de texto o donde quieras 🙂

      Respuesta
  • el 12 junio, 2011 a las 6:27 pm
    Permalink

    muchas gracias amigo me has ayudado mucho la verdad es bonito saber que existen foros como estos. y pues ya bueno no para terminar pero pues si por el momento sin pasar a molestar claro me gustaria que me ayudaras con este codigo.

    Dim buscando As Integer, Criterio As Integer

    buscando = Val(Text1.Text)

    If Text1.Text = «» Then Exit Sub
    Criterio = «Numero_Registro =» & buscando

    ‘Numero_Registro es un campo de una tabla de mysql
    pero me sale error me dice que no coinciden los tipos y me remarca : Criterio = «Numero_Registro =» & buscando que puedo hacer
    de antemano mis agradecimientos y felicidades por el post este

    Respuesta
    • el 12 junio, 2011 a las 10:28 pm
      Permalink

      Buenas Baltasar

      Si te fijas en la declaración de tipo de Criterio As Integer <—-
      Y estás realizando una asignación de "Numero_Registro=" <— que es de cadena.

      Posiblemente el error de tipos sea ese 😉

      Una cosilla, si son dudas fuera del propio artículo, te pediría por favor que realizaras la consulta en el foro, para ello haz click en «Preguntenos su duda aquí» Es para tener más o menos organizado el blog y el código!

      Un saludo! 🙂

      Respuesta
  • el 12 junio, 2011 a las 10:39 pm
    Permalink

    ok gracia en verdad ese era el problema wow gracias

    buen post y
    espero no molestarte con mis dudas la verdad esque estoy haciendo un pequeños sistemita y pues tengo algunas dudas ya te las ire planteando si no te moslesta por todo GRASIAS

    BUEN POST

    Respuesta
    • el 13 junio, 2011 a las 8:10 am
      Permalink

      Es el cometido de la página, enseñar a la gente que quiera aprender, solo una cosa, si es una pregunta no relacionada con el artículo, por favor, realizalá en el foro 😉

      Gracias

      Respuesta
  • el 22 junio, 2011 a las 11:22 pm
    Permalink

    y esa misma aplicacion si la quiero usar en otra maquina y la base de datos esta en el servidor como accedo desde la red, he leido algunos tutos y dicen que en el driver hay que colocar un % al root es decir root% o %root o root%@ pero nada de eso me ha funcionado, en lugar de localhost obviamente coloco la direccion ip del servidor pero m m tampoco solo funciona de manera local que hago?

    Respuesta
    • el 23 junio, 2011 a las 9:32 am
      Permalink

      Mira los permisos del servidor de mysql al que accedes y mira tambien los permisos del usuario con el que accedes. Tiene que tener permiso para poder acceder desde fuera, por supuesto tener los puertos abiertos, y demás condiciones para que puedas acceder desde un pc remoto.

      Respuesta
  • el 10 agosto, 2011 a las 4:43 am
    Permalink

    Muy útil la info presentada aca, hace varios días que estaba buscando info e intentando conectar ADODB con el server remoto de mysql !
    Exelente! muchas gracias!

    Respuesta
  • Pingback: Error CommandText no existe el objeto ADO - Tutoriales y Videotutoriales en www.vertutoriales.com

  • el 15 enero, 2012 a las 3:41 am
    Permalink

    una consulta.

    como puedo hacer para que los caracteres de » y ‘ ‘ no me arrojen problemas al mandarlo a grabar a mysql, ya que como son caracteres internos especiales para las cadenas me vota error ….

    saludos
    edu

    Respuesta
      • el 15 enero, 2012 a las 7:04 pm
        Permalink

        Disculpa, en visual basic puedes poner dobles comillas por ejemplo:
        insert into tabla (campo1, campo2) values («» & campo1 & «»‘, «» & campo2 & «»)

        Respuesta
  • el 16 enero, 2012 a las 1:57 am
    Permalink

    Hola amigos eh seguido a paso el manual pero bueno yo estoy en un proyecto el cual es con MYSQL entonces me quiero conectar desde visual basic 6 a una base de datos y que en mi proyecto aparesca alguna informacion en una caja de textbox ejemplo bueno entonces mi modulo es esta:

    DB.bas

    Public Conexion As New ADODB.Connection
    Public usuarios As Recordset
    Sub conectarBD()
    Set Conexion = New ADODB.Connection
    Conexion.ConnectionString = «DRIVER={MySQL ODBC 3.51 Driver};SERVER=localhost;DATABASE=clase;UID=root;PWD=;OPTION=3»
    Conexion.Open
    Conexion.CursorLocation = adUseClient
    A = Conexion.State
    If A = 1 Then
    MsgBox («Base de Datos Conectada»)
    End If
    End Sub

    Entonces en el form1 tengo este codigo:

    Private Sub datos_Click()
    Form3.Show
    End Sub

    Private Sub salir_Click()
    End
    End Sub
    Private Sub txtuser_Click()
    On Error GoTo Ver
    Dim Conexion As ADODB.Connection
    Dim Conexion As ADODB.Record
    DB.conectarBD
    Conexion.Open «SELECT * FROM » & game & » WHERE user = » & txtuser.Text, BD, adOpenDynamic, adLockOptimistic
    If Conexion.EOF = False Then
    End If
    End Sub

    Pero al probar no me sale nada que puedo estar haciendo mal ?

    Respuesta
    • el 16 enero, 2012 a las 8:34 am
      Permalink

      Cuando el programa no te devuelve ningún error, te aconsejo que crees un punto de ruptura y vayas trazando poco a poco el código de manera que puedas ir viendo que hace en cada momento.

      Para poner puntos de ruptura en la ejecución, debes de pulsar con el ratón a la izquierda del margen, donde está el número de linea, aparecerá un punto rojo, luego puedes pulsar F8 para ir linea por linea o si quieres seguir con la ejecución normalmente pulsas F9, un punto interesante en el debugger es que puedes arrastrar la linea de ejecución (en color amarillo) con el ratón al punto del programa que quieras, de tal manera que puedas ver varias veces una misma parte.

      Espero que te ayude.

      Un saludo!

      Respuesta
  • el 17 enero, 2012 a las 2:10 am
    Permalink

    Hola lo eh echo y me sigue dando el problema no sera que eh echo algo mal el codigo que no llega a conectar a la DB o no lee las tablas que contiene mi DB¨?.

    Algo tiene que andar mal?

    Respuesta
    • el 17 enero, 2012 a las 8:37 am
      Permalink

      ¿El qué has hecho?

      Si has trazado el código línea por línea podrás localizar algo que no detectas solo ejecutándolo.

      Revisa de todas maneras la base de datos si tiene permisos para acceder de forma remota. Pero si no te da ningún error, te recomiendo que vuelvas al comentario anterior y revises linea por linea utilizando el debugger de visual basic que es muy útil.

      Un saludo!

      Respuesta
  • el 14 abril, 2012 a las 6:23 pm
    Permalink

    Comd.CommandText = «SELECT * FROM enroll»

    me sale que se requiere un objeto error 424

    Respuesta
  • el 29 abril, 2012 a las 7:00 pm
    Permalink

    cuando trato de conectarme me sale que la tabla «neodbex.rev_config» no existe…

    la tabla es rev_config y la base de datos es neodbex, no se porque los ha unido a ambos 🙁

    Respuesta
  • el 30 abril, 2012 a las 9:23 pm
    Permalink

    gracias por responder; he hecho el select completo y me sale el mismo aviso, que la tabla no existe. 🙁

    Respuesta
  • el 4 mayo, 2012 a las 11:42 pm
    Permalink

    Parece que el tema es con el servidor… ya que he probado en otras maquinas y sale el mismo error :S

    Respuesta
  • el 27 julio, 2012 a las 6:43 pm
    Permalink

    Estoy relizando una aplicación para una biblioteca, algo sencillo, utilizo el modulo para comunicarme con la base de datos y cree una variable string que uso para pasar consultas desde el formulario al modulo, y un recordset para guardar los resultados de esa consulta de manera que:
    FORMULARIO

    «registro = «Select * from bibliotecariotelf where codempleado =’ » & (rsusuario!codempleado) & » ‘»
    If repetel(rstelefono, registro) Then
    Set frmbibliotecarionuevotelefono.DataGrid1.DataSource = rstelefono
    End If»

    MODULO:
    «Public Function repetel(ByVal rstelefono As Recordset, ByVal registro As String) As Boolean
    rstelefono.Open , registro, Conexion, adOpenDynamic, adLockOptimistic
    generaregistro = True
    consultarepetel = True
    End Function »
    Ahora bien, en algunos casos funciona, y en otros es raro pero me da un error ,no coinciden los tipos. alguien puede entender por que?
    Muchas gracias!

    Respuesta
    • el 28 julio, 2012 a las 4:25 pm
      Permalink

      ¿En qué linea te da el error?

      El error de «no coinciden los tipos» es por que estás intentando asignar un tipo de variable en otro que no es del mismo tipo, tal y como te indica el error, esto puede ser intentar asignar un string a un integer por ejemplo, pero sin saber en que linea te lo está dando es difícil de determinar exactamente el problema que tienes.

      Te aconsejaría que trazaras el código utilizando el debugger que trae Visual Basic 6 que es muy potente, pulsa F9 en algún lugar cercano al error o en el mismo lugar y mira exactamente que variables está intentando asignar, puede que estén vacías o muchas otras posibilidades que nos llevaría bastante tiempo enumerar.

      Prueba lo que comenté y luego nos cuentas.

      Un saludo!

      Respuesta
  • el 19 octubre, 2012 a las 6:37 pm
    Permalink

    hola oie solo para agradecerte por toda tu informacion es muy buena
    sabes yo empezare hacer un proyecto en mis residencias de acceso de personal mediante huella digital espero y cualquier duda me puedas ayudar de antemano gracias

    Respuesta
    • el 20 octubre, 2012 a las 7:18 pm
      Permalink

      No he tenido oportunidad de tener acceso a un lector de huella digital, si he utilizado el nueva DNIe que hay en españa que lleva un chip aunque tampoco terminé programándolo, solo estuve viendo algunas opciones interesantes que traía y el formato y demás que se podía rescatar desde el chip.

      De todas maneras, cualquier duda que tengas puedes postear en algún artículo relacionado del blog o escribir en el foro, http://foro.vertutoriales.com/index.php?action=post;board=1.0

      Un saludo y gracias por el comentario.

      Respuesta
  • el 14 noviembre, 2012 a las 2:30 pm
    Permalink

    buenos dias…. tengo muchas problema en el vb6 para conectar al bd de mysql, todavia me falta mucho por aprender. Tengo todo instalado… cuando pongo el codigo me corre fino. como yo compruebo que esta conectado a base de datos ya…? El codigo que publicaste abajo, tambien lo probe y no me corre, me sale un error diciendo que no esta definido de sub y function algo asi… estoy haciendo un programa relacionado de sistema experto…. que yo necesito conectar a bd con el vb6…. como yo hago en una ventana me muestra una pregunta, lo respondo y me muestra el otro enseguida sin salir de esa ventana con el mismo label? disculpa por tanta preguntadera…@@ y muchas gracias

    Respuesta
    • el 14 noviembre, 2012 a las 6:38 pm
      Permalink

      Vamos por partes, primero tendremos que conectar a MySQL y comprobar que funciona, has creado las tablas en el servidor de base de datos (MySQL)? si has creado alguna tabla, inserta algunos registros a mano y procederemos lanzando una consulta a esa tabla.

      Con respecto el error que te puede dar el código, prueba a revisar las comillas, tienen que ser comillas dobles, pero sin ningún formato, es posible que te ponga otro caracter ascii. En otras palabras, repasa cada una de las comillas y ve poniendo a mano las comillas dobles que veas para estar seguro de que están bien puestas, el copy paste puede dar problemas.

      Cuando tengamos esta parte, continuaremos con lo siguiente si te parece bien, es un «divide y vencerás» que supongo ya habrás estudiado 🙂

      Respuesta
  • el 19 noviembre, 2012 a las 2:32 am
    Permalink

    la tabla de mysql si lo tengo creado, el problema es que no se como hago para la consulta en vb a mysql, vi dos veces clase de vb y nada me ensenio el profesor….@@ el error de la comillas lo revisen y estan bien… otra pregunta para conectar el bd(toad of mysql) a vb es solamente poner este codigo:
    Driver = «(MySQL ODBC 5.1 Driver);Server=localhost;Database=veterinario; User=root;Password=1234;»
    ese es todo? luego para consulta necesito otro string mas… y no me la dieron :s

    Respuesta
  • el 19 noviembre, 2012 a las 2:35 am
    Permalink

    ahhh y otra cosa… sobre el ADODB me podria decir que componente exactamente es…? ya que ante agregue microsoft ADO Data control 6.0 (OLEDB) si me salio bn… y ultimamente le agrego otra vez no me sale…. solo sale Adodc…mas no ADODB

    Respuesta
  • el 19 noviembre, 2012 a las 2:00 pm
    Permalink

    Si ese página ya la eh visto, el driver tambn lo baje de ahí…. Los 2 tutoría les? Te refiere ah los variables q este arriba como base de datos, servidor, usuario y código?

    Respuesta
  • el 19 noviembre, 2012 a las 2:23 pm
    Permalink

    Me refiero que si sigues los dos tutoriales, no debes de tener problema está toda la información para hacerlo poco a poco, no sé si es por que vas al «grano» copiando y pegando y posiblemente te dejes cosas atrás.

    Lo que no sé es exactamente donde te encuentras.para poder guiarte, lo mejor es que crees un nuevo proyecto y comiences desde 0, mirando primero el tutorial que enlacé en el comentario anterior y continues luego por meter el código que trata con la base de datos.

    Otra cosa… tienes la base de datos creada con permisos de ese usuario y demás? donde tienes la base de datos de MySQL?

    Seguimos en contacto.

    Respuesta
  • el 20 noviembre, 2012 a las 4:49 am
    Permalink

    Lo de permiso si no se… Sería q me podría decir como si no es mucha molestia…. Si quiere pásame tu correo y te paso las pantallas para q lo ve y me dice donde esta el error… No se q dirías tu? O pego el código aquí?

    Respuesta
  • el 11 julio, 2013 a las 5:15 pm
    Permalink

    MEN ERES UNA REATA ERECTA, ME SACASTE DE APUROS CON LOS CODIGOS Y LA NETA ERES UN CHINGON

    Respuesta
    • el 11 julio, 2013 a las 11:52 pm
      Permalink

      ¿Eso es un halago? 😀

      Gracias… supongo 😉 todo sea ayudar con los códigos de visual basic y cualquier lenguaje de programación o rollo técnico 😉

      Saludos!

      Respuesta
  • el 24 septiembre, 2013 a las 9:14 pm
    Permalink

    Hola!!!

    todo esto esta genial pero me gustaría saber como le hago para realizar una inserción anexo código que tengo

    Comd.CommandText = «INSERT INTO cajeros VALUES (» & CInt(lblCaja.Caption) & «,'» & txtnom.Text & «‘,'» & txtapp.Text & «‘,'» & txtapm.Text & «‘, , ,'» & Estad & «‘,'» & txtpw1.Text & «‘)»
    Rs.CursorLocation = adUseClient
    Rs.Open Comd, , 1, 1

    Respuesta
    • el 25 septiembre, 2013 a las 7:40 am
      Permalink

      Tal y como tienes la consulta de inserción, ¿qué problema te da?

      Lo más fácil es que pruebes sin valores introducidos por el usuario y pruebes directamente, por ejemplo:
      Comd.CommandText = “INSERT INTO cajeros VALUES («100″,»nombre»,»app»,»apm»,»0″ ,»0″ ,»estadp»,»pwd»)»

      Ya que no sé el problema que tienes es lo que se me ocurre que puedas hacer para las pruebas.

      ¿Los objetos los tienes creados? el Comd. y el Rs (recordset)

      Ya me cuentas.

      Un saludo!

      Respuesta
  • el 25 septiembre, 2013 a las 6:32 pm
    Permalink

    Muchas gracias con eso quedo, el problema es que mande un valor nulo cundo en donde no se aceptan

    saludos…

    Respuesta
  • el 30 septiembre, 2013 a las 10:55 pm
    Permalink

    HOLA!! de nuevo… como inserto toda mi consulta en un msflexgrid ya que le coloque
    ….
    rs.open comd,,adopendynamic, adlockbatchoptimistic
    MSFlexGrid.text=rs
    …..
    el error dice

    error de compilacion:
    se esperaba: identificador o expresion entre parentesis

    saludos

    Respuesta
    • el 1 octubre, 2013 a las 8:17 am
      Permalink

      Buenos días Orión

      Donde tienes la consulta es en comd, o al menos así lo creo, ya que el Rs (recordset) es el objeto con el que pasarle los parámetros que bien has puesto, el comd con la consulta, y el resto de parámetros de como abrir y realizar la consulta.

      Resumiendo:
      msflexgrid.text = comd

      Un saludo!

      Respuesta
  • el 2 octubre, 2013 a las 8:13 pm
    Permalink

    Hola!!! ya lo probé y no me queda ;( este es el error que me marca tambien te anexo la función completa saludos.

    —-Error
    error ‘424’ en tiempo de ejecución:

    se requiere un objeto.

    —Función–

    Public Function Datos()
    Dim s As Integer
    Conectar_bd
    Comd.CommandText = «SELECT co_colonia AS ‘No COLONIA’, co_nombre AS ‘COLONIA’,co_tipo AS ‘TIPO COLONIA’,co_cp AS ‘CODIGO POSTAL’ FROM colonias »
    Rs.CursorLocation = adUseClient
    Rs.Open Comd, , adOpenDynamic, adLockBatchOptimistic

    MSFlexGrid.tex = Comd

    End Function

    Respuesta
  • el 3 octubre, 2013 a las 6:57 am
    Permalink

    El MSFlexGrid.tex <-- tiene un error de sintasis, está mal escrito, es: MSFlexGrid.text, aparte te recomiendo pasarse parámetro completo que guarda el valor, en este caso: Comd.CommandText Quedando: MSFlexGrid.text = Comd.CommandText Espero que te sirva. Un saludo!

    Respuesta
  • el 4 octubre, 2013 a las 4:12 pm
    Permalink

    hola ya quedo con eso, solo que el flexgrit se llema con el select y no con el resultado del mismo
    es desir veo
    SELECT co_colonia AS ‘No COLONIA’, co_nombre AS ‘COLONIA’,co_tipo AS ‘TIPO COLONIA’,co_cp AS ‘CODIGO POSTAL’ FROM colonias
    — y no —
    No COLONIA COLONIA TIPO COLONIA CODIGO POSTAL
    001 ALTAVISTA H

    SALUDOS

    Respuesta
    • el 6 octubre, 2013 a las 12:07 pm
      Permalink

      Tienes que atacar el recordset, es decir,

      rs(1).value o en su caso rs!colonia

      Es en el recordset donde se devuelven los resultados de la consulta.

      Salud!

      Respuesta
  • el 1 noviembre, 2013 a las 10:03 pm
    Permalink

    Buen dia Chicos! Yo tengo un problema. Lo pude conectar perfectamente, el tema es cuando lo quiero instalar en una maquina que tiene Windows 7. Lo instale como administrador. al igual que el obdc 3.51. El problema es cuando lo quiero abrir me sale un mensaje : «ERROR 53 ‘ NO ENCUENTRA EL ARCHIVO ‘ «.
    No se si debo registrar algo y como..
    Muchas Gracias!!!

    Respuesta
  • el 20 mayo, 2014 a las 5:12 pm
    Permalink

    No me puedo conectar a la base de datos me podrian ayudarr??

    Respuesta
    • el 20 mayo, 2014 a las 7:22 pm
      Permalink

      ¿Qué error te da exactamente al intentar conectar vb6 con mysql? Danos algo más de información y podremos darte la ayuda 😉

      Respuesta
  • el 17 junio, 2014 a las 7:13 pm
    Permalink

    Buenas tardes:
    tengo una pregunta, estoy conectándome a una base de mysql desde visual basic por medio de un formulario de Access 2010 , y necesito que los resultados me los meta en un cuadro de texto, sin embargo solo me muestra el ultimo registro del recorset, me dicen que debo asignar al «origen del registro del formulario» es decir en el RecordSource del formulario el recordset que hago para consultar la base , pero no se hacer esto podrían ayudarme, es urgente le agradecería mucho

    Public Function prueba()

    Conectar_bd («recaudo»)

    Comd.CommandText = «SELECT cot_cotizante FROM consolidado_final WHERE emp_aportante=’860351923′»

    Rs.Open Comd, , 1, 1

    Form_Formulario1.RecordSource = Rs

    Rs.MoveFirst
    While Not Rs.EOF
    cot_cotizante = Rs(«cot_cotizante»)
    Form_Formulario1.Texto0 = cot_cotizante
    Rs.MoveNext

    Wend

    End Function

    Respuesta
    • el 18 junio, 2014 a las 7:17 am
      Permalink

      Si quieres añadir más registros, tendrás que sumarlos como en una cadena, o utilizar otro objeto por ejemplo un listview para añadir más filas, tantas como tengas en la base de datos.

      Como solución rápida a lo que pides según tu código y para añadirlo en un textbox que entiendo que es cot_cotizante, quedaría así:
      cot_cotizante = cont_cotizante & » – » & Rs (“cot_cotizante”)

      La asignación al Texto0.text lo puedes hacer fuera del bucle, ya que en la variable cot_cotizante se van a ir guardando todos los registros de la consulta a la base de datos.

      Espero que te ayude, sino, puedes volver a preguntar por si no te entendí bien.
      Un saludo!

      Respuesta
  • el 18 junio, 2014 a las 4:17 pm
    Permalink

    buenos días gracias por contestar tan rápido, ya pude resolver mi problema fue muy sencillo al formulario le asigne el recordset y al campo le asigne el resultado del recordset, me arrojaba error porque estab era utilizando RecordSource y por ahí no era al final el código quedo asi

    Public Function prueba()

    Conectar_bd («recaudo»)

    Comd.CommandText = «SELECT cot_cotizante FROM consolidado_final WHERE emp_aportante=’860351923′»
    Rs.CursorLocation = adUseClient
    Rs.Open Comd, , 1, 1

    Set Form_Consulta1.Recordset = Rs

    Form_Consulta1.cot_cotizante.ControlSource = «cot_cotizante»

    End Function

    si alguien necesita ayuda con formularios de Access con conexiones externas por visual basic me pueden escribir a mi correo juanchvere@hotmail.com

    Respuesta
  • el 18 junio, 2014 a las 5:11 pm
    Permalink

    Buenas Juan Carlos

    Gracias por la información y por el ofrecimiento, seguro que a más de uno le parece interesante.

    Un saludo!

    Respuesta
  • el 13 agosto, 2014 a las 3:56 pm
    Permalink

    Quisiera saber si pueden ayudarme resulta que yo dentro de la base tengo varias tablas las cuales quiero levantar todos sus nombre me gustaría saber como lo tengo que hacer no me doy cuenta como levantar dichas tablas desde ya muchas gracias por la ayuda que me puedan dar

    Respuesta
  • el 13 agosto, 2014 a las 5:07 pm
    Permalink

    Tengo una Base en Mysql la cual esta compuesta por varias tablas lo que quiero hacer es con solo saber el nombre de la base levantar las tablas con access lo puedo hacer pero en mysql no me pueden ayudar gracias por contestarme

    Respuesta
  • el 13 agosto, 2014 a las 5:22 pm
    Permalink

    No entiendo lo que quieres decirme, te dejo algunas preguntas:

    ¿Lo que quieres es realizar una conexión con ODBC desde Access a MySQL?
    ¿Migrar de MySQL a Access?
    ¿Leer la tabla en MySQL y crearla en Access por código VB6?

    No se me ocurre otra cosa que pueda significar lo que comentas 🙂

    Si me explicas más a grosso modo lo que necesitas podré ayudarte, pero no consigo entender lo que necesitas. Salud!

    Respuesta
  • el 13 agosto, 2014 a las 7:52 pm
    Permalink

    Hola tengo una base que esta en mysql y la quiero consultar en visual basic 6
    Dicha base la genera el cliente y yo la quiero levantar con todas las tablas que contenga
    Ejemplo Nombre de la Base : Empresa y dentro de esta tengo
    Remitos
    Facturas
    Acuses

    A su vez la tabla Remito tiene los campos
    IdRemito
    Nremito
    Nempresa
    Narticulo
    Ncantidad
    Precio
    Etc

    No se si me explico bien quiero levantar las tablas que forman la base Empresa con sus tablas Remito , Facturas , Acusas
    El programa lo estoy haciendo en Visual Basic 6 la base esta en Mysql
    Conectarme a la base no tengo problema el problema es levantar las tablas no se como hacerlo si podes ayudarme te daría las gracias

    Desde ya muchas gracias

    Respuesta
    • el 14 agosto, 2014 a las 8:43 am
      Permalink

      Si ya has conectado, lo que te faltaría sería lanzar la consulta a la tabla que quieras. Para ello tendrás que hacer uso de los RecordSet. Si ya has conectado, solo te falta parte de este código:

      ‘Esta linea realiza la consulta a la tabla remito y traigo todos los campos con *
      Rs.Open “SELECT * FROM Remito”, BD, adOpenDynamic, adLockOptimistic ‘aquí es donde hacemos la consulta a la tabla de la base de datos Access

      //recorro el recordset hasta que llegue al final
      while Rs.EOF = false

      cbComboBox.AddItem Rs!Nremito //aquí añado en un combobox el Nremito de cada registro que está en el recordset

      Rs.MoveNext //avanzo el recordset

      wend //fin del bucle de lectura del recordset

      Con esto más o menos deberías de realizar la primera lectura de las tablas. Te recomendaría revisar este otro tutorial:
      http://vertutoriales.com/anadir-informacion-a-un-combobox-de-una-tabla-de-access-desde-visual-basic-con-videotutorial/

      Está atacando a una base de datos Access, pero la operativa es la misma, lo único que cambia es la conexión a la base de datos, pero luego la lectura y la manera de funcionar es exactamente la misma.

      Espero haber entendido la pregunta y que la respuesta se acerque a lo que necesites. De todas maneras si necesitas algo más, por aquí estaré.

      Un saludo!

      Respuesta
  • el 21 noviembre, 2014 a las 8:18 pm
    Permalink

    Conecte con éxito BD Mysql, crear 02 botones una para buscar y guardar/cancelar, la búsqueda seria por DNI y los datos encontrados se visualicen en sus respectivos cuadro de texto y al hacer clic en guardar esta se guarde en una hoja de Excel. Y como se puede hacer como archivo «exe»

    Respuesta
    • el 22 noviembre, 2014 a las 9:45 am
      Permalink

      Buenas Miguelón

      Me has realizado la pregunta bastante amplia, intentaré resumir para no extenderlo mucho.

      ¿Entiendo que crear dos botones de guardar y cancelar no será un problema no? Sobre todo si has conseguido conectar con la base de datos, la búsqueda tendrá que estar relacionada con la tabla, supongo que será datos de clientes, usuarios o algo así, esta consulta se lanzaría desde el código este:
      comd.CommandText = “SELECT * FROM Usuarios”

      Pero en vez de hacer tal consulta, sería algo como: SELECT * FROM Tabla WHERE campoDNI = txtDNIbusqueda.text

      El campo de txtDNIBusqueda es una caja de texto que has debido añadir al proyecto con ese nombre para luego poder utilizarlo en la consulta.

      Para recoger los datos tendrías que recorrer el objeto rs (recordset). Te recomiendo que revises este otro video con Acceso a base de datos desde vb6, que aunque es para access, el código de consultas y toma de datos es exactamente igual, lo único que cambia es la conexión.

      Con respecto la exportación a Excel, te recomendaría lo más rápido guardar un fichero en formato de texto plano, separado por «;» . Este tipo de fichero es un estandar y se utiliza con la extensión CSV. Este tipo de fichero automáticamente es reconocido por Excel y muchas otras hojas de cálculo como OpenOffice por ejemplo.

      Finalmente, para crear un archivo ejecutable, nada más sencillo: Ve al menú Archivo y pulsa en la opción «Generar NombreDeTuProyecto Exe» donde «Nombre de tu proyecto» es el nombre con el que has designado tu proyecto (como no podía ser de otra manera)

      Con esto en principio quedaría todo explicado, te recomendaría ir paso por paso y si tienes cualquier duda, ve pegando código de lo que vas haciendo y explícame al detalle para poder ayudarte con cada paso.

      Por aquí me tienes. Saludos!

      Respuesta
  • el 21 noviembre, 2014 a las 8:20 pm
    Permalink

    Cual seria la programación y que se necesita para q corra como ejecutable.

    Respuesta
    • el 22 noviembre, 2014 a las 9:47 am
      Permalink

      La programación la puedes ver en el enlace que te puse y para que corra como ejecutable, es posible que con crear solo el ejecutable como te comentaba no te funcione por tema de librerías, tendrás que crear una instalación.

      Para ello tendrás que ir al «Asistente de Empaquetado y Distribución» que suele venir con el propio paquete de instalación de Visual Basic 6.

      Espero haberte aclarado las dudas.
      Un saludo!

      Respuesta
  • el 4 diciembre, 2014 a las 9:12 pm
    Permalink

    Siguiendo la misma consulta; conecte a Mysql, tengo el boton de busqueda, canlelar. Como se haria al dar clic en guardar que el resultado de la busqueda se guarde en una tabla de una BD en Access con la fecha que se efectuo la busqueda y agregar botones con opciones segun fecha para sacar reportes visualizados en excel.

    Agradesco tu aporte.

    Respuesta
  • el 5 diciembre, 2014 a las 9:08 am
    Permalink

    Para guardar los resultados, sería recorrer el rs e realizando inserciones en la tabla de la base de datos que hayas creado para ello, es igual con:
    rs.open

    Lo que cambia es la consulta SQL de su interior tal que así:
    Rs.Open «INSERT INTO TablaGuardar (campo1, campo2… campoX) VALUES (valor1, valor2, … valorX)

    El valor de la fecha actual, puedes pasarla por vb6 utilizando la función date(), recuerda formatear el valor devuelto para que lo acepte tu base de datos.

    Para terminar, la exportación a excel, para no complicarlo, crearía un fichero CVS separado por ;, en definitiva es un fichero de texto plano que separa los valores por ;, este fichero es un estandar y la gran mayoría de hojas de cálculo como Excel, OpenOffice, etc… lo interpretan sin problema.

    Espero haberte aclarado algo, de todas maneras como en preguntas anteriores, si explicas un poco más en profundidad podré ayudarte más concretamente.

    Un saludo!

    Respuesta
  • el 9 diciembre, 2014 a las 8:32 pm
    Permalink

    el error me da en la linea q esta con doble «»

    Private Sub Command1_Click()
    ado_open

    Dim rsMySql As ADODB.Recordset
    Dim strMySql As String

    Set rsMySql = New ADODB.Recordset

    strMySql = «SELECT * FROM I_atencion
    where ate_idatencion=txtDNIbusqueda.text»

    «»»rsMySql.Open strMySql, conexionadoMySql»»»

    If rsMySql.EOF Then
    Print «No hay registros»
    Else
    While Not rsMySql.EOF
    Print rsMySql!ate_apematerno
    rsMySql.MoveNext
    Wend
    End If
    rsMySql.Close
    ado_close
    End Sub

    Respuesta
  • el 9 diciembre, 2014 a las 8:46 pm
    Permalink

    Mi conexion a BD es de la siguiente forma; que es lo que falta agregar

    Private Const DRIVER_MYSQL As String = «DRIVER={MySQL ODBC 5.1 Driver};»
    Private Const OPCIONS_MYSQL As String =
    «SERVER=127.0.0.1;PORT=3306;DATABASE=prueba;USER=root;PASSWORD=0126lolo;»
    Public conexionadoMySql As ADODB.Connection
    Sub ado_open()
    Set conexionadoMySql = New ADODB.Connection
    conexionadoMySql.Open DRIVER_MYSQL & OPCIONS_MYSQL
    End Sub
    Sub ado_close()
    conexionadoMySql.Close
    End Sub

    Respuesta
  • el 10 diciembre, 2014 a las 9:06 am
    Permalink

    Entonces está claro que el problema es de la conexión con la base de datos o en su consulta (ya que no especificas el error solo la linea donde lo da)

    Tengo varias preguntas:
    ¿Instalaste los drivers de MySQL?
    ¿El server lo tienes en la ip 127.0.0.1?
    ¿Existe la tabla a la que consultas?
    ¿Trae algún valor la caja de textoDNI?

    Para poder solventar un error, necesito saber exactamente el error, en principio el código a simple vista parece correcto.

    😉

    Respuesta
  • el 10 diciembre, 2014 a las 10:18 pm
    Permalink

    En el campo textodni existen datos, pero al ejecutar el proyecto en el cuadro de texto esta text1 borro y ingreso el dni a buscar y me da el error

    Respuesta
  • el 11 diciembre, 2014 a las 12:17 am
    Permalink

    Prueba a poner lo siguiente:
    if trim(txtDNIbusqueda.text) <> «» then

    strMySql = “SELECT * FROM I_atencion
    where ate_idatencion= » + txtDNIbusqueda.text

    end if

    Lo único que hace es comprobar que traiga algún dato, posiblemente es que al estar vacío te de error, aparte concatena la query con el texto, de manera que strMySql contenga la sentencia completa.

    Hace tiempo que no trabajo con VB6, pero creo hace falta ponerlo como te expuse en el ejemplo de antes.

    Seguimos! 😉

    Respuesta
  • el 27 octubre, 2016 a las 5:55 am
    Permalink

    Buenas noches, necesito ayuda porfavor. Estoy creando un sistema donde tengo los botones de guardar, eliminar, reportes, nuevo , estos datos que ingrese en las cajas de texto los guarde en mysql.

    Respuesta
    • el 28 octubre, 2016 a las 6:50 am
      Permalink

      ¿Ayuda con respecto a qué? ¿Con la conexión?¿Con el código? 🙂

      Respuesta
  • el 28 octubre, 2016 a las 3:29 pm
    Permalink

    Adodc1.Recordset
    .Update
    mensaje = MsgBox(«El alumno ha sido guardado exitosamente»)
    matricula.Visible = True
    nombre.Visible = True
    ap_paterno.Visible = True
    ap_materno.Visible = True

    _____________________

    Tambien tengo duda en si es correcto hacer la conexion del ODBC y poner codigo en los botones?

    Respuesta

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.