Te puedo ayudar con el menú de las empresas.
Para generar opciones de menú por cada empresa, esto sería lo que hay que hacer.
Define en el menú de tu formulario un menú, llamándole, por ejemplo
mnEmpresa: su propiedad "Caption" puede quedar vacía, pero en la propiedad "Index" escribe 0, esta es lo importante para que sea dimensionado en forma dinámica (o sea, crear más items de este menú).
Copia esta porción de código en donde necesites que sea creado el menú dinámico (aquí se supone que tienes en el recordset "rstEmpresas" la tabla de empresas, de tu base de datos)
Dim inMenu As Integer ' Una variable para dimensionar el menú.
inMenu = 0
Do While Not rstEmpresas.EOF ' Tu recordset de las empresas.
If inMenu > 0 Then
Load mnEmpresa(inMenu)
endif
mnEmpresa(inMenu).Caption = rstEmpresas!NombreDeLaEmpresa
' Bueno, según como se llame el campo para el nombre
' de la empresa, en tu tabla.
inMenu = inMenu + 1
rstEmpresas.movenext
Loop
Espero que te sirva.