Try this:
create a module level integer variable (e.g. intKey)
turn the setfocus line back on for the listbox
for this control, add keyup and keydown events. To each, add
If KeyCode = 38 Or KeyCode = 40 Then intKey = KeyCode
in list click event do
Code:
If Not (intKey = 38 Or intKey = 40) Then
DoCmd.OpenForm Me.List74.Value
Me.butadd.SetFocus
Me.List74.Visible = False
End If
intKey = 0
As it is, you have a less than intuitive thing going on here. When add button is moused over the listbox opens and an item is highlighted. That implies that the arrow keys will then work - but they won't because to make that happen, you actually have to click on the add button because the listbox does not have the focus until then. IMO that's not good.
Your eagerness to do complicated things is admirable but honestly, your skills and knowledge are not at the same level. You also seem destined to make the same mistakes over and over, and often fail to implement good advice you are given wherever possible (you haves still have modules without Option Explicit). You claim to google things and not find them and yet when we don't know the answer and google stuff we find it right away. Why is that? If you did this maybe you would have found that making a selection in an unbound list box (that's what the arrow key is doing in your code) the listbox click event fires. I did not know that but it took only 3 minutes of searching to learn it. Your db's are difficult to troubleshoot because you do things like make forms modal, disable close buttons (I cannot close any of the forms opened by this listbox unless I right click) and don't repeat instructions. Perhaps you expect us to know what to do when something happens or maybe we have to review the thread again to figure it out. That all adds to the drudgery of troubleshooting your work and I don't know how much more I can put up with that.
Gotta run.
The more we hear silence, the more we begin to think about our value in this universe.
Paraphrase of Professor Brian Cox.