Quisiera que me colaboraras con lo siguiente, tengo tres combos y lo que quiero hacer es que me queden dependientes,, las tres tablas están en access.. Seria algo así. En el combo1 tengo el listado REMISIÓN, TERAPIA, IMÁGENES DX, ESPECIALISTA, si esgojo la opción IMÁGENES DX EN EL COMBO 1,,, en el combo2 me aparezca RAYOSX, ECOGRAFÍA, TAC si escojo en el combo2 RAYOSX,,, en el combo3 me aparezca RADIOGRAFÍA DE MANO, RADIOGRAFÍA DE RODILLA, RADIOGRAFÍA DE CRANEo,,.
Respuesta de santiagomf
1
1
santiagomf, Más de 35 años en la informática y más de 20 trabajando con...
Entiendo que el formulario lo estás preparando de Visual Basic, no dentro de Microsoft Access. Lo que necesitarías, antes de nada, son 3 tablas con un campo que relacione la primera con la segunda y otro para relacionar la segunda con la tercera. Lo correcto es que cada una de las tablas utilice un código y en la segunda tabla, cada registro haga referencia al código de la primera y en la tercera se haga referencia al código de la segunda. Envíame la definición de las tres tablas e intento prepararte un código sencillo.
Tablas en access TABLA SERVICIO aquí va el servicio que se va a solicitar tiene los datos IMÁGENES DIAGNOSTICAS, TERAPIA, REMISIÓN, ejemplo iría ligado a un combo1. Tabla imágenes diagnosticas llevaria los datos, RAYOSX,ECOGRAFIA,GAMMAGRAFIA,TOMOGRAFIA,, si en el combo1 escojo imagenes diagnosticas, que en el combo2 se me cargue los datos de imagnes diagnosticas,rayosx,ecografia,gammagrafia,tomografia,. Tabla rayosx Llevaría el listado de las radiografía,, radiografía de mano, radiografía de pie, radiografía cráneo etc.. si en el combo2 de imágenes diagnosticas escojo radiografía, en el combo3 se carguen los tipos de radiografía,,, esto seria más o menos lo que quiero hacer, con este ejemplo ya creo que pudo ir metiendo los demás datos que necesito.. porque irían más tablas como son. Tabla de servicio(Imágenes dx, Terapia, Remisión) Tabla de terapias (terapia física, trapia respiratoria) Tabla de remisión (Pediatría, Gastroenterologo, Ginecólogo.) Tabla imágenes DX (Rayosx,ecografia,tomografia.) Tabla rayosx(radigrafia mano,radiografia craneo,radiografia rodilla..) Tabla ecografia(Ecografia pelvica,Ecografia renal...) Tabla Gammagrafia(Gammagrafia riñon,Gammagrafia corazon..) Tabla tomografia (Tomografia cerebral,tomografia vesicula.) Me imagino que debo relacionar lo datos de una tabla con la otra, pero con un ejemplo a seguir ya puedo continuar metiendo la demás información. Agradezco la colaboración, he buscado en Internet este tipo de ejemplos y prácticamente a sido imposible e infructuosa la búsqueda y ya es lo ultimo que me queda para terminar mi proyecto. Este es código que utilizo para cargar el combo Private Sub Form_Load() Dim BD As ADODB.Connection Dim rs As ADODB.Recordset Set BD = New ADODB.Connection Set rayosx = New ADODB.Recordset ' suponemos que la BD está en el mismo directorio que la aplicación BD.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source =" & App.Path & "\Historias.mdb" rayosx.CursorLocation = adUseClient rayosx.Open "SELECT * FROM RayosX", BD, adOpenStatic, adLockOptimistic With rayosx Do Until .EOF ' suponemos que la columna a cargar es la primera Combo1.AddItem .Fields(1) .MoveNext Loop End With End Sub Agradezco la colaboración
Por lo que veo no tienes experiencia en bases de datos. Lo primero es definir las tablas y las relaciones entre ellas. Te planteo las siguientes 3 tablas: Tabla TipoDeServicio - Id: autonumérico (clave) - DescTipoServicio: text(50) Tabla Servicios - Id: autonumérico (clave) - DescServicio: text(50) - IdTipoServicion: Numérico - Entero Largo Tabla Detalles - Id: autonumérico - DescDetalle: text(50) - IdServicio: Numérico - Entero Largo En la tabla tipo de servicio tendríamos algo así: Id: 1 descTipoServicio: IMÁGENES DIAGNOSTICAS id: 2 descTipoServicio: TERAPIA id: 3 descTipoServicio: REMISIÓN ... etc ... En la tabla de servicios tendríamos: Id: 1 descServicio: RAYOS X idTipoServicio: 1 id: 2 descServicio: ECOGRAFIA idTipoServicio: 1 id: 3 descServicio: GAMMAGRAFIA idTipoServicio: 1 id: 4 descServicio: TOMOGRAFIA idTipoServicio: 1 id: 5 descServicio: TERAPIA FISICA idTipoServicio: 2 id: 6 descServicio: TERAPIA RESPIRATORIA idTipoServicio: 2 ... etc ... En la tabla de Detalles aparecería algo así: Id: 1 descServicio: Radiografía Mano idServicio: 1 id: 2 descServicio: Radiografía Cráneo idServicio: 1 id: 3 descServicio: Radiografía Rodilla idServicio: 1 id: 4 descServicio: Ecografía Pélvica idServicio: 2 id: 5 descServicio: Ecografía Renal idServicio: 2 Con este tipo de estructura puedes saber fácilmente lo que tiene que aparecer en servicios cuando te eligen 'Terápia' o 'Imágenes diagnósticas'. Al elegir 'terapia' cogeríamos de la tabla de servicios los que tengan un idTipoServicio '2', que es el id que tiene en la primera tabla. A partir de ahí es relativamente sencillo programar los 3 combos.
Gracias, ahora ya tengo una tabla de consulta donde tengo las columnas, tipo servicio, servicio, Detalles,, ahora como haría para llevar esta información a los tres combos al formulario de visual.
Dejame tu dirección de correo y te mando una prueba.
Ok te lo agradecería de verdad,, me puedes enviar el ejemplo a: [email protected]
Acabo de mandarte un correo con un ejemplo de base de datos y programa VB, junto a un documento word con algunos comentarios.