Utilizar bases de datos con excel

Hola amigo...
.
Mi consulta es con respecto a la utilización de bases de datos en excel...
Resulta que tengo una plantilla Excel con los datos más relevantes de unos pacientes por ejemplo:
.
|   Nombre   |    Edad       |    Dirección            | Correo                    | Telefono     |
---------------------------------------------------------------------------------------------------
|   Vanessa  |       20        |   San José  315     | [email protected]    | 987155XX   |
.
(El listado comprende unos 340 pacientes)
.
Lo que necesito es que cuando presiono la casilla | "Vanessa" |, me aparezcan más datos sobre ella. Por ejemplo; estatura, peso, número de consultas médicas, motivos de sus visitas, o bien, un historial de asistencias a la consulta... Etc... Etc... No lo quiero hacer hipervinculando planillas excel... Quiero manejar una base de datos...
.
¿De qué forma me recomiendas hacerlo?
¿Es factible hacerlo con MS SQL server o Access?
.
Muchas gracias :)

2 respuestas

Respuesta
1
Supongamos que tus datos están en la hoja1, columnas A-E y queremos que cuando marques una celda de la columna A te busque los datos en la Hoja2 y los copie a la hoja1 en las celdas G1:H10.
El código podría ser algo así:
Option explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim aux As String
    If Target.Column <> 1 Then Exit Sub ' No ha pulsado una celda de la columna A (o la que queramos)
    aux = Target.Text
    traerDatosPersona aux
End Sub
Private Sub traerDatosPersona(ByVal nomPersona As String)
    Dim n As Integer
    Dim i As Integer
    Dim aux As String
    ' Primero borraría los datos de la persona anterior (Celdas G1:H10, por ejemplo)
    Range("G1:H10").ClearContents
    ' Buscaría los datos de la persona seleccionada en la Hoja2.
    n = 1
    Do While n <= Sheets("hoja2").Cells.SpecialCells(xlCellTypeLastCell).Row
        If Sheets("hoja2").Cells(n, 1) = nomPersona Then Exit Do
        n = n + 1
    Loop
    If n > Sheets("hoja2").Cells.SpecialCells(xlCellTypeLastCell).Row Then
        ' No se ha encontrado. Lo indicamos en la celda G1
        Cells(1, 7) = "No Encontrado"
        Exit Sub
    End If
    ' Copiamos los datos de la persona encontrada
    For i = 1 To 10
        If Sheets("Hoja2").Cells(1, i + 1) <> "" Then
            Cells(i, 7) = Sheets("Hoja2").Cells(1, i + 1)
            Cells(i, 8) = Sheets("Hoja2").Cells(n, i + 1)
        End If
    Next i
End Sub
Se me olvidaba.
Por supuesto que sería mejor tener los datos en Sql Server, Access o cualquier otra base de datos.
Lo único que habría que cambiar es la consulta de los datos a presentar.
Respuesta
1
La forma más sencilla es hacer una hoja donde por medio de la fórmula de BUSCARV traiga los datos de consulta, pero esta seri muy limitada, la otra es mediante programación realizar las consultas el vb de las palicaciones es muy potente, y si se puede realizar mediante sql o access que te daría una solución más completa

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas