Buenas noches.
A ver, yo estudié VB 6, y ahí era más fácil este tema. Yo tengo una BD access, y tengo un formulario donde hay un DGV conectado a una tabla, y aparte tengo unos TextBox, lógicamente con los NAMES cambiados, conectados tb la tabla.
En la parte superior me aparece el navegador de registros por defecto: con su selector, su adición, su borrado...
Mi problema es que cuando añado, modifico o borro registros, luego no graba a BD.
Tengo que decir que estoy con una BD de ACCESS. Este es mii código (tengo 3 tablas, pero sería similar):
Public Class FormPRO
Private Sub ProfesoresBindingNavigatorSaveItem_Click(sender As System.Object, e As System.EventArgs) Handles ProfesoresBindingNavigatorSaveItem.Click
Me.Validate()
Me.ProfesoresBindingSource.EndEdit()
Me.TableAdapterManager.UpdateAll(Me.AcaInglesDataSet)
End Sub
Private Sub FormPRO_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
'TODO: esta línea de código carga datos en la tabla 'AcaInglesDataSet.Profesores' Puede moverla o quitarla según sea necesario.
Me.ProfesoresTableAdapter.Fill(Me.AcaInglesDataSet.Profesores)
EtqTitPro.Text = "Añadir " & vbCrLf & " Profesores"
End Sub
Private Sub TodoToolStripButton_Click(sender As System.Object, e As System.EventArgs)
Try
Me.ProfesoresTableAdapter.Todo(Me.AcaInglesDataSet.Profesores)
Catch ex As System.Exception
System.Windows.Forms.MessageBox.Show(ex.Message)
End Try
End Sub
Private Sub SalirToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs)
Dim valor As Integer
valor = MsgBox("¿Cerrar Profesores?", vbYesNo, "Academia de Inglés")
If valor = 6 Then
End
Else
Me.Close()
End If
End Sub
Private Function CalcularGastos() As Double
Dim f As Integer
Dim total As Double = 0
For f = 0 To DGVProfesores.RowCount - 1 Step 1
total = total + Convert.ToDouble(DGVProfesores.Item(7, f).Value)
total = total + Convert.ToDouble(DGVProfesores.Item(8, f).Value)
total = total + Convert.ToDouble(DGVProfesores.Item(9, f).Value)
Next
Return total
End Function
Private Sub btnCerrar_Click(sender As System.Object, e As System.EventArgs) Handles btnCerrar.Click
FormPral.txtTGastos.Text = txtGastos.Text
Me.Close()
End Sub
Private Sub txtDNI_Leave(sender As System.Object, e As System.EventArgs) Handles txtDNI.Leave
If txtDNI.TextLength > 9 Then
MsgBox("No puede meter más de 9 caracteres", vbOKOnly, "Acaddemia de Inglés")
txtDNI.Text = ""
txtDNI.Focus()
End If
End Sub
Private Sub btnCalcGastos_Click(sender As System.Object, e As System.EventArgs) Handles btnCalcGastos.Click
txtGastos.Text = Convert.ToString(CalcularGastos())
FormPral.totalGastos = txtGastos.Text & " €"
End Sub
Private Sub txtTel_Leave(sender As System.Object, e As System.EventArgs) Handles txtTel.Leave
If txtTel.TextLength > 9 Then
MsgBox("No puede meter más de 9 caracteres", vbOKOnly, "Acaddemia de Inglés")
txtTel.Text = ""
txtTel.Focus()
End If
End Sub
Private Sub BindingNavigatorAddNewItem_Click(sender As System.Object, e As System.EventArgs) Handles BindingNavigatorAddNewItem.Click
txtId.Focus()
End Sub
End Class
He mirado un montón de ejemplos, pero todos utilizan conexiones por código. Yo soy una persona con problemas físicos y lo que me iteresa es ahorrarme código.No ostante, tb podría hacerme un módul BAS y hacer la conexión por código.
Muchas gracias