SoloCodigo
Programación General => Visual Basic 6.0 e inferiores => Mensaje iniciado por: chacao en Jueves 24 de Marzo de 2005, 23:58
-
:hola: amigos , tengo la siguiente duda:
tengo en access las siguientes tablas:
USUARIOS
usuario (llave)
clave
cod_acc
NIVEL
cod_acc(llave)
tipo_acc
relacionadas a traves de cod_acc (logico no?)...
ahora en vb tengo una aplicacion con un data que recorre los valores de la tabla usuarios, pero al darme el cod_acc de USUARIOS(valor 1 por ejemplo) yo quiero que en realidad me aparezca tipo_acc (el valor relacionado) de la tabla NIVEL, o sea, USUARIOS cod_acc = 1 entonces NIVEL tipo_acc = Acceso Restringido y que esto aparezca en el combobox, se entiende cierto?
si tienen soluciones se lo agradezco...
-
Ok, segun lo que te entiendo:
primero:
nom_usuario = textbox1 (fco)
data1.refresh
with data1.recorset
on error resume next 'para que no te de error si ya se encuentra en el primer registro
.movefirts
end with
while data1.recorset.eof = false
if data1.recorset!usuario=nom_usuario then
data2.refresh
with data2.recorset
on error resume next
.movefirts
end with
while data2.recorset.efo=false
if data2.recorset!cod_acc=data1.recorset!cod_acc Then
msgbox "TU RESULTADO"
data2.recorset.movelast
end if
data2.recorset.movenext
wend
data1.recorset.movelast
end if
data1.recorset.movenext
wend
espero te sirva, el data1 y el data2 son las 2 tablas que utilizas, tambien puedes crear variables data, con solo un control, eso optimizaria tu aplicacion. el llenado al combobox lo haces como dices, con un additem, tambien puedes validar los datos repetidos con la propiedd list(i) del combobox.suerte
-
gracias por la respuesta...
mmm, tal vez me resulte pero lo que olvide decir es que no estoy usando controles data, si no a puro codigo, pero de todos modos me da la idea, asi que probare, si tienes algo mas te lo agradezco..
:)
-
Si la base de datos es grande, es más eficiente usar FindFirst
dim varCod_acc_Usuario as variant
dim recUSUARIOS as recordset
dim recNIVEL as recordset
' obtener primero el cod_acc del usuario en la variable varCod_acc_Usuario
'
recNIVEL.MoveFirst
recNIVEL.FindFirst "cod_acc = " & varCod_acc_Usuario
If recNIVEL.NoMatch Then
MsgBox "No hay nivel de acceso para este usuario"
Else
MsgBox "Tipo de acceso:" & recNIVEL("tipo_acc")
End If
Si cod_acc es númerico no necesita comillas simples en:
recNIVEL.FindFirst "tipo_acc = " & varCod_acc_Usuario
Pero si es tipo cadena de texto (string) si las necesita.
recNIVEL.FindFirst "tipo_acc = '" & varCod_acc_Usuario & "'"
:)