Your code is made harder to understand when parts have not been named to show their contents and purpose:
ListPicker1,2,...
Notifier1,2,...
You can(and should) rename them in the Designer.
Also, I see two different uses being made of a global variable, based on the residual Do It value shown here ...
This variable, gameList has an unfortunate ambiguous name choice.
Is it a list of games, or is it a list of actions that occured within a single game or multiple games?
Worse, it is a table mixing two different types of rows describing different things (game vs event in game.)
If you need to store different categories of information, and if you plan on summarizing and filtering information for reports, save them in separate tables or add extra columns to your detail event tables identifying the game, game start, and half of each event.
This is called flattening a table.
You can also keep separate tables, appropriately named, like
- games (identifying games and their start times)
- game events (listing the events that occured within the game IDentifiers in column 1)
Investigate TinyDB NameSpaces as a way to use the power of different TinyDB instances.
I also question the use of a Notifier to choose the half (first/second) of new events.
If I understand the progression of time, all the events of the first half of a game happen before all thevents of the second half of a game, so there is no need to ask for the half over and over again.
Just leave it in a List Picker (lpkHalf) and set its .Text to the current half (first/second), for inclusion into new events when you click a Save Event button.
