Para el Sr Baltasar

Leonardo
19 de Octubre del 2003
Hola Baltasar, pensaras que soy un ignorante, quizas tengas razon. Si tienes un poquito de tiempo para revisar mi problema, te lo agradecere toda la vida. Es el siguiente:
Tengo un MSHFLEXGRID,un ADOCONTROL (No es compatible con Data)y una TABLA con sus respectivos registros.
Un campo de la tabla se llama “EstadoAlquiler” dicho campo puede tener tres estados, ocupado, reservado o desocupado. Bien, el problema es que no se como comparar el Campo con lo que hay dentro de la celda, para que la celda se ponga del color correspondiente

if Ado1.recordset("EstadoAlquiler") = Ocupado (NO se que codigo poner aqui) then
(que se ponga rojo)
else if Ado1.recordset(“EstadoAlquler”) = Reservado then
(que se ponga amarillo)
else if Ado1.recordset(“EstadoAlquler”) = Desocupado then
(que se ponga verde)
End if

Esto deberia estar dentro de un bucle? Por favor Baltasar, si puedes mandame una ayudita. Estoy aprendiendo A programar y se complica un poco.
Desde ya 1.000.000 de gracias. Leonardo.


Baltasar
19 de Octubre del 2003
No se trata, creo, de comparar la base de datos con el grid. Lo que tienes que hacer es poner un color dependiendo del contenido de la base de datos. Te pongo un ejemplo:

suponiendo que MFila es una variable que me indica la fila del msflexgrid que estoy rellenando, y que la columna que ha de variar el color es la 3:

MGrid.row=mfila
MGrid.col=3
if Ado1.recordset("EstadoAlquiler") = "O" then MGrid.cellbackcolor=rgb(255,0,0)
if Ado1.recordset("EstadoAlquiler") = "R" then MGrid.cellbackcolor=rgb(255,255,0)
if Ado1.recordset("EstadoAlquiler") = "L" then MGrid.cellbackcolor=rgb(0,255,0)

he usado las iniciales O, R y L de Ocupado, Reservado y Libre

por supuesto que lo has de poner en un bucle, un bucle que te recorra el recordset que contiene los datos, para ir rellenando la tabla.

Si continuas con las dudas me avisas y te mando un ejemplo sencillo.
Saludos

Leonardo
19 de Octubre del 2003
Hola Baltasar. Seria mucho pedir que me unvies un ejemplo sencillito?
GRACIAS, GRACIAS, GRACIAS.
SALUDOS.

Baltasar
19 de Octubre del 2003
dim Mfila as long

asignas el numero de columnas del grid:
MGrid.cols=3
MGrid.rows=1
MGrid.TEXTMATRIX(0,0)="NUM"
MGrid.TEXTMATRIX(0,1)="Descripcion"
MGrid.TEXTMATRIX(0,2)="Estado"

(Aquí pones el código para conectar a tu base de datos, y abres el recordset)

Mfila=0
DO WHILE NOT ado1.RECORDSET.EOF
MFila=MFila+1
MGrid.TEXTMATRIX(MFila,0)=ado1.RECORDSET!numero
MGrid.TEXTMATRIX(MFila,1)=ado1.RECORDSET!descripcion
MGrid.TEXTMATRIX(MFila,2)=ado1.RECORDSET!estadoalquiler
MGrid.row=MFila
MGrid.col=3
if Ado1.recordset("EstadoAlquiler") = "O" then MGrid.cellbackcolor=rgb(255,0,0)
if Ado1.recordset("EstadoAlquiler") = "R" then MGrid.cellbackcolor=rgb(255,255,0)
if Ado1.recordset("EstadoAlquiler") = "L" then MGrid.cellbackcolor=rgb(0,255,0)
ado1.RECORDSET.MOVENEXT
loop

Espero no haber olvidado nada.
Suerte.