Hola: Estoy intentando hacer consulta a una base de datos desde visual basic 6.0, la idea es que todos los temas de la base de datos se me escriban en un combo y una vez seleccionado un tema, consulte la base de datos y me visualice todos los subtemas.
Los Temas he conseguido visualizar, pero a la hora de recoger los subtemas me dice que no se han encontrado los datos buscados (es como si en la base de datos no tendría subtemas, pero si que hay), ¿alguien me podría ayudar? muchísimas gracias.
El código que tengo escrito es el siguiente:
| Código: |
Option Explicit
Public sPath As String
Dim DB As Database
Dim AreaDeTrabajo As Workspace
Dim Err As Integer
Dim rs As DAO.Recordset
Dim rs1 As DAO.Recordset
Private Sub cmbTema_Click()
Dim elementoSeleccionado As String
elementoSeleccionado = cmbTema.Text
'abro de nuevo la tabla de la base de datos, para encontrar los subtemas correspondientes a un tema
Set rs1 = DB.OpenRecordset("SELECT distinct SubTema from fotos where Tema like '%elementoSeleccionado%'", dbOpenDynaset)
' Comprobar que hay datos en el recordset
With rs1
If (.BOF And .EOF) Then
MsgBox "No se han encontrado los datos buscados"
Else
' Mostrar los datos hallados
listSubTema.Clear
.MoveFirst
Do While Not .EOF
listSubTema.AddItem rs1("Subtema")
.MoveNext
Loop
End If
End With
rs1.Close
End Sub
Private Sub Form_Load()
sPath = "D:\Documents and Settings\josune\Escritorio\proyecto fin de carrera\fotos\fotos.mdb"
'creo el area de trabajo
Set AreaDeTrabajo = DBEngine.Workspaces(0)
'abrir la base de datos
Set DB = AreaDeTrabajo.OpenDatabase(sPath, False)
'abrir una tabla
Set rs = DB.OpenRecordset("SElect distinct Tema from fotos ", dbOpenDynaset)
Err = 0
rs.MoveFirst
If Err Then
Err = 0
'no hay datos, avisar
MsgBox "No hay datos que coincidan con la búsqueda especificada," & vbCrLf & "(o no está bien realizada)", 64, "Listados"
Exit Sub
End If
'Añadir el resultado a un combo
cmbTema.Clear
rs.MoveFirst
Do Until rs.EOF
cmbTema.AddItem rs("Tema")
rs.MoveNext
Loop
rs.Close
End Sub |
|