none
Grabar datos en el ultimo registro de una tabla en Access desde VB.NET 2012 RRS feed

  • Pregunta

  • Hola amigos.

    Estoy desarrollando un aplicación en VB.NET 2012 con Access 2010 que guarda los gastos y asignaciones al personal. lo malo que al guardar no lo hace en el ultimo registro lo hace en cualquier registro de la tabla incluso el ID esta en autonumérico, cuando realizo una consulta "select last(fecha) as Ultimo_Registro from tabla"  me arroga un registro  antiguo y no el ultimo que se grabo... es posible decirle al programa: ir al ultimo registro de la tabla y ejecutar la instrucción para guardar?...en VB.6.0 creabas un Recorset asociándolo a una tabla luego movías el Recorset al ultimo registro recorset.MoveLast, luego de eso se programaba la instrucción para grabar. existe algo similar en .NET 2012? alguien tiene algún ejemplo?.

    mi aplicaicón utiliza este código en el botón Grabar:

    Dim comandos As New OleDbCommand

    comandos = New OleDbCommand("insert into OPERACION (FECHA, TECNICO, DETALLE, ABONO, GASTO, SALDO) VALUES(TSS_FECHA, CB_TCO, TXTDET, TXTMONTO, txtGASTO, TXTSALDOFIN)", cn)

    comandos.Parameters.AddWithValue("@FECHA", TSS_FECHA.Text)
    comandos.Parameters.AddWithValue("@TECNICO", CB_TCO.Text)
    comandos.Parameters.AddWithValue("@DETALLE", txtdet.Text)
    comandos.Parameters.AddWithValue("@ABONO", txtmonto.Text)
    comandos.Parameters.AddWithValue("@GASTO", txtGASTO.Text)
    comandos.Parameters.AddWithValue("@SALDO", txtsaldofin.Text)

    comandos.ExecuteNonQuery()

    • Cambiado Enrique M. Montejo martes, 23 de septiembre de 2014 5:45 Pregunta relacionada con el acceso a datos con Access.
    viernes, 19 de septiembre de 2014 0:15

Todas las respuestas

  • Los registros que guardas en la tabla de Access se recuperan en el orden que se indique en la clausula Select. Como no estás especificando ningún orden no recuperas el registro esperado. Si quieres obtener la fecha del último registro guardado y tienes el campo ID autonumérico debes hacer esto:

    "Select Fecha as Ultimo_Registro From tabla Order By ID Desc" 


    Saludos, Javier J

    • Marcado como respuesta Enrique M. Montejo sábado, 20 de septiembre de 2014 10:40
    • Desmarcado como respuesta MateoDeveloper domingo, 21 de septiembre de 2014 5:36
    viernes, 19 de septiembre de 2014 6:39
  • Hola:

    En el apartado VALUES tendrías que poner delante el símbolo @ y el nombre del parámetro ya que no le estás pasando a la instrucción el parámetro correctamente. Ejemplo: VALUES(@FECHA, @TECNICO, ...

    Recuerda que el orden de los parámetros tiene que ser el mismo que el que le asignas a los campos.

    Un saludo.

    Gemma

    viernes, 19 de septiembre de 2014 6:40
  • Javier. Enrique y Gemma

    aplique sus sugerencias y no logro obtener el resultado deseado.

    explico un poco mas.

    tengo una tabla donde resgistro los gastos y asignaciones (viaticos del personal) cuando selecciono un personal (combobox) hago una consulta en la tabla donde me muestra en un textbox el saldo del ultimo registro ese campo es importante porque si registro un abono o gasto ese saldo se actualizará. cada vez que guardo un nuevo registro no me muestra el saldo del ultimo registro sino el saldo de cualquier registro de la tabla. como hago para que el nuevo registro siempre se guarde en el ultimo registro de una tabla?

    domingo, 21 de septiembre de 2014 6:25