1
« en: Lunes 24 de Noviembre de 2003, 20:53 »
el problema que tengo lo describo:
tengo un form con 13 cajas de texto y 5 option boton cada una de
ellas son
cargadas por los campos declarados en el recordset correspondiente a
CPU...
cuyo codigo es 1980, pero cuando no es CPU, es TECLADO, REGULADOR,
MOUSE,
etc... y ese es otro codigo, por lo tanto el filtro que carga el form
es el
codigo, que para CPU es 1980 y para los otros dispositivos son otros
numeros.... por ejemplo MOUSE el codigo es 6524... cuando en la carga
de
las cajas de textos el recordset pasa por disco duro... lanza un
error,
porque no hay data de ese tipo para un MOUSE.... alli es cuando yo
hago dos
recordset: uno para CPU con todos sus componentes, ejemplo: ram,
disco
duro, tarjeta de red, cd-rom, etc. y otro para TODOS los demas
dispositivos
tales como, teclado, mouse, impresora, scarnner, etc... la pregunta
es como
muevo cada recordset segun sea el caso al desplazarme en la base de
datos???.
Ruben
este es el codigo del form y del modulo....-
'*** ESTE CODIGO VA EN EL MODULO ***
Public Sub NavegarBD()
Dim VarSQL As String
Set RsBD = New Recordset
VarSQL = "SELECT COD_CAT " & _
"FROM cat " & _
"ORDER BY COD_CAT"
RsBD.Open VarSQL, Conectar1, adOpenForwardOnly, adLockReadOnly,
adCmdText
Do While Not RsBD.EOF ' **** TODOS EJEMPLO: TECLADO, MOUSE, ETC. ****
RsBD.Close
RsBD.Open "SELECT invequ.COD_CAT, invequ.ID_EQU, invequ.NRO_SER,
ubica.DES_UBI, cat.DES_CAT, " & _
"marca.DES_MAR, mode.DES_MOD, invequ.NRO_INV,
invequ.NRO_GRU, " & _
"invequ.OBS_EQU, invequ.TIP_STA " & _
"FROM ubica INNER JOIN (mode INNER JOIN (marca INNER JOIN "
& _
"(cat INNER JOIN invequ ON cat.COD_CAT = invequ.COD_CAT) "
& _
"ON marca.COD_MAR = invequ.COD_MAR) ON mode.COD_MOD =
invequ.COD_MOD) " & _
"ON ubica.COD_UBI = invequ.COD_UBI " & _
"ORDER BY invequ.NRO_SER", Conectar1, adOpenStatic,
adLockOptimistic
Exit Do
Loop
End Sub
Public Sub NavegarBD2()
Dim VarSQL As String
Set RsBD = New Recordset
VarSQL = "SELECT COD_CAT " & _
"FROM cat " & _
"ORDER BY COD_CAT"
RsBD.Open VarSQL, Conectar1, adOpenForwardOnly, adLockReadOnly,
adCmdText
Do While Not RsBD.EOF ' **** SOLO CPU... COD_CAT = 1980 ****
RsBD.Close
RsBD.Open "SELECT invequ.COD_CAT, invequ.ID_EQU, invequ.NRO_SER,
ubica.DES_UBI, cat.DES_CAT, " & _
"marca.DES_MAR, mode.DES_MOD, invequ.NRO_INV,
invequ.NRO_GRU, " & _
"invequ.OBS_EQU, invequ.TIP_STA, tabcom.TAR_RED,
tabcom.DIR_IP, " & _
"tabcom.MIC_000, tabcom.CDR_000, tabcom.MEM_RAM,
tabcom.COR_000, " & _
"tabcom.CAP_DIS, tabcom.O_DIS " & _
"FROM tabcom INNER JOIN (ubica INNER JOIN (mode INNER JOIN
" & _
"(marca INNER JOIN (cat INNER JOIN invequ ON cat.COD_CAT =
invequ.COD_CAT) " & _
"ON marca.COD_MAR = invequ.COD_MAR) ON mode.COD_MOD =
invequ.COD_MOD) " & _
"ON ubica.COD_UBI = invequ.COD_UBI) ON tabcom.NRO_SER =
invequ.NRO_SER " & _
"ORDER BY invequ.NRO_SER", Conectar1, adOpenStatic,
adLockOptimistic
Exit Do
Loop
End Sub
'*** ESTE CODIGO VA EN FORM ***
Private Sub CargarCampos()
Label22.Caption = RsBD(0)
If Label22.Caption = 1980 Then ' CODIGO DE CATEGORIA PARA MOSTRAR EL
CPU
' Y SUS COMPONENTES. EJEMPO: SERIAL,
RAM, DISCO DURO, ETC.
Frame5.Visible = True ' MUESTRA FRAME CON LAS CAJAS DE TEXTO
Frame5.Enabled = True ' DE LOS COMPONENTES DEL CPU
Frame11.Visible = False ' OCULTA UN FRAME CON UNA FIGURA
Frame11.Enabled = False ' OCULTA UN FRAME CON UNA FIGURA
NavegarBD2 ' AQUI SEGUN YO... CARGO EL OTRO
RECORDSET
' PERO NO ME PERMITE SEGUIR EXPLORANDO
LA
' BASE DE DATOS... LA PREGUNTA ES COMO
' MOVERME EN LA BASE DE DATOS
Else ' MUESTRA TODAS LAS CATEGORIAS.
EJEMPLO: TECLADO, MOUSE, ETC.
Frame5.Visible = False ' OCULTA FRAME CON LAS CAJAS DE TEXTO
Frame5.Enabled = False ' DE LOS COMPONENTES DEL CPU
Frame11.Visible = True ' MUESTRA UN FRAME CON UNA FIGURA
Frame11.Enabled = True ' MUESTRA UN FRAME CON UNA FIGURA
End If
Text6.Text = RsBD(1) & " " ' IDENTIFICACION
Text1.Text = RsBD(2) & " " ' SERIAL
Text7.Text = RsBD(3) & " " ' SECCIONAL
Text8.Text = RsBD(4) & " " ' CATEGORIA
Text9.Text = RsBD(5) & " " ' MARCA
Text10.Text = RsBD(6) & " " ' MODELO
Text3.Text = RsBD(7) & " " ' NUMERO DE INVENTARIO
Text5.Text = RsBD(8) & " " ' GRUPO
Text4.Text = RsBD(9) & " " ' OBSERVACIONES
Select Case RsBD(10) ' ESTATUS
Case "ACTIVO"
Option1.Value = True
Option1.BackColor = &HC000&
Option2.BackColor = &H8000000F
Option3.BackColor = &H8000000F
Option4.BackColor = &H8000000F
Case "DISPONIBLLE"
Option2.Value = True
Option2.BackColor = &HC000&
Option1.BackColor = &H8000000F
Option3.BackColor = &H8000000F
Option4.BackColor = &H8000000F
Case "DESINCORPORADO"
Option3.Value = True
Option3.BackColor = &HC0&
Option1.BackColor = &H8000000F
Option2.BackColor = &H8000000F
Option4.BackColor = &H8000000F
Case "EN REPARACION"
Option4.Value = True
Option4.BackColor = &HC0&
Option3.BackColor = &H8000000F
Option2.BackColor = &H8000000F
Option1.BackColor = &H8000000F
End Select
If Frame5.Visible = True Then
Frame5.Visible = True
Frame5.Enabled = True
Frame11.Visible = False
Frame11.Enabled = False
Select Case RsBD(11) ' RED
Case "SI"
Option6.Value = True
Option6.BackColor = &HC000&
Option5.BackColor = &H8000000F
Case "NO"
Option5.Value = True
Option5.BackColor = &HC0&
Option6.BackColor = &H8000000F
End Select
End If
If Frame5.Visible = True Then
Text11.Text = RsBD(12) & " " ' IP
End If
If Frame5.Visible = True Then
Select Case RsBD(13) ' MICROFONO
Case "SI"
Option8.Value = True
Option8.BackColor = &HC000&
Option7.BackColor = &H8000000F
Case "NO"
Option7.Value = True
Option7.BackColor = &HC0&
Option8.BackColor = &H8000000F
End Select
End If
If Frame5.Visible = True Then
Select Case RsBD(14) ' CD ROM
Case "SI"
Option12.Value = True
Option12.BackColor = &HC000&
Option11.BackColor = &H8000000F
Case "NO"
Option11.Value = True
Option11.BackColor = &HC0&
Option12.BackColor = &H8000000F
End Select
End If
If Frame5.Visible = True Then
Text12.Text = RsBD(15) & " " ' RAM
End If
If Frame5.Visible = True Then
Select Case RsBD(16) ' CORNETAS
Case "SI"
Option10.Value = True
Option10.BackColor = &HC000&
Option9.BackColor = &H8000000F
Case "NO"
Option9.Value = True
Option9.BackColor = &HC0&
Option10.BackColor = &H8000000F
End Select
End If
If Frame5.Visible = True Then
Text13.Text = RsBD(17) & " " ' DISCO DURO
End If
If Frame5.Visible = True Then
Text14.Text = RsBD(18) & " " ' OTRO DISPOSITIVO
End If
End Sub