Powershell Scripting Games - Day 4

This is my solution for Beginner Event 4

Connecting and extracting data from a Access Database and retrieving the best result. Now of course you could get the correct result with an SQL statement, by I preferred to do it Powershell (this is actually what the whole purpose of this competition is for)

$adOpenStatic = 3
$adLockOptimistic = 3
  
$objConnection = New-Object -comobject ADODB.Connection
$objRecordset = New-Object -comobject ADODB.Recordset
  
$objConnection.Open("Provider = Microsoft.Jet.OLEDB.4.0; `
    Data Source = C:\users\msaidelk\Desktop\HighJumperDatabase.mdb")
$objRecordset.Open("Select * from [High Jumper Data]", $objConnection, `
    $adOpenStatic,$adLockOptimistic)
$objRecordset.MoveFirst()
  
$mycollection = @() #initialize variable
  
#Create a new object with the columns
$myObj = "" | Select Name, SeasonBest, PersonalBest 
  
do {
#go through each record and populate the data
$myObj.Name = $objRecordset.Fields.Item("Name").Value
$myObj.SeasonBest = $objRecordset.Fields.Item("Season Best").Value
$myObj.PersonalBest = $objRecordset.Fields.Item("Personal Best").Value
  
$mycollection += $myObj

#Go to the next record
$objRecordset.MoveNext()
}
until ( $objRecordset.EOF -eq $True )
  
#Now sort the record according to Season best and Personal Best 
#get the best result and then output the Name
($mycollection | sort -Descending SeasonBest, PersonalBest | `
    select -First 1).Name
  
#Close connection to the Database
$objRecordset.Close()
$objConnection.Close()