Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Consulta a MySQL por medio de boton

Estas en el tema de Consulta a MySQL por medio de boton en el foro de Visual Basic clásico en Foros del Web. Buenas tardes, se que es algo antiguito lo q voy a preguntar pero esq qiero empezar un proyecto en vb6 con mysql, pero aqui en ...
  #1 (permalink)  
Antiguo 30/08/2012, 10:46
Avatar de ana_gloria  
Fecha de Ingreso: febrero-2008
Mensajes: 65
Antigüedad: 16 años, 2 meses
Puntos: 1
Consulta a MySQL por medio de boton

Buenas tardes, se que es algo antiguito lo q voy a preguntar pero esq qiero empezar un proyecto en vb6 con mysql, pero aqui en el foro no encuentro nada sobre visual basic, asi que me atrevbi a ponerlo aqui, ok basicamente es esto lo q qiero hacer o si me pueden recomendar alguna lectura se los agradezco de antemano, aqui les va:

Tengo en mi formulario 2 combobox en los cuales dependiendo de lo q seleccionen al oprimir el boton de buscar quiero q los datos me los refleje en una especi de data grid segun las variables q seleccionó anteriormente en los 2 combobox y aparte insertar en mi data grid en la primer columna un checkbox, para que aquellos que esten seleccionados sean los q se guarden con otros datos que me daria el usuario en unas cajas de texto q tambien pienso poner en el formulario, yo se q en informatica nada esta fumado, todo se puede y de antemano disculpen mi sobrada ignorancia pero soy nueva en esto.

P.D.: Este proyecto es uno que ya tengo corriendo en php desde hace ya casi 3 años pero lo qiero hacer en esta version, les agradezco infinitamente cualqier tipo de ayuda, porq la vdd ya he leido bastante y nose ni x donde empezar ...
  #2 (permalink)  
Antiguo 30/08/2012, 11:42
Usuario no validado
 
Fecha de Ingreso: abril-2008
Mensajes: 50
Antigüedad: 16 años
Puntos: 16
Respuesta: Consulta a MySQL por medio de boton

Pues a ver...

Te lo digo por pasos a ver si consigo darme a entender.

1. Descarga de drivers ODBC de MySQL si aún no se tienen.
Link: http://dev.mysql.com/downloads/connector/odbc/

1.1 Instalarlo

2. Crear ODBC hacia la base de datos MySQL sin olvidar el nombre que se la ponga.

3. En el proyecto de Visual Basic:
Agregar la referencia a "Microsoft Activex Data Objects 8.0 Library" a través del menú Project/References.

4. Vale... ahora, como usarlo.

Para hacer una prueba he creado dos tablas en MySQL que obedecen a este script:
Código MySQL:
Ver original
  1. CREATE TABLE  fdw_example5_pais (
  2.   Nombre varchar(100) NOT NULL,
  3.   PRIMARY KEY (Id_Pais)
  4.  
  5.  
  6. CREATE TABLE  fdw_example5_ciudad (
  7.   Id_Ciudad int(10) unsigned NOT NULL AUTO_INCREMENT,
  8.   Nombre varchar(100) NOT NULL,
  9.   Id_Pais int(10) NOT NULL,
  10.   PRIMARY KEY (Id_Ciudad)
  11.  
  12. insert into fdw_example5_pais (Nombre) values ('Estados Unidos'), ('España');
  13. insert into fdw_example5_ciudad (Id_Pais, Nombre) values (1, 'Washington'), (1, 'Nueva York'), (2, 'Madrid'), (2, 'Barcelona'), (2, 'Teruel');

He creado un ODBC que conecta a la base de datos que se llama "MYSQL_FOROSDELWEB".

En un formulario vacío de VB, he agregado un combobox que se llama "Combo1".

Y he puesto este código:

Código vb:
Ver original
  1. Option Explicit
  2.  
  3. Private Const C_ODBC = "MYSQL_FOROSDELWEB"
  4.  
  5.  
  6. Private Sub Init_Values()
  7. Dim Cn As ADODB.Connection
  8. Dim RS As ADODB.Recordset
  9. Dim Qry As String
  10.  
  11.     Set Cn = New ADODB.Connection
  12.     Cn.ConnectionString = C_ODBC
  13.     Cn.Open
  14.    
  15.     Qry = "select Id_Pais, Nombre from fdw_example5_pais order by Nombre"
  16.     Set RS = Cn.Execute(Qry)
  17.     Combo1.Clear
  18.     Do While Not RS.EOF
  19.         Combo1.AddItem RS.Fields(1).Value
  20.         Combo1.ItemData(Combo1.ListCount - 1) = RS.Fields(0).Value
  21.         RS.MoveNext
  22.     Loop
  23.     RS.Close
  24.     Set RS = Nothing
  25.    
  26.     Cn.Close
  27.     Set Cn = Nothing
  28. End Sub
  29.  
  30. Private Sub Form_Load()
  31.     Init_Values
  32. End Sub

Con esto he conseguido conectar a la base de datos MySQL, hacer una consulta a la tabla de países de este ejemplo y meterlos dentro de un combobox.

Con lo que mencionas de agregar un data grid con un checkbox en la primera columna, no recuerdo si los OCX que vienen con Visual Basic 6 te dan chance a hacerlo. Yo lo hacía pero con un OCX de pago.

Talvez te puede vale utilizar un listbox. Los listbox tienen una propiedad llamada "Style" que si la pones en valor "1" se convierte en una lista de selección.

Para saber si un item está seleccionado o no utilizas "[LISTA].selected([indice]]" para conseguir un valor falso o verdadero para saber si esta o no está seleccionado.

Para cargar, modificar, limpiar, etc. items de un listbox, se utilizan los mismos metódos que con un combobox.


Lo que mencionas de que cuando den click en un combobox se desplieguen datos en un grid, pues lo haces con el evento Click del combobox. Para saber que item es el "clickado" utilizas algo como Combo1.ListIndex. Si esto es igual a "-1" entonces no hay item seleccionado. No pierdas de vista que el índice del ítem en el combobox no tiene por qué coincidir siempre con el ID de la tabla de la base de datos. En el ejemplo utilicé una propiedad del item llamada "itemdata". Para conocer -en mi ejemplo- el ID de la base de datos del país seleccionado en el combobox podrías poner una función como esta:

Código vb:
Ver original
  1. Function getSelectedCountryId()
  2.     If Combo1.ListIndex > -1 Then getSelectedCountryId = -1: Exit Function
  3.     getSelectedCountryId = Combo1.ItemData(Combo1.ListIndex)
  4. End Function


Y bueno... siempre me acusan de dar explicaciones muy largas...

Espero haberte ayudado en algo.

Si tienes más dudas, o dudas sobre mi respuesta, pues por aquí estaré.

¡Saludos!

Última edición por pcid; 30/08/2012 a las 11:53
  #3 (permalink)  
Antiguo 30/08/2012, 12:23
Avatar de ana_gloria  
Fecha de Ingreso: febrero-2008
Mensajes: 65
Antigüedad: 16 años, 2 meses
Puntos: 1
Respuesta: Consulta a MySQL por medio de boton

Sip si me ayudo y mucho! pero me sale el siguiente error

" no se ha definido el tipo definido por el usuario"

en el modulo de private sub init_values()... y me señala la delcaracion del dim cn as adodb.connection
  #4 (permalink)  
Antiguo 30/08/2012, 13:45
Usuario no validado
 
Fecha de Ingreso: abril-2008
Mensajes: 50
Antigüedad: 16 años
Puntos: 16
Respuesta: Consulta a MySQL por medio de boton

Ese error debe ser porque no has agregado la referencia a "Microsoft Activex Data Objects 8.0 Library" a través del menú Project/References.

Etiquetas: basic, medio, mysql, vb, vb6, visual, botones, formulario
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:34.