
Traer valor de campo SALDO a VBASIC desde tabla de SQL SERVER
Publicado por nano (20 intervenciones) el 08/08/2015 21:25:47
Muy buenas a todos!!!
Me acaba de surgir mi primera duda con un proyecto simple que consiste en generar una aplicación que contabilice los gastos generales de una casa en estos tiempos de crisis.
Estoy usando Visual Basic con tablas de SQL SERVER y me he quedado atascado en un campo SALDO que contiene mi tabla REGISTROS que necesito que acumule el valor anterior y lo modifique según el registro siguiente de ingreso o gasto.
Para traerme el valor de ese campo había pensado en un select:
select saldo from registros where id_registro =(select max(id_registro) from registros)
Con este select consigo el último valor del campo para poder sumar o restar el siguiente registro. El problema es que no se ni como ni donde ponerlo!!!
Os adjunto mi código generado hasta ahora aunque esté en fase muy beta así como un par de imágenes del form y de la tabla de SQL.
AVISO: Hay varias líneas comentadas de pruebas que he ido realizando y que prefiero dejar por si me llegara la inspiración.
Muchas gracias de antemano por el tiempo que os tomais en ayudar a los que no sabemos pero queremos saber.
Un saludo,
Nano.



Me acaba de surgir mi primera duda con un proyecto simple que consiste en generar una aplicación que contabilice los gastos generales de una casa en estos tiempos de crisis.
Estoy usando Visual Basic con tablas de SQL SERVER y me he quedado atascado en un campo SALDO que contiene mi tabla REGISTROS que necesito que acumule el valor anterior y lo modifique según el registro siguiente de ingreso o gasto.
Para traerme el valor de ese campo había pensado en un select:
select saldo from registros where id_registro =(select max(id_registro) from registros)
Con este select consigo el último valor del campo para poder sumar o restar el siguiente registro. El problema es que no se ni como ni donde ponerlo!!!
Os adjunto mi código generado hasta ahora aunque esté en fase muy beta así como un par de imágenes del form y de la tabla de SQL.
AVISO: Hay varias líneas comentadas de pruebas que he ido realizando y que prefiero dejar por si me llegara la inspiración.
Muchas gracias de antemano por el tiempo que os tomais en ayudar a los que no sabemos pero queremos saber.
Un saludo,
Nano.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
Public Class Form1
Dim vista As New misdatosDataContext
Dim valorsaldo As Double
'Dim saldofinal = "select saldo from registros where id_registro =(select max(id_registro) from registros)"
Private Sub datos()
Dim datos = From actuales In vista.registros
cuadricula.datasource = datos
End Sub
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
' TextBoxFecha.Focus()
'valorsaldo = TextBoxSaldo.Text
ComboBox1.Text = ""
ComboBox2.Text = ""
'TODO: esta línea de código carga datos en la tabla 'ContaHomeDataSet5.registros' Puede moverla o quitarla según sea necesario.
Me.RegistrosTableAdapter.Fill(Me.ContaHomeDataSet5.registros)
'TODO: esta línea de código carga datos en la tabla 'ContaHomeDataSet3.subcategorias' Puede moverla o quitarla según sea necesario.
Me.SubcategoriasTableAdapter.Fill(Me.ContaHomeDataSet3.subcategorias)
'TODO: esta línea de código carga datos en la tabla 'ContaHomeDataSet2.categorias' Puede moverla o quitarla según sea necesario.
Me.CategoriasTableAdapter.Fill(Me.ContaHomeDataSet2.categorias)
'TODO: esta línea de código carga datos en la tabla 'ContaHomeDataSet1.terceros' Puede moverla o quitarla según sea necesario.
Me.TercerosTableAdapter.Fill(Me.ContaHomeDataSet1.terceros)
'TODO: esta línea de código carga datos en la tabla 'ContaHomeDataSet.operaciones' Puede moverla o quitarla según sea necesario.
Me.OperacionesTableAdapter.Fill(Me.ContaHomeDataSet.operaciones)
TextBoxId.Text = 0
TextBoxId.Enabled = False
'saldofinal = TextBoxSaldo.Text
'TextBoxSaldo.Text = saldofinal
End Sub
Private Sub RadioButton1_CheckedChanged(sender As Object, e As EventArgs) Handles RadioButton1.CheckedChanged
TextBoxIngreso.Text = TextBoxImporte.Text
TextBoxGasto.Text = 0
valorsaldo = valorsaldo + (Val(TextBoxIngreso.Text) - TextBoxGasto.Text)
TextBoxSaldo.Text = valorsaldo
End Sub
Private Sub RadioButton2_CheckedChanged(sender As Object, e As EventArgs) Handles RadioButton2.CheckedChanged
TextBoxGasto.Text = TextBoxImporte.Text
TextBoxIngreso.Text = 0
valorsaldo = valorsaldo + (Val(TextBoxIngreso.Text) - TextBoxGasto.Text)
TextBoxSaldo.Text = valorsaldo
End Sub
Private Sub ButtonGrabar_Click(sender As Object, e As EventArgs) Handles ButtonGrabar.Click
Dim respuesta = MsgBox("Desea agregar el nuevo registro?", MsgBoxStyle.YesNo)
If (respuesta = MsgBoxResult.Yes) Then
Try
Dim nuevoregistro As New registros With {.id_registro = TextBoxId.Text, .fecha_valor = TextBoxFecha.Text, .importe = TextBoxImporte.Text, .tipo_operacion = ComboBox1.Text, .descripcion_tercero = ComboBox2.Text, .nota = TextBoxObservacion.Text, .descripcion_categoria = ComboBox3.Text, .descripcion_subcategoria = ComboBox4.Text, .ingreso = TextBoxIngreso.Text, .gasto = TextBoxGasto.Text, .saldo = TextBoxSaldo.Text}
vista.registros.InsertOnSubmit(nuevoregistro)
vista.SubmitChanges()
datos()
Catch ex As Exception
MsgBox("Error en la grabación del registro")
End Try
Else
MsgBox("Registro de ContaHome grabado correctamente", MsgBoxStyle.Information)
End If
TextBoxFecha.Text = ""
TextBoxImporte.Text = ""
ComboBox1.Text = ""
ComboBox2.Text = ""
TextBoxObservacion.Text = ""
ComboBox3.Text = ""
ComboBox4.Text = ""
TextBoxIngreso.Text = ""
TextBoxGasto.Text = ""
End Sub
Private Sub Button4_Click(sender As Object, e As EventArgs) Handles ButtonVerRegistros.Click
datos()
End Sub
End Class



Valora esta pregunta


0