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
Ir a la versión completa