Programación General > Visual Basic 6.0 e inferiores
Solo Para Expertos!!!
vbmc_2004:
Hola amigos tengo el siguiente codigo que estoy utilizando para mostrar en un combo lo que tiene un campo de la tabla pero pasa lo siguiente...me muestra error porque el valor del campo en algunos casos sera nulo, lo que quiero hacer es que siga mostrarndo el campo que viene ejemplo
si el registro del campo1 esta vacio
continuar mostrando el registro del campo2 que faltaba en el registro campo1 y asi en adelante cuando encuentre otro registro que esta vacio en el campos1 y creo que no me resulta con el codigo que esta a continuacion que debo cambiar???
Private Sub Form_Load()
sql = " "
sql = sql + " select * from clientes"
Set vista = db.CreateDynaset(sql)
Do Until vista.EOF
If Combo1.AddItem(vista.Fields(1)) <> 0 Then
Combo1.AddItem (vista.Fields(1))
vista.MoveNext
Else
Combo1.AddItem (vista.Fields(2))
vista.MoveNext
End If
Loop
End Sub
DiabloRojo:
Hola vbmc_2004.
La verdad no entiendo que hace esta línea:
--- Citar ---If Combo1.AddItem(vista.Fields(1)) <> 0 Then
--- Fin de la cita ---
Supongo que funcionará si sólo usas:
--- Código: Text --- If vista.Fields(1) <> 0 Then
Y creo que no es necesario que uses:
--- Citar ---vista.MoveNext
--- Fin de la cita ---
Ya que el Do/Loop se encarga de hacerlo.
Espero que te sirva de algo.
DiabloRojo
LUKER:
;) Amigo tu problema como dijo :devil: se encuentra en la linea
--- Código: Text --- If Combo1.AddItem(vista.Fields(1)) <> 0 Then . Debido a que tu verificas que el combo se encuentre vacio y no lo estas haciendo directamente en el registro con el codigo de rojo
--- Código: Text ---If vista.Fields(1) <> 0 Then lo colocas como te dijo rojo y agregas el registro. :) Es muy sencillo, no como para expertos pero yay que podemos hacer :argh: :kicking: Bien por ti Rojo :devil:
vahba:
Sólo por aclarar, creo que estas confundiendo los términos campo y registro: los registros contiene campos y no al revés....
Ahora bien, creo que puedes usar If IsNull([valor del campo]) para derivar el programa y hacer lo que desees según el campo sea nulo o no.
Si sólo deseas evitar el mensaje de error concatena “” & [valor del campo]
Espero te sirva, sino, acerca más datos para poder ayudarte.
Una observación más... mantén el MoveNext porque el Do... Loop NO se encarga de ello.
DiabloRojo:
Hey es cierto lo que dice vahba!!!
El Do/Loop NO se encarga del desplazamiento a través de los registros. Mil disculpas por la información errónea.
Lo que sí creo que deberías colocar antes del Do/Loop es un MoveFirst para que al entrar a el ya estés ubicado en el primer registro.
Suerte a todos.
DiabloRojo
Navegación
[#] Página Siguiente
Ir a la versión completa