border

Miembros:
Mensajes:
Temas:
Online:

Ultimo Miembro:

 
 


Retroceder   VB-MUNDO - Programacion Visual > Programacion - Lenguajes > Visual Basic 6.00
Registrarse FAQ Miembros Calendario Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
LinkBack Herramientas Desplegado
  #1 (permalink)  
Antiguo 19-08-2005, 21:55:03
Un Nuevo Amigo
 
Registrado: ago 2005
Posts: 2
elpepe1970 Valoración +2
Predeterminado Tengo BD en Access vs consultas desde aplicacion VB6

Tengo una base de Datos en MS Access con las tablas "ciclos" ; "cursos" y otras de una institución educativa.

La aplicación se conecta con la base de datos mediante ADO.
En un form hay un combobox y un listbox y quiero que al seleccionar uno de los items del combo "Ciclo", se genere la lista de cursos correspondientes a dicho ciclo en el list box.
En la tabla "ciclo" los codigos para cada ciclo van de 0 a 5
En la tabla cursos tengo un campo codigo de ciclo, para identificar a qué ciclo pertenece cada curso. Entonces todos los curso del primer ciclo llevan en el campo codigo ciclo el número cero, los del segundo el número uno y así hasta 5

La idea que tenía originalmente era hacer una consulta o "query" a la base de datos teniendo como referencia el número de índice de cada elemento del combobox ciclo.

Lamentablemente, todas las opciones para hacer consultas, con sentencias SQL. Y al ejecutar el código no producían la lista de cursos o por ejemplo la sentencia Select, arroja se experaba expresión.

Alguien ha desarrollado algo así, o tiene idea de cómo es el código que se necesita. Existe alguna forma de hacer un query a una base datos access desde VB6.0

Muchas gracias por su ayuda.
Responder Con Cita
  #2 (permalink)  
Antiguo 20-08-2005, 06:51:53
Moderador
 
Registrado: dic 2002
Ubicación: Madrid
Posts: 4.198
acalanto ha deshabilitado la reputación
Predeterminado

Lo primero que habría que conocer es si las tablas de la DB están correctamente diseñadas para referenciar datos entre ellas. Si cargas la tabla ciclos en el combo, será necesario que almacenes el valor del campo que, existiendo en la tabla cursos, pueda establecer la relación.

En todo caso el comando SQL sería esquemáticamente.

"SELECT * FROM <tablacursos> WHERE <campo_de_vínculo> = " + me.combo


Lógicamente poniendo los nombres correctos.
__________________
Un cordial saludo
-Acalanto-

Madrid - España

Visual Basic
Videos Programacion
Foro Programacion
Tutoriales Programacion
Responder Con Cita
  #3 (permalink)  
Antiguo 20-08-2005, 16:20:58
Un Nuevo Amigo
 
Registrado: ago 2005
Posts: 2
elpepe1970 Valoración +2
Predeterminado

Al parecer no me expresado correctamente,
Quiero saber si hay sentencias para MS Access
porque la base de datos es MS Access en la misma
pc donde se ejecuta la aplicación VB.
Cuando uso sentencias SQL, aparecen errores.

Intencionalmente he puesto los identificadores de cada
ciclo de 0 a 5, de manera tal que coinciden con combo.listindex
entonces "primer ciclo" en el combo es index = 0 y ID en la tabla "ciclo" = 0; "segundo ciclo " en el combo es index= 1 y ID en la tabla "ciclo" = 1
Y en la tabla cursos la llave foranea que permite enlazar cada curso con su respectivo ciclo es ID_Ciclo.

Para acceder a las tablas he definido los recordsets y he creado los métodos, en un modulo como sigue, esto funciona bien

Global CONE As New ADODB.Connection
Global RSCUR As New ADODB.Recordset
Global RSCIC As New ADODB.Recordset

Sub main()
With CONE
.CursorLocation = adUseClient
.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " & App.Path & "\Registro.mdb; Persist Security Info=False"
'.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\WINDOWS\Escritorio\ExaFinal\Proyecto\Reg istro.mdb;Persist Security Info=False"
MsgBox "Conexion Establecida"
End With
Form1.Show
End Sub

Sub cur()
With RSCUR
If .State = 1 Then .Close
.Open "select * from cursos", CONE, adOpenStatic, adLockOptimistic
End With

End Sub

Sub cic()
With RSCIC
If .State = 1 Then .Close
.Open "select * from ciclo", CONE, adOpenStatic, adLockOptimistic
End With

End Sub

En el formulario en el evento load cargo el combo1 con los ciclos y funciona

Private Sub Form_Load()
cic
Do Until RSCIC.EOF
Combo1.AddItem RSCIC!Nom_Cic
RSCIC.MoveNext
Loop
End Sub

Pero para cargar los cursos en el listbox, no he sabido programar en el evento click del combo, primero la búsqueda del valor combo1.listindex en la tabla ciclo, en el campo ID_Ciclo y que después presente los valores hallados en el listbox1

Una pregunta acalanto: Ese código se debe programar en el evento click del combo?? Espero esta vez haberme dejado entender.

Muchas gracias por tu ayuda
Responder Con Cita
  #4 (permalink)  
Antiguo 20-08-2005, 17:23:08
Moderador
 
Registrado: dic 2002
Ubicación: Madrid
Posts: 4.198
acalanto ha deshabilitado la reputación
Predeterminado

Pues espero haberte comprendido bien:

Quisiera aclararte que el 'ListIndex' del 'Item' seleccionado en el combo, poco o nada le indica a la tabla cursos. Yo me imagino que en la tabla CURSOS exista un campo de unión que recoja el valor de Nom_Cic, de lo contrario es difícil que establezcas una relación.


En el evento CLICK del combo debes generar un comando sql que busque en la tabla cursos todos aquellos que contienen el valor Nom_Cic que -por lo que manifiestas- es el que tienes como valor del Combo.

Suponiendo que el Combo se llama COMBOCICLOS y que la tabla CURSOS tiene un campo de nombre NOM_CIC que establece la relación de todos los curso que pertenecen a un determinado Ciclo formativo, y que deseas ordenarlo alfebéticamente por un campo de la tabla CURSOS llamado NOMBRE_CURSO, deberías escribir algo parecido a ésto.


RSCUR.Open "SELECT * FROM cursos WHERE nom_cic = '" & me.Combo_Ciclos & "' ORDER BY nombre_curso", CONE, adOpenStatic, adLockOptimistic


Y lógicamente asignarlo al grid, texbox u otro control que quieras que lo muestre en la aplicación.


Visual Basic permite trabajar con Access a través de MsJet (El motor de Microsoft) pero además puede trabajar con cualquier base de datos OpenDataBaseConectivity (ODBC) que disponga del controlador adecuado, es decir, con todas las existentes, como cualquier otro lenguaje de programación actual que reconozca esta arquitectura de acceso a datos.
__________________
Un cordial saludo
-Acalanto-

Madrid - España

Visual Basic
Videos Programacion
Foro Programacion
Tutoriales Programacion
Responder Con Cita
Respuesta


Herramientas
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Trackbacks are habilitado
Pingbacks are habilitado
Refbacks are habilitado


Temas Similares
Tema Autor Foro Respuestas Último Mensaje
Consultas a bd en access dreaming Visual Basic 6.00 1 05-12-2006 18:58:24
Ciclo con consultas en Access RANSERRANO Visual Basic 6.00 5 20-10-2006 19:38:20
Consultas en access tazman Visual Basic 6.00 7 02-07-2006 18:29:57
De aplicación a Servicio. ¿Tengo que modificar algo? juanchojif Visual Basic.NET 2003 & 2005 0 02-05-2006 08:52:47
Consultas con visual basic y access 2000 csic17 Visual Basic 6.00 1 11-03-1970 04:36:58


La franja horaria es GMT. Ahora son las 16:18:49.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO 3.1.0
A vBSkinworks Design

Alojado en el servicio Premium de Masquewebs | Diseño mejorado por MasqueWebs

right