I have created a form in Visual Studio 2013 which is used to enter data in Excel by multiple users at same time. It works perfectly fine except if two users open form at the same time or if one has clicked submit and the form is still processing, error occurs.
Unhandled exception has occurred in your application. Exception from HRESULT: 0x800A03EC
When writing data to file, I want to make it read only so that other users can wait. How do I do this?
Imports excel = Microsoft.Office.Interop.Excel
Imports System.Runtime.InteropServices
Public Class Form1
Dim xlapp As New excel.Application
Dim workbook As excel.Workbook
Dim worksheet As excel.Worksheet
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
workbook = xlapp.Workbooks.Open("\2.xlsx")
xlapp.Visible = False
worksheet = workbook.Sheets("sheet1")
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
If workbook.MultiUserEditing Then
workbook.AcceptAllChanges()
workbook.Save()
End If
Dim row As Long
Dim alpha As Long = 0
row = 5
With worksheet
Do While .Cells(row, 4).value IsNot Nothing
row = row + 1
Loop
.Cells(row, 2).value = Me.fname.Text
.Cells(row, 3).value = Me.lname.Text
Me.fullname.Text = Me.fname.Text + Me.lname.Text
.Cells(row, 4).value = Me.fullname.Text
End With
xlapp.DisplayAlerts = False
workbook.SaveAs("\2.xlsx", AccessMode:=excel.XlSaveAsAccessMode.xlShared)
End Sub
End Class
Bookmarks