Visual Basic - sigo con el mismo problema, ayuda pf!!

Life is soft - evento anual de software empresarial
 
Vista:

sigo con el mismo problema, ayuda pf!!

Publicado por ainhoa (45 intervenciones) el 24/05/2004 10:13:21
Hola a todos!! a ver, tngo en un formulario un combo dsd l cual selecciono un dato y en un subformulario aparecen los datos q corresponden a ese dato (todo mediante codigo)... el problema es q tienen q aparecerme datos d 2 tablas...

TABLAS: proveedores, armas

proveedores (cod_verif, nom_verif, estado, estanteria, observaciones)
armas(cod_verif, arma, sub_arma)

pero solo he conseguido hacer q m aparezcan los verificadores q tienen armas relacionadas, los demas verificadores no m aparecen, pq puede ser? me podeis ayudar pf??

N serio q m urge muxo... si no entendeis mi explicacion podeis volvermelo a preguntar que yo respondere con mucho agrado.

Muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

RE:sigo con el mismo problema, ayuda pf!!

Publicado por Iñaki (502 intervenciones) el 24/05/2004 12:32:20
Posiblemente has hecho una consulta SQL, usando "Inner Join", con lo cual te da eso , los que tienen armas. Si pones "Left Join " te sacará todos, incluso si no tienen armas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:sigo con el mismo problema, ayuda pf!!

Publicado por ainhoa (45 intervenciones) el 25/05/2004 14:56:20
es justo lo q me ha explicado el profesor y es justo lo q le pasa, pero sabes q pasa? en una consulta la sql sta perfecta!! pero usandola en el codigo algo falla, podrias ayudarme? MUCHISIMAS GRACIAS!!

Private Sub Familias_Click()
If Me.Familias <> "" Then
DoCmd.RunSQL "DELETE * FROM VERIFICADORES2"
Set rstfam = dbs.OpenRecordset("VERIFICADORES2", dbopentable)
Set rsttmp = dbs.OpenRecordset("SELECT verificadores.*, armas.modelo_arma, armas.submodelos " _
& "FROM verificadores LEFT JOIN armas ON verificadores.cod_verif = armas.cod_verif " _
& "WHERE verificadores.familia= '" & Me.Familias & "';")
xy = rsttmp.RecordCount
If Not rsttmp.EOF Then
Do Until rsttmp.EOF
With rstfam
.AddNew
!cod_verif = rsttmp!cod_verif
!nom_verif = rsttmp!nom_verif
!localizacion = rsttmp!localizacion
!donde_estan = rsttmp!donde_estan
!personas = rsttmp!personas
'!familia = rsttmp!familia
!estado = rsttmp!estado
!modelo_arma = rsttmp!modelo_arma
!submodelos = rsttmp!submodelos
!observaciones = rsttmp!observaciones
.Update
End With
rsttmp.MoveNext
Loop
End If
Else
msg = MsgBox("Debes Elegir la Familia", vbOKOnly + vbCritical, "Centro de mensajes")
End If
Me.Refresh
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:sigo con el mismo problema, ayuda pf!!

Publicado por Iñaki (502 intervenciones) el 25/05/2004 20:55:44
Una forma de contruir las cadenas SQL, es utilizando el propio ACCESS.
Entra en Access, selecciona la base de datos, y luego vete a consultas, ahi puedes crearte una consulta en modo diseño y probarla. Te sugiero que utilices unicamente los campos que quieras sacar.
Luego seleccionas Ver -> Vista SQL, y verás el codigo.
Más cosas:
En vez de abrir el recordset : set dbs = openrecordset ( " selec.......")
Prueba a contruir una cadena, por ejemplo :
dim strsql as string
strsql = " select verificadores ........."
strparam = " WHERE verificadores.familia= ' " & Familias & " ' "
El punto y coma que tenias al final sobra.
El campo familia supongo que será de Texto, porque si nó tambien habria que quitar la comillas simples.
Y para probar, al principio abre el recordset:
set dbs = openrecordset (strsql)
Si esto va bien, entonces añades la cadena de parámetros:
strsql = strsql + strsparam
set dbs = openrecordse(strsql)

Suerte:..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar