Code:
Imports System.Data.OleDb
Imports System.Security.Cryptography
Imports System.IO
Public Class frmCompanyMembers
Dim conn As New OleDb.OleDbConnection
Dim dbProvider As String
Dim dbSource As String
Dim dj As New DataSet
Dim da As OleDb.OleDbDataAdapter
Dim sql As String
Dim rdr As OleDbDataReader = Nothing
Dim dtable As New DataTable
Dim con As OleDbConnection = Nothing
Dim adp As OleDbDataAdapter
Dim ds As DataSet
Dim cmd As OleDbCommand = Nothing
Dim MaxRows As Integer
Private Sub Autogenerate()
' call this sub from where ever you want to set the value to the new employee code.
' declare a variable to hold itemCode
Dim MemID As String = String.Empty
' declare a variable to hold curitemCodeNum
Dim curMemIDNum As Integer = 0
' declare a variable to hold nextitemCodeNum
Dim nextMemIDNum As Integer = 0
' declare a variable to hold addNextNumber
Dim addNextNumber As Integer = 1
Using conn As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\Ferdinand Company.accdb")
Using cmd As OleDbCommand = conn.CreateCommand
''Select statement to select the data in the appropriate field
cmd.CommandText = ("SELECT MAX(MemberID) FROM CompanyMembers")
Try
conn.Open()
MemID = CStr(cmd.ExecuteScalar)
Catch ex As Exception
Windows.Forms.MessageBox.Show(ex.Message, "Error")
End Try
End Using
End Using
'split the returned value to keep just the number
If MemID.Contains("MI") Then
curMemIDNum = CInt(MemID.Replace("MI", ""))
End If
nextMemIDNum = curMemIDNum + addNextNumber
Me.MemberIDTextBox.Text = ("MI" & nextMemIDNum.ToString("000"))
End Sub
Private Sub Reset()
MemberIDTextBox.Text = ""
MemberNameTextBox.Text = ""
GenderComboBox.Text = ""
DesignationComboBox.Text = ""
AddressTextBox.Text = ""
TelephoneNumberMaskedTextBox.Text = ""
PictureBox1.ImageLocation = ("C:\Ferdinand\UserNo-Frame.png")
PictureBox1.Load()
DateOfBirthDateTimePicker.Value = Today
AddButtonPanel.Enabled = False
DeleteButton.Enabled = False
SaveButton.Enabled = True
MemberNameTextBox.Focus()
Autogenerate()
End Sub
Private Sub cmdbrowse_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdbrowse.Click
With OpenFileDialog1
.InitialDirectory = "C:\Users\Chamindu\Desktop\Project\Profile Pictures"
.Filter = "All Image File (*.jpg,*.bmp,*.gif)|*.jpg;*.bmp;*.gif|Bitmaps (*.bmp)|*.bmp|GIFs (*.gif)|*.gif|JPEGs (*.jpg)|*.jpg"
.FilterIndex = 2
End With
If OpenFileDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then
With PictureBox1
.Image = Image.FromFile(Me.OpenFileDialog1.FileName)
.SizeMode = PictureBoxSizeMode.AutoSize
End With
End If
End Sub
Private Sub AddButtonPanel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AddButtonPanel.Click
Dim promptQuestion As DialogResult = MessageBox.Show("Confirm Adding A New Record?", "New Record", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
If promptQuestion = Windows.Forms.DialogResult.No Then
Exit Sub
End If
Reset()
End Sub
Private Sub SaveButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SaveButton.Click
Dim promptQuestion As DialogResult = MessageBox.Show("Are you sure you want to save this record?", "Save Record", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
If promptQuestion = Windows.Forms.DialogResult.No Then
Exit Sub
End If
If Len(Trim(MemberNameTextBox.Text)) = 0 Then
ElseIf Len(Trim(GenderComboBox.Text)) = 0 Then
ElseIf Len(Trim(DesignationComboBox.Text)) = 0 Then
ElseIf Len(Trim(AddressTextBox.Text)) = 0 Then
ElseIf Len(Trim(TelephoneNumberMaskedTextBox.Text)) = 0 Then
ElseIf Len(Trim(CStr(DateOfBirthDateTimePicker.Value))) = 0 Then
MessageBox.Show("Please Don not Leave any Field Empty. Complete Empty Fields. ", "Input Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
MemberNameTextBox.Focus()
End If
Autogenerate()
con = New OleDbConnection(dbProvider & dbSource)
con.Open()
Dim cb As String = "Insert INTO CompanyMembers (MemberID,MemberName,Gender,Designation,Address,TelephoneNumber,DateOfBirth,MembersPicture) VALUES (@c1,@c2,@c3,@c4,@c5,@c6,@c7,@c8)"
Dim MemStream As New MemoryStream
Dim DataPic_Update As Byte()
Me.PictureBox1.Image.Save(MemStream, Imaging.ImageFormat.Png)
DataPic_Update = MemStream.GetBuffer()
MemStream.Read(DataPic_Update, 0, CInt(MemStream.Length))
cmd = New OleDbCommand(cb)
cmd.Connection = con
cmd.Parameters.Add(New OleDbParameter("@c1", OleDbType.VarChar, 5, "MemberID"))
cmd.Parameters.Add(New OleDbParameter("@c2", OleDbType.VarChar, 40, "MemberName"))
cmd.Parameters.Add(New OleDbParameter("@c3", OleDbType.VarChar, 6, "Gender"))
cmd.Parameters.Add(New OleDbParameter("@c4", OleDbType.VarChar, 20, "Designation"))
cmd.Parameters.Add(New OleDbParameter("@c5", OleDbType.VarChar, 40, "Address"))
cmd.Parameters.Add(New OleDbParameter("@c6", OleDbType.VarChar, 15, "TelephoneNumber"))
cmd.Parameters.Add(New OleDbParameter("@c7", OleDbType.Date, 30, "DateOfBirth"))
cmd.Parameters("@c1").Value = MemberIDTextBox.Text
cmd.Parameters("@c2").Value = MemberNameTextBox.Text
cmd.Parameters("@c3").Value = GenderComboBox.Text
cmd.Parameters("@c4").Value = DesignationComboBox.Text
cmd.Parameters("@c5").Value = AddressTextBox.Text
cmd.Parameters("@c6").Value = TelephoneNumberMaskedTextBox.Text
cmd.Parameters("@c7").Value = DateOfBirthDateTimePicker.Value
Dim photo As OleDbParameter = New OleDbParameter("@c8", SqlDbType.Image)
photo.Value = DataPic_Update
cmd.ExecuteNonQuery()
MessageBox.Show("Member Successfully Saved", "Company Members", MessageBoxButtons.OK, MessageBoxIcon.Information)
MemberNameTextBox.Focus()
SaveButton.Enabled = False
con.Close()
End Sub
Private Sub frmCompanyMembers_Load_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
dbProvider = "Provider=Microsoft.ACE.OLEDB.12.0;"
dbSource = "Data Source=|DataDirectory|\Ferdinand Company.accdb"
conn.ConnectionString = dbProvider & dbSource
conn.Open()
MemberIDTextBox.Enabled = False
End Sub
Private Sub cmdHomeScreen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdHomeScreen.Click
Me.Hide()
SwitchBoard.Show()
End Sub
End Class