Problemas con SQL y datos
Hola
Estoy modificando un programa realizado por otra persona y tengo un problema con la impresión de unos ticket.
El programa controla si un ticket se ha modificado o no mediante el campo LOTE de una base de datos. Cuando éste vale 1, significa que es el ticket actual, con modificaciones caso de tenerlas.
En principio el programa estaba hecho para que sólo se pudieran imprimir los
ticket con LOTE=1, ya que los modificados, aunque se guardan no eran los tickets actuales.
El asunto es que interesa poder imprimir esos tickets antiguos también en un momento dado.
Para acceder al ticket sobre el que estoy, se realiza una consulta en SQL
(No sabía nada de SQL, me he tirado un buen rato estudiando un manual por
Internet).
En esa consulta se coge el registro haciendo coincidir el campo codval con
la variable NTicket, y de los posibles registros (puede haber varios ticket
con el mismo código de vale, y con distinto LOTE), coge el que tiene lote=1.
Esa línea sería la comentada debajo de modificaciones.
He intentado que esa consulta coja el ticket cuyo código de ticket sea
NTicket y para que coja el registro sobre el que se esté, independientemente
del valor de LOTE, le he dado a lote el valor de la variable NumeroLote. La
he creado yo, y le he dado el valor de un textbox donde se encuentra el
valor del LOTE del registro donde me encuentre.
No me funciona, me sigue imprimiendo el que tiene lote=1, he probado también
no decirle nada acerca del lote, es decir, poner esto:
sQL = "Select * from Vales where codval = " & NTicket.
Me sigue cogiendo el que tiene el valor lote=1, ya que coincide con el
primero que se encuentra.
He continuado con parte del código que imprime el ticket, por si el fallo
pudiera estar ahí.
Muchas gracias de antemano.
'modificaciones
'***************************************************************************
*******
'***************************************************************************
*******
NumeroLote = val(LisTicket.txtLote.Text)
'sQL = "Select * from Vales where codval = " & NTicket & " AND lote
=1"
sQL = "Select * from Vales where codval = " & NTicket & " AND lote =
" & NumeroLote
'***************************************************************************
*******
'***************************************************************************
*******
Set RegVales = Db.OpenRecordset(sQL, 2)
If RegVales.RecordCount = 0 Then
MsgBox "No se ha encontrado el ticket.", vbExclamation
Exit Sub
End If
On Error Resume Next
CodSocio = RegVales!CodProv
'DATOS DEL TICKET ACTUAL
DesgloseBas(1).NBascula = RegVales!NBascula
DesgloseBas(1).IDBASCULA = RegVales!IDBASCULA
DesgloseBas(1).PRODBASCULA = RegVales!Productobascula
DesgloseBas(1).HComienzo = RegVales!HComienzo
DesgloseBas(1).HFin = RegVales!HFin
DesgloseBas(1).Fecha = RegVales!Fecha
DesgloseBas(1).KgPesados = RegVales!KgPesados
Observ = RegVales!OBSERVACION
TipoPesTicket = RegVales!TipoPesaje
CadBas = ""
Dim Numtrasp As Long
Numtrasp = RegVales!TRASPASO
KGTOTALES = TOTAL
Etc...
...
Estoy modificando un programa realizado por otra persona y tengo un problema con la impresión de unos ticket.
El programa controla si un ticket se ha modificado o no mediante el campo LOTE de una base de datos. Cuando éste vale 1, significa que es el ticket actual, con modificaciones caso de tenerlas.
En principio el programa estaba hecho para que sólo se pudieran imprimir los
ticket con LOTE=1, ya que los modificados, aunque se guardan no eran los tickets actuales.
El asunto es que interesa poder imprimir esos tickets antiguos también en un momento dado.
Para acceder al ticket sobre el que estoy, se realiza una consulta en SQL
(No sabía nada de SQL, me he tirado un buen rato estudiando un manual por
Internet).
En esa consulta se coge el registro haciendo coincidir el campo codval con
la variable NTicket, y de los posibles registros (puede haber varios ticket
con el mismo código de vale, y con distinto LOTE), coge el que tiene lote=1.
Esa línea sería la comentada debajo de modificaciones.
He intentado que esa consulta coja el ticket cuyo código de ticket sea
NTicket y para que coja el registro sobre el que se esté, independientemente
del valor de LOTE, le he dado a lote el valor de la variable NumeroLote. La
he creado yo, y le he dado el valor de un textbox donde se encuentra el
valor del LOTE del registro donde me encuentre.
No me funciona, me sigue imprimiendo el que tiene lote=1, he probado también
no decirle nada acerca del lote, es decir, poner esto:
sQL = "Select * from Vales where codval = " & NTicket.
Me sigue cogiendo el que tiene el valor lote=1, ya que coincide con el
primero que se encuentra.
He continuado con parte del código que imprime el ticket, por si el fallo
pudiera estar ahí.
Muchas gracias de antemano.
'modificaciones
'***************************************************************************
*******
'***************************************************************************
*******
NumeroLote = val(LisTicket.txtLote.Text)
'sQL = "Select * from Vales where codval = " & NTicket & " AND lote
=1"
sQL = "Select * from Vales where codval = " & NTicket & " AND lote =
" & NumeroLote
'***************************************************************************
*******
'***************************************************************************
*******
Set RegVales = Db.OpenRecordset(sQL, 2)
If RegVales.RecordCount = 0 Then
MsgBox "No se ha encontrado el ticket.", vbExclamation
Exit Sub
End If
On Error Resume Next
CodSocio = RegVales!CodProv
'DATOS DEL TICKET ACTUAL
DesgloseBas(1).NBascula = RegVales!NBascula
DesgloseBas(1).IDBASCULA = RegVales!IDBASCULA
DesgloseBas(1).PRODBASCULA = RegVales!Productobascula
DesgloseBas(1).HComienzo = RegVales!HComienzo
DesgloseBas(1).HFin = RegVales!HFin
DesgloseBas(1).Fecha = RegVales!Fecha
DesgloseBas(1).KgPesados = RegVales!KgPesados
Observ = RegVales!OBSERVACION
TipoPesTicket = RegVales!TipoPesaje
CadBas = ""
Dim Numtrasp As Long
Numtrasp = RegVales!TRASPASO
KGTOTALES = TOTAL
Etc...
...
Respuesta de fvomaster
1