2009-06-20 10 views
5

Kann ich Access 2007 VBA-Referenzen ungestraft verwenden (speziell in Bezug auf die Basissprache und alte COM-Schnittstellen), um VBA-basierte Lösungen für Access 2003 zu entwickeln?Gibt es einen Unterschied in den VBA-Versionen zwischen Office 2003 und 2007?

Oder wurde der Sprache eine neue/modifizierte Syntax hinzugefügt, die ich beachten muss?

Wurde das Objektmodell in Office 2007 drastisch verbessert?

Alle anderen Vorbehalte?

Vielen Dank.

Antwort

8

Die VBA-Sprache selbst wurde zwischen den letzten Versionen von Microsoft Office nicht geändert (und wird sich wahrscheinlich auch in Zukunft nicht ändern). Die Version von VBA ab Access2000 ist VBA6.

Das Objektmodell der Office-Anwendungen ist jedoch leicht modifiziert. Microsoft erweitert den OM normalerweise nur um zusätzliche Methoden und Eigenschaften. Was den Zugang angeht, so kann ich Ihnen keine Details, aber Sie werden eine Liste der Änderungen finden Sie hier:

In Allgemeine VBA-Lösungen, die für eine bestimmte Office-Version entwickelt wurden, funktionieren mit einer neueren Version. Der Teufel liegt jedoch in den Details. Aufgrund von Fehlerbehebungen und neuen Funktionen können sich die Anwendungen möglicherweise anders verhalten als die ältere Version slighty. Die einzige Möglichkeit herauszufinden, ob alles noch funktioniert, ist eine gründliche Prüfung.

+0

+1 Dank :) Diese Links sind in der Tat nützlich. –

0

Wenn Sie Ihren accdb/mdb nach accde/mde kompilieren, möchten Sie sicherstellen, dass Sie sie in derselben Version wie Ihre Hauptanwendung kompilieren. Ich hatte einige Probleme mit Access 2003 MDEs mit Access 2007 (und natürlich umgekehrt).

2

Es gibt einige neue Eigenschaften ist, Methoden und Objekte in Excel 2007.

Allerdings sind die meisten Programme in Excel 2003 funktioniert gut in Excel 2007

Es gibt wenige Sachen von VBA Excel 2003, die nicht funktioniert hat bei Excel 2007.

Ich habe 4 Probleme gefunden.

  • „Chart.Add“ Automatisierungsfehler in Excel 2007 geben, wenn es mehr als 1 Zelle

  • Fehler ausgewählt nicht von selbst zurückzusetzen, notwendig ist es verwendet Err.Clear bevor Befehl das könnte einen Fehler auslösen.

     On Error Resume Next 
         Intruction_That_Could_be_buggy_1 
         if Err.Number <>0 Then 
          Err.Clear  ' <<<<==== This command is necessary 
          Intruction_That_Could_be_buggy_2     
          if Err.Number <>0 Then 
            .... 
    
  • Bereich (...).Paste (xlFormulas) stoppt nun, wenn ein möglichen Namenskonflikt existiert, ist es notwendig,

    Application.displayalerts = False 
        Range(....).Paste(xlFormulas) 
        Application.displayalerts = True 
    
  • Mehr Hotkeys wie Alt + N zu verwenden sind reserviert in Excel 2007 Application.OnKey ("% n", "rotina ") funktioniert in diesem Fall nicht. Jetzt ist es viele Multifunktionsleistenverknüpfung im ALT + Letra Stil. Ich kann keine Möglichkeit finden, dieses Verhalten zu unterdrücken. Es sollte stattdessen ein anderer Hotkey verwendet werden.

+0

Ähm, schön wie deine Antwort ist, ich sehe nicht, wo diese Frage etwas mit Excel zu tun hat. –

+0

Sie haben Recht, ich war ein bisschen abwesend. Was Excel Excel 2007 bezüglich Excel 2003 bezüglich VBA betrifft, sollte in anderen VBA-Implementierungen wiederholt werden. In Word 2007 oder Outlook 2007 finde ich keine Probleme (bis jetzt), aber meine Verwendung ist weniger intensiv –

+0

Ich wäre nicht so sicher, dass VBA-Einschränkungen in Word/Excel/Outlook auch für Access gelten. –

Verwandte Themen