• Sábado 20 de Abril de 2024, 17:45

Autor Tema:  Problema a la hora de mostrar los resultados de una busqueda  (Leído 1026 veces)

shing20

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Problema a la hora de mostrar los resultados de una busqueda
« en: Lunes 23 de Noviembre de 2009, 04:35 »
0
Hola a todos, les cuento que soy nuevo en el foro y tambien en lo que es el mundo de visual basic 6 y las bases de datos.
Ya hace unos dias que estoy renegando con una consulta que me tira el siguiente error: "No se han especificado valores para algunos de los parametros requeridos".

yo estoy trabajando con 2 tablas, una empleados, y otra ciudades, en la tabla de los empleados tengo todos sus datos personales y tambien se almacena una id de ciudad, que se relaciona con la tabla ciudades en donde estan todas las caracteristicas de las ciudades (codigo postal, nombre de la ciudad, etc...)

Citar
siendo la primer ciudad registrada:
id-ciudad: 1
nombre: salto
...

Lo que yo quiero es que cuando muestre los resultados de la busqueda, me muestre el nombre de la ciudad, no el codigo que yo le indique en la tabla empleados.

Por Ejemplo: el usuario busca el nombre Juan, asumiendo que se encuentra en la bd, pasa a otro formulario en donde se listan todos los datos de dicho empleado
Citar
Nombre: ...
apellido: ...
dni: ...
direccion: ...
(id-ciudad) en vez de que aparezca el id de la ciudad (1 por ejemplo), yo quiero que aparezca el nombre de la ciudad que se encuentra en la tabla "Ciudades", osea Salto

Para eso yo realize una consulta INNER JOIN, pero me tira el error que comente al principio, el codigo, tal cual como lo tengo, se los dejo plasmado aqui:

Citar
Option Explicit
Dim rsemp, rsciu, rsprov As Recordset
Dim dbemp, dbciu, dbprov As Connection
Dim pathDBemp As String

Private Sub cmdbuscar_Click()'desde aqui empieza a ejecutarse las acciones cuando se apreta el boton Buscar
rsemp.Close
rsciu.Close
rsemp.Open "SELECT * FROM empleados WHERE nombre = '" & txtbuscnom.Text & "'", dbemp
rsciu.Open "SELECT nom-ciudad FROM Ciudades INNER JOIN Empleados ON Ciudades.id-ciudad = Empleados.id-ciudad", dbemp 'y aca es donde me da el error ese que comente al principio
If Not (rsemp.EOF And rsemp.BOF) Or (rsciu.EOF And rsciu.BOF) Then
    Registros.txtnombre.Text = rsemp.Fields("nombre")
    Registros.txtapellido.Text = rsemp.Fields("apellido")
    Registros.txtdni.Text = rsemp.Fields("dni")
    Registros.txtdireccion.Text = rsemp.Fields("direccion")
    Registros.cmbciudad = rsciu.Fields("nom-ciudad")'Aca es donde lo va a mostrar, en un datacombo del formulario Registros
    Registros.txttelefono.Text = rsemp.Fields("telefono-fijo")
    Registros.txtcelular.Text = rsemp.Fields("celular")
    Registros.txtfechanac.Text = rsemp.Fields("fecha-nac")
    Registros.txtestadociv.Text = rsemp.Fields("estado-civil")
    Registros.txthijos.Text = rsemp.Fields("hijos")
    Registros.txtfechaingreso.Text = rsemp.Fields("fecha-ingreso")
    txtbuscnom.Text = ""
    buscnom.Hide
    Unload buscnom
    Load Registros
    Registros.Show
    Registros.SetFocus
    Else
        MsgBox "No se encontró registro", vbOKOnly, "Fallo en la busqueda"
End If
End Sub
-------------------------------------------------------------------------------------------------------------
Private Sub Form_Load()
Set dbemp = New Connection
Set rsemp = New Recordset
Set rsciu = New Recordset
Set rsprov = New Recordset

pathDBemp = App.Path & "prueba.mdb"

dbemp.Open = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=" & pathDBemp & ";"

rsemp.Source = "Empleados"
rsciu.Source = "Ciudades"
rsprov.Source = "Provincias"

rsemp.CursorType = adOpenDynamic
rsemp.LockType = adLockOptimistic
rsciu.CursorType = adOpenDynamic
rsciu.LockType = adLockOptimistic
rsprov.CursorType = adOpenDynamic
rsprov.LockType = adLockOptimistic

rsemp.Open "select * from Empleados", dbemp
rsciu.Open "select * from Ciudades", dbemp
rsprov.Open "select * from Provincias", dbemp
End Sub