Programación General > Visual Basic 6.0 e inferiores

 No Compara Dato De Combobox Con Dato De Base De Da

(1/1)

Magraciel:
Hola a todos, espero que me ayuden ya que no entiendo que pasa con este codigo hace rato, bueno primero que todo les digo que el problema es que no me inserta un dato en el tercer  campo Caso_prueba  de la tabla especificar, ya que existen 3 campos , el primero es el código, el segundo nombre_prueba y el tercero caso de prueba , eso si para insertar el caso de prueba previamente tengo que comparar y buscar el codigo de usuario y la prueba seleccionada del combobox (obviamente esas pruebas las saque de la base de dato) para poder insertar la informacion del caso de prueba en el lugar correcto.

Y todo lo que les he contado no lo hace este codigo, este código me inserta como otro registro el codigo y la info del caso de prueba y en el campo nombre_prueba me lo deja vacio.

Todo eso esta malisimo, lo que quiero por ejemplo:
tengo el campo codigo 1234567  y el campo nombre_prueba : ejemplos,  y yo al seleccionar del combobox  la prueba ejemplos,   poder buscar en la base de dato el codigo 1234567 y la prueba ejemplos para poder insertar en el campo caso de prueba la informacion que yo quiera.

A todo esto en la tabla pueden haber varios codigos 1234567 pero con didtintas pruebas o las mismas pruebas.

Lo importante de esto es poder encontrar la considencia entre el codigo y la prueba para ingresarle la informacion del caso de prueba.

Bueno eso es todo espero que me entiendan mi problemita....


Este es el codigo:

Sql = "Select  Código_especificación,nombre_prueba From Especificar_calendario_plazos "
   Sql = Sql & " Where Código_especificación = " & Cod
   rs.Open Sql, cnn1, adOpenStatic
   If rs!Código_especificación = Cod Then
   MsgBox " coinciden las codigos", vbInformation
         
    MsgBox Combo1.List(Combo1.ListIndex)
     
       If rs!nombre_prueba = Combo1.Text Then
             MsgBox " coinciden las pruebas", vbInformation
             cnn1.Execute " update Especificar_calendario_plazos set nombre_caso_prueba='" & in_caso_prueba & "' where codigo_especificacion='" & Cod & "'"
                Else
               
                  MsgBox " No coinciden las pruebas", vbInformation
               
       End If
   End If



AYUDA!!!!!!!!

Shiquilla:
Buenas Magraciel, me he leido 3 veces tu mensaje y no sé si lo entendí bien.

Lo que yo he entendido:

Tienes una tabla con 3 campos y tienes un formulario para ingresar registros en ella. Tienes un combo donde eliges un campo descriptivo pero que en la INSERT debe ir el código de éste (el campo descriptivo seleccionado)

Deducción a lo que yo he entendido:
En vez de cargar el combo con el campo descripción y después  buscar su código en BD, carga el combo guardándote el campo código junto con la descripción (en este caso el campo que se va a mostrar, sin que vea el usuario el campo código claro está)

Ejemplo:


--- Código: Text ---'Para cargar el comboPrivate Sub msCargarCombo() Dim lsSQL As StringDim loRS As Recordset     Combo1.Clear    lsSQL = "Select * from Tabla "    Set loRS = goBD.Execute(lsSQL)    While Not loRS.EOF        Combo1.AddItem IIf(Not IsNull(loRS!Descripcion), loRS!Descripcion, "")        Combo1.ItemData(Combo1.NewIndex) = IIf(Not IsNull(loRS!Codigo), loRS!Codigo, 0)        loRS.MoveNext    Wend    loRS.Close    Set loRS = Nothing    End Sub 'Para saber el código del elemento seleccionadoPrivate Sub Combo1_Click()Dim Codigo As Long    If Combo1.ListIndex <> -1 Then        Codigo = Combo1.ItemData(Combo1.ListIndex)        MsgBox "El codigo del campo " & Combo1.Text & " es el " & Codigo    End IfEnd Sub 
Espero no haberme equivocado y que esto de sirva de algo.

PD: Este código sólo sirve si el campo clave y/o código del elemento a cargar es de tipo numérico.

O bien se solucionaría utilizando tu código pero formateando los strings para evitar la comparación de minúsculas y mayúsculas:

--- Código: Text ---    Sql = "Select Código_especificación,nombre_prueba From Especificar_calendario_plazos "    Sql = Sql & " Where Código_especificación = " & Cod    rs.Open Sql, cnn1, adOpenStatic    If CLng(rs!Código_especificación) = CLng(Cod) Then        MsgBox " coinciden las codigos", vbInformation        MsgBox Combo1.List(Combo1.ListIndex)        If UCase(Trim(rs!nombre_prueba)) = UCase(Trim(Combo1.Text)) Then            MsgBox " coinciden las pruebas", vbInformation            cnn1.Execute " update Especificar_calendario_plazos set nombre_caso_prueba='" & in_caso_prueba & "' where codigo_especificacion='" & Cod & "'"        Else            MsgBox " No coinciden las pruebas", vbInformation        End If    End If 
Saludos,

Magraciel:
La verdad es que me entendiste mal, ahora explicaré mas claramente.

1.- TENGO UNA BASE DE DATOS SQL CON  TABLAS, UNA DE ESAS TABLAS SE LLAMA ESPECIFICAR_CALENDARIO_PLAZOS, TIENE 3 CAMPOS: CÓDIGO_ESPECIFICAR, NOMBRE_PRUEBA, NOMBRE_CASO_PRUEBA.


2.- AL INGRESAR A LA APLICACION SE DEBE INGRESAR CON UN CODIGO QUE EL MISMO USUARIO INVENTA E INGRESA.


3.- ESE CODIGO ES PARA IDENTIFICAR AL USUARIO CON SUS DATOS.


4.- EN LA APLICACIÓN TENGO UN FORMULARIO1 CON UN TEXTBOX PARA INGRESAR EL NOMBRE_PRUEBA.

5.- ESTE NOMBRE DE PRUEBA SE ALMACENA EN EL CAMPO NOMBRE_PRUEBA  Y CON EL CODIGO DE USUARIO EN EL CAMPO CODIGO_ESPECIFICAR EN  LA TABLA ESPECIFICAR_CALENDARIO_PLAZOS.

6.- EN UN SEGUNDO FORMULARIO2  TENGO UN COMBOBOX Y UN TEXTBOX DONDE DEL COMBOBOX SE DESPLEGAN LOS NOMBRES DE LAS PRUEBAS QUE EL USUARIO INGRESO EN EL FORMULARIO1, OSEA LOS NOMBRE_PRUEBA DEL CODIGO DEL USUARIO (CODIGO_ESPECIFICAR) QUE INGRESO A LA APLICACIÓN,  Y EN EL TEXTBOX SE INGRESA EL NOMBRE  CASO DE PRUEBA.

7.- CUANDO SELECCIONO UNA PRUEBA DEL COMBOBOX, ESTA PRUEBA TENGO QUE BUSCARLA EN LA TABLA ESPECIFICAR_CALENDARIO_PLAZOS DONDE EN EL CAMPO_PRUEBA DEBE ESTAR LA PRUEBA SELECCIONADA DEL COMBOBOX Y EN EL CAMPO CODIGO_ESPECIFICAR DEBE ESTAR EL CODIGO DE USUARIO CON QUE INGRESE A LA APLICACION.

8.- AL ENCONTRAR EL CODIGO_ESPECIFICAR Y NOMBRE_PRUEBA VALIDO, SE PUEDE INSERTAR EN EL TERCER CAMPO NOMBRE_CASO_PRUEBA EL NOMBRE DEL CASO DE PRUEBA QUE INGRESARE EN EL TEXTBOX  DEL FORMULARIO2.


ESO ES LO QUE QUIERO HACER PERO CON ESTE CÓDIGO NO ME RESULTA:

ESTE ES EL CODIGO DE SELECCION DEL COMBOBOX.

 SQL = "Select  Código_especificación,nombre_prueba From Especificar_calendario_plazos "
    SQL = SQL & " Where Código_especificación = " & Cod
    rs.Open SQL, cnn1, adOpenStatic
   
    If rs!Código_especificación = Cod Then
      MsgBox "  coinciden las codigos", vbInformation
      MsgBox Combo1.List(Combo1.ListIndex)
      If rs!nombre_prueba = Combo1.Text Then
        cnn1.Execute " insert into Especificar_calendario_plazos (nombre_caso_prueba) values ('" & in_caso_prueba & "' )"
      Else
        MsgBox " No coinciden las pruebas", vbInformation
      End If
   End If




AYUDA!!!!!!

Navegación

[0] Índice de Mensajes

Ir a la versión completa