• Lunes 29 de Abril de 2024, 06:00

Autor Tema:  No Compara Dato De Combobox Con Dato De Base De Da  (Leído 1254 veces)

Magraciel

  • Nuevo Miembro
  • *
  • Mensajes: 13
    • Ver Perfil
No Compara Dato De Combobox Con Dato De Base De Da
« en: Martes 23 de Agosto de 2005, 22:49 »
0
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

  • Miembro MUY activo
  • ***
  • Mensajes: 188
  • Nacionalidad: es
    • Ver Perfil
    • http://www.songesoft.com
Re: No Compara Dato De Combobox Con Dato De Base De Da
« Respuesta #1 en: Domingo 28 de Agosto de 2005, 19:06 »
0
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
  1. 'Para cargar el combo
  2. Private Sub msCargarCombo()
  3.  
  4. Dim lsSQL As String
  5. Dim loRS As Recordset
  6.  
  7.     Combo1.Clear
  8.     lsSQL = "Select * from Tabla "
  9.     Set loRS = goBD.Execute(lsSQL)
  10.     While Not loRS.EOF
  11.         Combo1.AddItem IIf(Not IsNull(loRS!Descripcion), loRS!Descripcion, "")
  12.         Combo1.ItemData(Combo1.NewIndex) = IIf(Not IsNull(loRS!Codigo), loRS!Codigo, 0)
  13.         loRS.MoveNext
  14.     Wend
  15.     loRS.Close
  16.     Set loRS = Nothing
  17.     
  18. End Sub
  19.  
  20. 'Para saber el código del elemento seleccionado
  21. Private Sub Combo1_Click()
  22. Dim Codigo As Long
  23.     If Combo1.ListIndex <> -1 Then
  24.         Codigo = Combo1.ItemData(Combo1.ListIndex)
  25.         MsgBox "El codigo del campo " & Combo1.Text & " es el " & Codigo
  26.     End If
  27. End Sub
  28.  

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
  1.     Sql = "Select Código_especificación,nombre_prueba From Especificar_calendario_plazos "
  2.     Sql = Sql & " Where Código_especificación = " & Cod
  3.     rs.Open Sql, cnn1, adOpenStatic
  4.     If CLng(rs!Código_especificación) = CLng(Cod) Then
  5.         MsgBox " coinciden las codigos", vbInformation
  6.         MsgBox Combo1.List(Combo1.ListIndex)
  7.         If UCase(Trim(rs!nombre_prueba)) = UCase(Trim(Combo1.Text)) Then
  8.             MsgBox " coinciden las pruebas", vbInformation
  9.             cnn1.Execute " update Especificar_calendario_plazos set nombre_caso_prueba='" & in_caso_prueba & "' where codigo_especificacion='" & Cod & "'"
  10.         Else
  11.             MsgBox " No coinciden las pruebas", vbInformation
  12.         End If
  13.     End If
  14.  

Saludos,
« §hÿqµïllæ »

Magraciel

  • Nuevo Miembro
  • *
  • Mensajes: 13
    • Ver Perfil
Re: No Compara Dato De Combobox Con Dato De Base De Da
« Respuesta #2 en: Martes 30 de Agosto de 2005, 01:47 »
0
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!!!!!!