Visual Basic - Maquina tragaperras. Problemas con Update

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil
Val: 17
Ha disminuido su posición en 5 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Maquina tragaperras. Problemas con Update

Publicado por jonatan (9 intervenciones) el 20/06/2019 11:23:53
Buenos días

Lo primero agradecer cualquier ayuda ya que estoy un poco atrancado y no se por donde tirar.

Mi proyecto es una maquina tragaperras vinculada a una base de datos access que guarda información en tres tablas.

Cuando abrimos la aplicación, se guarda informacion en la tabla PARTIDAS la hora actual y el CreditoIni (credito inicial, por defecto 10), Hasta aquí todo bien. Dejo código para que lo veáis

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Private Sub Maquina_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Try
            'abrimos la conexion
            Enlace()
            'creamos la consulta
            Dim consulta3 As String = "INSERT INTO Partidas (Hora, CreditoIni ) values ('" & HoraInicio & "'," & Saldo & ")"
            comando = New OleDb.OleDbCommand(consulta3, conexion)
            comando.ExecuteNonQuery()
 
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        Finally
            'cerramos conexion
            conexion.Close()
        End Try
 
    End Sub
.

Cuando pasamos al interfaz de la maquina hay dos botones: iniciar y parar.

Al pulsar el botón INICIAR ,gastamos un crédito y podemos repetir este proceso hasta quedarnos sin créditos.

Con el botón de PARAR, se hace la repartición de premios en el caso de ser un afortunado y también guardamos datos en varias tablas. Hasta aquí todo correcto.

El PROBLEMA me viene dado cuando intento actualizar la tabla PARTIDAS . Mi idea es que cuando el usuario se canse y cierre la aplicación me actualice la tabla con el saldo que tiene disponible.

Lo he intentado de varias formas y siempre con el mismo error 'No coinciden los tipos de datos en la expresión de criterios.'. He leído sobre este error pero he verificado los datos que estoy intentado insertar o actualizar y están correctos.

Aquí podéis ver la consulta que utilizo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Private Sub Maquina_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
 
        Dim dr As DialogResult = MessageBox.Show("¿Seguro que desea dejar de jugar?", "Confirme", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
 
        If (dr = DialogResult.No) Then
            ' Cancelamos el cierre del formulario.
            e.Cancel = True
 
        Else
            Me.Dispose()
            'Actualizamos datos  en la tabla PARTIDAS
            Enlace()
            'creamos la consulta
            Dim consulta4 As String = "UPDATE Partidas SET CreditoFin = " & Saldo & " WHERE Hora = '" & HoraInicio & "'"
            ' insertamos la consulta en el oldbComand
            comando = New OleDb.OleDbCommand(consulta4, conexion)
            ' ejecutamos consulta
            comando.ExecuteNonQuery()
 
        End If
 
    End Sub

Cualquier duda intentare aclararla lo mejor posible.

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Andres Leonardo
Val: 3.117
Oro
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Maquina tragaperras. Problemas con Update

Publicado por Andres Leonardo (1798 intervenciones) el 20/06/2019 15:30:23
'Me parece que lo que quieres hacer es poner un valor en un campo que no es correcto
Ejemplo que el campo saldo sea Alfanumerico, entonces deberia ser entre comillas

Intenta hacer el mismo UPDATE directo en la base de access cuando lo resuelvas ahi lo podras hacer en tu vb ya que para mi el tema no es vb es access que te esta validando el campo

Saludoss
1
2
3
4
5
6
'despues de esta
Dim consulta4 As String = "UPDATE Partidas SET CreditoFin = " & Saldo & " WHERE Hora = '" & HoraInicio & "'"
'coloca
debug.print consulta4 podras ver como se estan haciendo los scripts....
 
'por cierto deberias actualizar tambien no por hora inicio si no tambien por el id de usuario
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 17
Ha disminuido su posición en 5 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Maquina tragaperras. Problemas con Update

Publicado por jonatan (9 intervenciones) el 21/06/2019 09:55:54
Buenos días

YA hice la prueba en acces, utilice esta misma consulta sustituyendo el campo CreditoFIn = 7 y en Hora = la hora en la que inicio el ultimo jugador y fue perfecto. Por eso la estoy utilizando en el proyecto y no tengo ni idea de cual es el problema.

Cuando te refieres a que el campo Saldo tiene que ir entre comillas te refieres a comillas simples igual que tengo el campo Hora?
También he probado con esta consulta y tengo el mismo problema.
1
Dim consulta4 As String = "UPDATE Partidas SET CreditoFin = '" & Saldo & "' WHERE Hora = '" & HoraInicio & "'"
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Andres Leonardo
Val: 3.117
Oro
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Maquina tragaperras. Problemas con Update

Publicado por Andres Leonardo (1798 intervenciones) el 21/06/2019 21:07:37
entonces la hora es sin comilla yo decia que intentes con el resultado que te da concatenar consulta4

puedes mostrarme que valor tiene consulta4

saludso
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 17
Ha disminuido su posición en 5 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Maquina tragaperras. Problemas con Update

Publicado por jonatan (9 intervenciones) el 01/07/2019 12:45:56
Buenos dias.

Hora tiene que ir con comillas, si no, el error que me muestra es que faltan las comillas simples.

El valor que muestra es : "UPDATE Partidas SET CreditoFin = 9 WHERE Hora = 01/07/2019 12:36:07"

y ya me muestra el error en la siguiente linea de código. Dejo una imagen.

1
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Andres Leonardo
Val: 3.117
Oro
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Maquina tragaperras. Problemas con Update

Publicado por Andres Leonardo (1798 intervenciones) el 01/07/2019 17:10:29
Ejecuta esto en el access


1
2
UPDATE Partidas SET CreditoFin = 9 WHERE Hora = '01/07/2019 12:36:07'
'Verifica si el formato fecha es correcto
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 17
Ha disminuido su posición en 5 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Maquina tragaperras. Problemas con Update

Publicado por jonatan (9 intervenciones) el 02/07/2019 11:46:30
En la fecha esta el fallo.

La tengo puesto en tipo de dato Fecha/HORA y formato fecha general. Haciendo un INSERT me funciona perfectamente y me genera esa fecha. Pero con el update me da error.

Alguna idea? Estoy perdidisimo y sobre todo muchas gracias por la ayuda
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Andres Leonardo
Val: 3.117
Oro
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Maquina tragaperras. Problemas con Update

Publicado por Andres Leonardo (1798 intervenciones) el 02/07/2019 15:36:31
Sube una base ejemplo en access para revisar
saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 17
Ha disminuido su posición en 5 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Maquina tragaperras. Problemas con Update

Publicado por jonatan (9 intervenciones) el 03/07/2019 09:40:23
Aquí te adjunto la base de datos completa
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Andres Leonardo
Val: 3.117
Oro
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Maquina tragaperras. Problemas con Update

Publicado por Andres Leonardo (1798 intervenciones) el 03/07/2019 20:44:56
Intenta asi


1
2
3
'El formato de la hora debe ser 24H en la clausula ejemplo hora  13 o  1
UPDATE Partidas SET CreditoFin = 9 WHERE
Hora = #19/06/2019 13:11:21#;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Andres Leonardo
Val: 3.117
Oro
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Maquina tragaperras. Problemas con Update

Publicado por Andres Leonardo (1798 intervenciones) el 03/07/2019 21:23:15
debes colocar en vez de entre comillas entre ##

avisanos como te fue
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 17
Ha disminuido su posición en 5 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Maquina tragaperras. Problemas con Update

Publicado por jonatan (9 intervenciones) el 04/07/2019 09:43:09
no hay error pero cero lineas actualizadas..... he probado cambiando la condición a idPartidas y actualiza perfectamente. No entiendo como puede sacar error si pongo la hora.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 17
Ha disminuido su posición en 5 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Maquina tragaperras. Problemas con Update

Publicado por jonatan (9 intervenciones) el 04/07/2019 19:38:22
Y a ti te ha estado actualizado la línea? Porque yo he copiado y pegado la hora de una línea y nada. No actualizado ningún campo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Andres Leonardo
Val: 3.117
Oro
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Maquina tragaperras. Problemas con Update

Publicado por Andres Leonardo (1798 intervenciones) el 04/07/2019 21:03:26
Pues si claro que me la actualiza, pero como te digo el formato debe ser 24 horas sin Am PM

y funciona perfecto ... Adjunto imagenes

AccessUpdate2
AccessUpdate
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 17
Ha disminuido su posición en 5 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Maquina tragaperras. Problemas con Update

Publicado por jonatan (9 intervenciones) el 05/07/2019 09:05:56
Buenos dias

Como puedes ver en el formato de la hora esta el general, este muestra la hora de 24 no de 12.

1

y luego en las dos siguientes imagenes se ve que pongo el mismo formato y la misma hora para actualizar el campo CreditoFin sin suerte
2
3

No se si tu le has cambiado el formato de la hora o algo pero no hay manera.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Andres Leonardo
Val: 3.117
Oro
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Maquina tragaperras. Problemas con Update

Publicado por Andres Leonardo (1798 intervenciones) el 05/07/2019 17:54:40
Que extraño pues no le he cambiado nada

Yo te recomiendo crear campos diferentes y crear un campo ID donde tenga el valor unico

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 17
Ha disminuido su posición en 5 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Maquina tragaperras. Problemas con Update

Publicado por jonatan (9 intervenciones) el 08/07/2019 10:05:42
Como realmente lo único que me interesa era la hora ya había probado a cambiar el formato del campo y seguía en las mismas. Pero bueno, este fin de semana se me ha ocurrido unas cosas y voy a hacer los cambios y pruebas pertinentes. Ya te comentare que tal el resultado.

Mil gracias por todo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Andres Leonardo
Val: 3.117
Oro
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Maquina tragaperras. Problemas con Update

Publicado por Andres Leonardo (1798 intervenciones) el 08/07/2019 15:53:35
Correcto pero guarda la fecha y como campo unico un formate fechahora pero campo unico

en vez de guardar 19/06/2019 13:05:06 guardas 19062019130506 - lo cual seria unico y si lo queires hacer fecha hora lo formateas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar