First of all your Finally block is wrong. You need to change it on the following:
Finnally
objConnection.Close()
End Try
You don't need those extra lines.
About your error:
You getting an error in "dgvData.DataSource = dtbData" line.You can't set any setting to any control in BackgroundWorker.DoWork method, so you need to Invoke it.
Use folowing method instead of "dgvData.DataSource = dtbData":
Private Sub SetDataSource(ByVal dtbData as DataTable)
if(dgvData.InvokeRequired) then
Dim del as DataSourceHandler = new DataSourceHandler(AddressOf SetDataSource)
Dim objects(dtbData) as Object
dgvData.Invoke(del, objects)
else
dgvData.DataSource = dtbData
end if
End Sub
Public Delegate Sub DataSourceHandler (ByVal dtbData as DataTable)