Hello again,
i've a small problem. After entering the data from Form2 I don't know how to refresh Form1 automatic after closing Form2
For refresh Data I use ShowData()
Thanks for any help or advises
Code:Imports System.Data.OleDb Public Class Form1 Public dbconn As New OleDbConnection Dim adt As New OleDbDataAdapter Dim ds As New DataSet Dim datatable As New DataTable Dim cmd As New OleDbCommand Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load dbconn.ConnectionString = "provider=microsoft.jet.oledb.4.0;data source=key.mdb" showData() 'show database values in datagridview Button1.Text = "Give" Button2.Text = "Return" End Sub Public Sub showData() Dim dbcommand As String dbcommand = "SELECT * FROM keys" adt = New OleDbDataAdapter(dbcommand, dbconn) datatable = New DataTable adt.Fill(datatable) DataGridView1.DataSource = datatable End Sub Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim form As New Form2 form.Button3.Text = "Add" dbconn.Dispose() dbconn.Close() form.ShowDialog() End Sub Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click Dim form As New Form2(CInt(CStr(DataGridView1.CurrentRow.Cells(0).Value))) form.Button3.Text = "Edit" form.ComboBox1.Text = DataGridView1.CurrentRow.Cells(1).Value.ToString() form.TextBox2.Text = DataGridView1.CurrentRow.Cells(2).Value.ToString() form.TextBox2.Enabled = False form.ComboBox1.Enabled = False dbconn.Dispose() dbconn.Close() form.ShowDialog() End Sub Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click showData() End Sub End ClassCode:Imports System.Data.OleDb Public Class Form2 Dim provider As String Dim dataFile As String Dim connString As String Dim sql As String Dim myconn As OleDbConnection = New OleDbConnection Private currentRowIdentifier As Integer Public Sub New() ' This call is required by the designer. InitializeComponent() ' Add any initialization after the InitializeComponent() call. End Sub Public ReadOnly Property CurrentId As Integer Get Return currentRowIdentifier End Get End Property Public Sub New(ByVal pIdentifier As Integer) ' This call is required by the designer. InitializeComponent() ' Add any initialization after the InitializeComponent() call. currentRowIdentifier = pIdentifier End Sub Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click myconn.Close() Me.Close() End Sub Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load ComboBox1.Items.Add("Office1") ComboBox1.Items.Add("Office2") ComboBox1.Items.Add("Key1") Label1.Text = "Key" Label2.Text = "Give" Label3.Text = "Name" Label4.Text = "Return" TextBox0.Visible = False End Sub Sub Add() Dim main As New Form1 provider = "provider=microsoft.jet.oledb.4.0;data source=key.mdb" connString = provider & dataFile myconn.ConnectionString = connString myconn.Open() Dim str As String str = "Insert into keys([1], [2], [3], [4]) Values (?,?,?,?)" Dim cmd As OleDbCommand = New OleDbCommand(str, myconn) cmd.Parameters.Add(New OleDbParameter("key", CType(ComboBox1.Text, String))) cmd.Parameters.Add(New OleDbParameter("give", CType(TextBox2.Text, String))) cmd.Parameters.Add(New OleDbParameter("name", CType(TextBox3.Text, String))) cmd.Parameters.Add(New OleDbParameter("return", CType(TextBox4.Text, String))) Try cmd.ExecuteNonQuery() cmd.Dispose() main.showData() myconn.Close() Catch ex As Exception MessageBox.Show("Error") End Try Me.Close() End Sub Sub Edit() Dim main As New Form1 If String.IsNullOrWhiteSpace(myconn.ConnectionString) Then myconn.ConnectionString = "provider=microsoft.jet.oledb.4.0;data source=key.mdb" End If If myconn.State = ConnectionState.Closed Then myconn.Open() End If If ComboBox1.Text <> "" And TextBox2.Text <> "" And TextBox3.Text <> "" And TextBox4.Text <> "" Then sql = "UPDATE KEYS SET [1] = @key, 2 = @give, 3 = @name, 4 = @ret WHERE id = @id" Dim cmd As OleDbCommand = New OleDbCommand(sql, myconn) cmd.Parameters.AddWithValue("@key", ComboBox1.Text) cmd.Parameters.AddWithValue("@give", TextBox2.Text) cmd.Parameters.AddWithValue("@name", TextBox3.Text) cmd.Parameters.AddWithValue("@ret", TextBox4.Text) cmd.Parameters.AddWithValue("@id", currentRowIdentifier) Dim Affected As Integer = 0 Try Affected = cmd.ExecuteNonQuery() If Affected = 1 Then MessageBox.Show("Updated") Else MessageBox.Show("Updated failed") End If cmd.Dispose() myconn.Close() Me.Close() Catch ex As Exception MessageBox.Show($"Error: {ex.Message}") End Try Else MessageBox.Show("Empty fields!") End If End Sub Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click If Button3.Text = "Add" Then Add() End If If Button3.Text = "Edit" Then Edit() End If End Sub End Class






Reply With Quote
