Programación General > Visual Basic para principiantes

 Conventir entero a cadena o.o?

(1/2) > >>

lineare:
Hola disculpen quisiera saber si es posible poder evaluar una lista de un combobox que contiene numero a una cadena ya que en mi consulta el campo es texto.


--- Código: Visual Basic ---Private Sub Option1_Click(Index As Integer)'Pone en blanco las columnas de datagrid y los combo de consulta    Combo1.Clear    Combo2.Clear    Combo3.Clear    DataGrid1.ClearSelCols'COMIENZA LA CONSULTA DEPENDIENDO DEL RESULTADO DE LOS OPTION BOTON    X = Index + 1    If X = 10 Then X = "A"    If X = 11 Then X = "B"    linea.RecordSource = "SELECT * From sqlies WHERE estacion.linea = '" & X & "'"    linea.Refresh    Do While Not linea.Recordset.EOF        Combo1.AddItem linea.Recordset.Fields(1)        Combo3.AddItem linea.Recordset.Fields(1)        linea.Recordset.MoveNext    Loop    Combo1.ListIndex = 0End Sub Private Sub Combo1_Click()'DA LA CONSULTA DE LAS ESTACIONES    If Combo1.text = "No hay ninguna estación seleccionada " Then    Exit Sub    Combo3.ListIndex = Combo1.ListIndex    [color=#FF4000]linea.RecordSource = "SELECT estacion.nombre_estacion FROM sqlies WHERE estacion.orden=" _    & Val(Combo3.text)[/color]    linea.Refresh    Combo2.Clear    Do While Not linea.Recordset.EOF        Combo2.AddItem linea.Recordset.Fields(0)        linea.Recordset.MoveNext    Loop    Combo2.ListIndex = 0End Sub  

lo que necesito es que en el combo 2 se desplieguen la lista de nombres de pendiendo del option boton que se seleccione

De antemano muchas gracias espero sus sugerencias  ^_^

Nebire:
No acabo de entender lo que quieres, asumo que no te explicas con claridad.



Un combobox, puede ser comparado por el texto que aloja o por el índice. En esto es lo mismo que una matriz.

Comparar usando el índice (no nos importa el texto en este caso)

--- Código: Visual Basic --- if combo1.listindex = 5 then  ' el código que se quiera asociar.end if  Aquí le hemos preguntado si está seleccionado el elemento 5º en el combobox, no nos importa su contenido. Esto es útil cuando el contenido puede variar pero sabemos de fijo que implica. Por ejemplo imagina un combobox con 7 elementos. El elemento 0 podría ser nombre de país, el elemento1 nombre de ciudad, ................ el elemento 5 nombre de persona, y el elemento 6 número de afiliación a lo que sea. Entonces en el ejemplo, le estaríamos indicando qué interesa saber; si está seleccionado el nombre, sea éste el que sea.

Otro caso, comparando el texto seleccinado (el contenido del índice seleccionado)

--- Código: Visual Basic --- if combo1.list(combo1.listindex)= "Pedro" then    ' el código asociado que queremos ejecutarend if  Como puedes observar el acceso al texto es a través de su propiedad list(número), imagina simplemente que tiene una matriz llamada list, así de simple.
Si invocamos como índice de la matriz, el valor: 'combo1.listindex', pués es claro que el índice deseado es el índice seleccionado. Esto es útil para comparar elementos cuya naturaleza son todas del mismo tipo (para esto un listbox suele ser más explícito aunque ocupa más espacio, por el despliegue).

Los combos son útiles para contener diferentes tipos de 'elementos' (nada impide que contengan un único tipo de 'elementos') y las listas son muy útiles para los elementos del mismo tipo. Imagina un combo con 3 elementos: Unidades, carpetas y ficheros e imagina una lista donde tras seleccionar uno de esos 3 elementos se llena con las unidades del sistema, las carpetas de la unidad actual o los ficheros de la carpeta actual.

El uso es totalmente libre, sin embargo es ese uso el que nos indica cuando nuestra selección exige una comparación por índice o por 'texto', en el caso del combo donde hay varios 'elementos' distintos, utilizar el índice es más rápido, cómodo y claro que comparar por el texto, en cambio cuando el combo tiene todos sus ítems de un único 'elemento' la utilidad recáe en el texto.

Otro código... recorrer el combo, es lo mismo que recorrer una matriz.

--- Código: Visual Basic --- for k= 0 to combo.listcount -1     if combo.list(k)= Nombre then          ' el código asociado.     end ifnext  
Sólo recordar que a diferencia de una lista, un combo actúa exclusivamente como una matriz de options-button, es decir sólo hay 1 elemento seleccionado a la vez (una lista permite múltiple selección, el combo no).

El combo, te indiqué mas arriba tiene ese doble 'comportamiento' (cada elemento puede representar una familia, o todos los elementos pertenecen a la misma familia), que no es un comportamiento íntrínseco del control, sino exclusivamente del diseño (el concepto que tu albergas). Es importante comprender esto explicado, para sacar el mayor provecho posible aun combobox.... Pero precisamente porque existe el listbox, el combobox carece de sentido que tenga múltiple selección.

Entonces, ¿ cómo miramos la múltiple selección...? imagina que tenemos un hotel y se requiere de los clientes que elijan qué días quieren recibir el desayuno a lo largo de la semana... cargamos un listbox con los días de la semana, en el listbox se activa la propiedad multiselect (y si se se requiere utilizar casillas de marca style=checkbox). Este código lo omitimos luego entenderás que es fácilmente deducible de los siguientes...

Luego, para preparar los desayunos ... para saber la lista de hoy 'Jueves' de los clientes a los que hay que preparar el desayuno, tendremos 2 listbox, en uno los nombres de los clientes, cuyo índice es el nº de habitación y en otro listbox se cargará la lista de la semana de ese cliente.(esto último es imprescindible porque usamos una base de datos, tiene un carácter explicativo).

--- Código: Visual Basic ---     dim Hoy as byte    Hoy = 4 ' jueves    For k = 0 to listHabitaciones.listcount-1          if listHabitaciones.list(k)<>"" then   ' la habitación no está desocupada, hay un cliente                ' 1 cargar la lista desayuno semanal (que eligió el cliente) desde la base de datos al listbox, luego...                ' 2 el cliente de la habitación k, tiene encargado desayuno para hoy ?               if listDesayuno.Selected(Hoy)= TRUE then                     ' 3 preparar desayuno para la habitación k               end if          end if    next  Naturalmente si utilizamos una base de datos esto lo haríamos sin necesidad de listbox, pero se trata de explicar la funcionalidad del listbox y del combobox.

Otro modo de recorrer un listbox, pero para comprobar su propiedad múltple selección

--- Código: Visual Basic --- for k= 0 to list1.listcount -1     if list1.selected(k) = true then           ' lo que vayamos a hacer...     end ifnext  
Por último, cuando usamos un combo, podemos además elegir un comportamiento ligeramente diferente basado en la propiedad style del combobox, por defecto se suele usar la opción 'dropdown combo', con esta opción es posible introducir un texto que no figura en la lista, el evento change se encargade registrar este caso, pero sólo deberíamos marcar que ha existido cambió y validarlo con el evento validate, hay que evento change ocurre con cada carácter pulsado . Pero imagina que tenemos los días de la semana en un combo, evidentemente no nos podemos arriesgar a que alguien ponga 'pepino' como selección, sino que los días deben ser fijos desde lunes hasta domingo, en este caso, en la propiedad style elegimos 'Dropdown list'.

Supongo que dadas las explicaciones debería quedarte claro el tema aunque yo no haya entendido realmente cual es tu problema.

----------------
p.d.: Ahora al volver a leerte lo que preguntas, me parece entender lo que tan farragosamente has liado... de hecho la pregnta está mal planteada y podrías haber omitido todo el código porque ni siquiera tiene que ver con combos ni base de datos.
al parecer tu quieres procesar una variable numérica como string, esto es algo tan elemental, en los lenguajes que debería estar prohibido preguntarlo. Por que es una simple conversión de datos. Después de aprender los tipos de datos básicos que admite un lenguaje lo siguiente a aprender es como convertir uno en otro cuando esto es posible:


--- Código: Visual Basic ---   dim Precio as long  dim Valor as string      Precio = 1033      Valor= CStr(Precio) & "Euros."  asignamos sobre una variable string, el valor de una variable numérica, para ello lo convertimos (convertString)     msgbox valor       

lineare:
Hola muchas gracias por responder y me disculpo por no ser tan explicits el problema que tengo es que cuando ejecuto el programa me aparece el siguiente error:

No se han especificado valores para algunos de los parametros requeridos

y cuaqndo le pongo en depurar me sale que esta llinea de codigo esta mal


--- Código: Visual Basic ---RecordSource = "SELECT estacion.nombre_estacion FROM sqlies WHERE estacion.orden=" & Val(Combo3.text) 
lo que no estiendo es porque me marca error si este codigo ya habia funcionado con otra base de datos crei que seria por que lo estaba tomando como entero ya que trabaje con matrices pero al parecer es otra cosa

Nebire:

--- Código: Visual Basic ---if combo3.text <>"" then      RecordSource = "SELECT estacion.nombre_estacion FROM sqlies WHERE estacion.orden = " & Combo3.textend if Nota el:  Combo3.text , sin el val, la base de datos espera una cadena de textos, así el valor sea un número. Una query pasada por vb es una cadena de texto, espera TEXTO. si el registro luego resulta almacenar datos numéricos, luego ya lo convertirá a numero...

p.d.: acostúmbrate a dejar espacios en blanco donde vayan, ya que  'orden=' es distinto de 'orden =' lo mismo que 'x + 3' es una operación, 'x+3' se interpreta como una variable, no como una operación.

lineare:
Hola disculpa la molestia pero al momento de ejecutar me sale un error y el mensaje que me aparece es relacionado al adodc "No se han especificado valores para algunos de los parametros requeridos la verdad no se a que se deba ya revise varias veces la conexion y esta al igual que la consulta


--- Código: Visual Basic --- Private Sub Combo1_Click()'DA LA CONSULTA DE LAS ESTACIONES    If Combo1.Text = "No hay ninguna estación seleccionada " Then Exit Sub    Combo3.ListIndex = Combo1.ListIndex    If Combo3.Text <> "" Then    linea.RecordSource = "SELECT estacion.nombre_estacion FROM sqlies WHERE estacion.linea = " & Combo3.Text    linea.Refresh    Combo2.Clear    Do While Not linea.Recordset.EOF        Combo2.AddItem linea.Recordset.Fields(2)        linea.Recordset.MoveNext    Loop    Combo2.ListIndex = 0    End IfEnd Sub  

De antemano muchas gracias por t ayuda y paciencia :hola:

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa