In general, each new version provides more functionality than previous ones,
but less performance.
Presumably you have already tried the obvious things that apply to all
versions:
http://www.granite.ab.ca/access/performancefaq.htm
So the next step is to pin down where the performance problem lies. It this
happens in one particular form, when moving records, you would be working on
what's going on when you change record. Examples of things to try:
a) Dump any spurious binary code.
Cut all code from the form's module, and save it as a text document.
Set the form's HasModule property to No.
Save the form.
Compact the database.
Open the form's module again, and paste the code back in.
Compile.
Particularly where the database was converted from a previous version, this
could help. (It's like a decopile, but more pervasive.)
b) Temporarily comment out any code in the form's Current event, and
anything in the events of the control that's active when you change records.
c) If the form has subforms, do (b) for each subform as well.
d) Temporarily remove any subforms, combos, list boxes to see if this is a
factor.
e) Trace the form's RecordSource, ensuring the table(s) have appropriate
keys/indexes, and any criteria/sorting is able to use those indexes.
My experience of A2007 (on a Core Duo) is that it is quite good to use.
Other general info that may help with converting to A2007:
http://allenbrowne.com/Access2007.html