Y me sigo contestando xD
Pues sucede que en una macro hay codigo que no se puede ejecutar en modo runtime asi que he seguido investigando y se puede hacer el menu en vba.
Primero hacemos un modulo con este codigo de ejemplo:
http://social.msdn.microsoft.com/Forums/en-US/accessdev/thread/44960673-2ce4-4217-8505-3c7ea7c6485c/
Luego hay que llamar a la funcion al abrir la base de datos, yo lo he puesto en el formulario de inicio.
Y finalmente en las opciones de la base de datos, donde dice "Bara de menu contextual" se pone el nombre del menu que se crea con la funcion.
Y este menu contextual funciona en el runtime, lo que me falta es saber los id de otros comandos para el menu.