A family of Microsoft relational database management systems designed for ease of use.
I wouldn't include both boxers in the Fights table. I'd suggest modelling it with, in broad outline, the following tables:
Boxers
….BoxerID (PK)
….FirstName
….LastName
Results
….WinnerResult (PK)
….LoserResult
The above table would contain a row with values 'Wins by KO' and 'Loses by KO', along with other rows with winning and corresponding losing results.
Fights
….FightID (PK)
….FightDate
Contestants
….FightID (FK)
….BoxerID (FK)
….Result
The primary key of the last table is a composite of the two foreign keys.
The interface for this would be a fights form, in single form view, within which is embedded a contestants subform, in continuous forms view, linked to the parent form on FightID. Having inserted two rows into the subform, when the result is known a result for the winner would be selected from a combo box bound to the Result column, with a RowSource property of:
SELECT WinnerResult FROM Results ORDER BY WinnerResult;
In the AfterUpdate event procedure of the combo box you'd put the following code:
Dim strSQL As string
Dim ctrl As Control
Set ctrl = Me.ActiveControl
strSQL = "UPDATE Contestants " & _
"SET Result = " & _
"(SELECT LoserResult " & _
"FROM Results " & _
"WHERE WinnerResult = """ & ctrl & """) " & _
"WHERE FightID = " & Me.FightID & " " & _
"AND BoxerID <> " & Me.BoxerID
CurrentDb.Execute strSQL, dbFailOnError
The subform should refresh automatically to show the loser result, but if not, add the following line:
Me.Refresh