SoloCodigo
Programación General => Visual Basic 6.0 e inferiores => Visual Basic para principiantes => Mensaje iniciado por: eldespiadado en Viernes 9 de Mayo de 2008, 07:23
-
Hola a todos y gracias de antemano por las posibles respuestas de los miembros del foro.
El problema que tengo es que crie una base de datos con los siguientes campos
Nombre de la base de datos: Hokioder
Tablas de la base de datos:
Tabla númeo uno: Nombre: Empleados la cual tiene los campos codigo de tipo entero largo y Nombre de tipo texto
Tabla número dos: Entregado la cual tiene los campos Fecha de tipo date, código de tipo entero largo y por último Cantidad de tipo entero largo
el problema consiste en que no reconoce el filtro de la clausula select porque siempre tengo la misma respuesta, independiente del día y el código introducido y esta es la respuesta: MsgBox " El trabajador no tiene cantidades recibidas en ésta fecha"
Observación: Estoy usando un grid1 para mostrar los datos y tengo un text.text denominado Taxiz
Dim Limpiarme As Database
Set Limpiarme = OpenDatabase("C:\Archivos de programa\Microsoft Visual Basic\Hokioder")
ap1c2 = "Agregue el código del trabajador."
ap1c3 = " MOVIMIENTO DIARIO "
Halar$ = InputBox(ap1c2, ap1c3, , 2300, 4000)
venez = Format(Date, "dd/mm/yyyy")
Taxiz.Text = CDate(venez)
If Ensegui = "Select * from Entregado where Fecha = '" & Taxiz.Text & "' and codigo =" + Halar$ Then
goto Leon
Else
MsgBox " El trabajador no tiene cantidades recibidas en ésta fecha"
Exit Sub
End If
Leon:
' Otras sentencias
-
El error aparece directamente en la línea de la sentencia select...
tu le estás preguntando:
ensegui=""
si ensegui es igual a '''lo que sea''' luego...
debes hacerlo en 2 sentencias, donde 1º asignas a ensegui el resultado del select y después lo comparas, lo puedes hacer en una línea también pero si está perfectamente definido.
Especialmente cuando unos es principiante o cuando no domina un tema especialmente el código a generar debe ser menos críptico aunque resulten en unas líneas más de código, ello ayuda a entender mejor el código generado, luego cuando uno se dominándol sentirá que ya puede 'apretar' el código...
entonces te recomiendo lo siguiente:
1º obtén el valor de 'ensegui' en una línea: ensegui= select...lo que sea (la consulta de la base de datos .
2º Si precisa luego un añadido pués se lo añades:, en otra línea hasta que veas y comprendas que va funcionando, además con el debuger paso a paso (tecla f8) puedes ejecutar línea a línea y consultar si una variable tiene el valor esperado.: ensegui= ensegui & 'loquetengas que añadir para compararlo con otra cosa'
3º preguntas: if ensegui= ' lo que quiero que sea ifgaul a ello' then
Por último no veo claro ese 'and codigo' pués que es codigo?, una variable de qué... ten en cuenta 2 cosas más... una operación and a nivel de números suele no dar problemas a nivel de cadenas según la comparación (esto es si mayúsculas o minúsculas se consideran, los espacios a veces suelen dar problemas por 'no verlos' o las tildes parecidas), pero las fechas suelen salir peor paradas con operadores buleanos si no controlamos en todo momento cual es la entrada a comparar y con qué se compara.... por último y no menos importante...
verifica que el formato de fecha tomado de la base de datos coincide con la que tu esperas... ten en cuenta que cuando manejas un dato de tipo 'date' VB tiene la capacidad de convertir el formato de acuerdo a las especificaciones declaradas en e l panel de control en 'idioma y cultura' así como lo propio específicado en las opciones de la base de datos, (busca en la documentación de la base de datos algo como 'collation' para enterarte en profundidad, en cualquier caso puedes verificarlo de la siguiente manera...
sigui= select...
msgbox (sigui )
codigo= 'loquesea'
msgbox (codigo)
esto es antes de entrar en el if... saca por ventana emergente cada dato implicado y así puedes verificar visualmente si lo uno es igual a lo otro.