• Viernes 8 de Noviembre de 2024, 10:12

Autor Tema:  Seleccionar Campo Por Codigo Y Fecha  (Leído 1327 veces)

eldespiadado

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Seleccionar Campo Por Codigo Y Fecha
« en: Viernes 9 de Mayo de 2008, 07:23 »
0
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

Nebire

  • Miembro HIPER activo
  • ****
  • Mensajes: 670
    • Ver Perfil
Re: Seleccionar Campo Por Codigo Y Fecha
« Respuesta #1 en: Sábado 10 de Mayo de 2008, 22:19 »
0
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.
«Ma non troppo»
----> ModoVacaciones = False<----