Hi,
ich erstelle meine Datenbank mit Access 2016. Einige Benutzer der Datenbank nutzen jedoch Noch Access 2013.
Bisher war es mir immer möglich, die Access 2016 Datenbank unter Access 2013 zu öffnen und die dann fehlerhaften Verweise zu korrigieren. Leider erhalte ich aber beim öffnen der Datenbank jetzt immer folgende Meldung:
"Für die Datenbank, die Sie öffnen möchten, ist eine neuere Version von Microsoft Access erforderlich"
Gab es da ein Update? Ist Euch dies bekannt? Auch wenn ich z.B. nur einzelne Formulare dieser Datenbank in die 2013er Version ziehen möchte verweigert der Import auch mit o.g. Meldung seinen Dienst.
What is there los? ??? ??? ???
Hi,
wenn du zwei Officeversionen auf einem Rechner installiert hast, würde ich es zuerst mal mit einer Neuinstallation beider Officeversionen versuchen. Am besten ist es aber, das zu vermeiden, z.B. mit einer Virtualisierungssoftware wie VMWare o. ä.
Vielleicht postest du auch mal einen Screenshot von den Verweisen mit Access 2016.
Lässt sich die DB unter Access 2013 mit gedrückter Umschalttaste starten? Falls ja, wie sieht es dann bei den Verweisen aus? (Screenshot)
Auch eine Möglichkeit wäre über den Autostart eine Funktion einzubauen welche die Verweise via VBA entsprechend der Access-Version einbindet. Setzt natürlich voraus, dass sie beim beenden auch entfernt werden, aber nicht alle!!!
Gruß Dieter
Hi... Danke für die Anwort, aber ich habe nicht zwei Office Versionen auf einem Rechner. Ich erstelle die Datenbank nur auf Office 2016 und diese soll aber von Nutzern benutzt werden können, die Office 2013 haben. Die nutzen das dann aber auf ihrem eigenen Rechner. Bisher war es halt möglich nach einer Korrektur der Verweise die Datenbank auch unter Access 2013 zu starten. Nun erhalten die Nutzer aber o.g. Meldung und ich weiß nicht warum.. Auch lässt sich bei Microsoft dazu nix finden.
Den Tipp mit der Bindung nach Versionsnummer finde ich dennoch interessant. Aber wie muss ich da z.B. für den Verweis auf Outlook 15 vorgehen? Vielleicht hat jemand mal einen Codeschnippsel zum Verständnis?
Ich habe hier nochwas gefunden: https://support.microsoft.com/en-us/kb/3208802
Was meinen die aber mit "Large Numbers"? Hat jemand eine Idee wonach ich da in meiner DB suchen kann?
Anscheinend nutzt Du für (mindestens) ein Feld den in Access 2016 neu eingeführten Datentyp Large-Integer, der 64 Bit breit ist - ältere Versionen können aber nur mit Long-Integer (32 Bit) umgehen. Prüfe in allen Zahlenfeldern (vermutlich auch in Autowerten) welcher Felddatentyp verwendet wird und versuche, diesen auf Long-Integer umzustellen.
falls du dennoch darüber nachdenkst die Verweise via VBA einzubinden, hier die eigentliche Befehlszeile:
Application.References.AddFromGuid GUID, Major, Minor
ich hab mir dazu eine Tabelle (Tb_S_VerweiseGUID) mit den notwendigen Daten gemacht, hier ein Beispiel von meiner:
refName refGuid refMajor refMinor Office07Minor Office10Minor Office13Minor Office16Minor Minor_Speziell
Access {4AFFC9A0-5F99-101B-AF4E-00AA003F0F07} 9 0
ADODB {00000201-0000-0010-8000-00AA006D2EA4} 2 1
DAO {4AC9E1DA-5BAD-4AC7-86E3-24F4CDCECA28} 12 0
dBA_TreeView {72A96444-AD08-4AEC-98B3-7CB93B35EAE8} 1 0
Excel {00020813-0000-0000-C000-000000000046} 1 8 5 8 8 8 -1
MSComctlLib {831FDD16-0C5C-11D2-A9FC-0000F8754DA1} 2 2
MSForms {0D452EE1-E08F-101A-852E-02608C4D0BB4} 2 0
Office {2DF8D04C-5BFA-101B-BDE5-00AA0044DE52} 2 7 2 7 7 7 -1
Outlook {00062FFF-0000-0000-C000-000000000046} 9 5 2 5 5 5 -1
stdole {00020430-0000-0000-C000-000000000046} 2 0
VBA {000204EF-0000-0000-C000-000000000046} 4 1
Word {00020905-0000-0000-C000-000000000046} 8 6 3 6 6 6 -1
eventuell macht noch eine Spalte für die Reihenfolge Sinn.
für die Office, Outlook, Excel und Word Verweise, sofern du die überhaupt benötigst, musst du vermutlich, wie ich auch, eine Schleife einbauen, da der MINOR nicht am jedem PC gleich ist, so zumindest meine Beobachtung an vielen Rechnern.Ist unschön, war aber nicht anders zu lösen.
Hier ein Beispiel wie ich es gelöst habe, diese Funktion muss allerdings noch in eine Schleife wo du die Tabelle durchläufst, oder du baust das hier noch mit ein.
Public Function Verweis_hinzufuegen(GUID As String)
Dim r_Major As Byte
Dim r_Minor As Byte
Dim i As Byte
If DLookup("Minor_speziell", "Tb_S_VerweiseGUID", "refGuid = '" & GUID & "'") Then
'Select Case AccessVersion
'Case 12: ' Office 2007
r_Major = DLookup("refMajor", "Tb_S_VerweiseGUID", "refGuid = '" & GUID & "'")
r_Minor = DLookup("Office07Minor", "Tb_S_VerweiseGUID", "refGuid = '" & GUID & "'")
'Case 14: ' Office 2010
' r_Minor = RstLookup("Office10Minor", "Tb_S_VerweiseGUID", "refGuid = '" & GUID & "'")
'Case 15: ' Office 2013
' r_Minor = RstLookup("Office13Minor", "Tb_S_VerweiseGUID", "refGuid = '" & GUID & "'")
'Case 16: ' Office 2016
' r_Minor = RstLookup("Office16Minor", "Tb_S_VerweiseGUID", "refGuid = '" & GUID & "'")
'End Select
r_Minor = r_Minor + 1
On Error Resume Next
For i = r_Minor To r_Minor + 10
Application.References.AddFromGuid GUID, r_Major, i
If Err = 0 Then
Exit For
Else
Err.Clear
End If
Next i
Else
Application.References.AddFromGuid GUID, DLookup("refMajor", "Tb_S_VerweiseGUID", "refGuid = '" & GUID & "'"), DLookup("refMinor", "Tb_S_VerweiseGUID", "refGuid = '" & GUID & "'")
End If
End Function
Hallo,
die Korrektur der Verweise, ob per VBA oder manuell, ist nicht möglich, wenn die DB sich gar nicht erst öffnen lässt, wie im eingangs geschilderten Fall. Also bleibt hier nur die Option, auf Features zu verzichten, durch welche die Anwendung ihre Abwärts-Kompatibilität verliert.
Gibt es in Access 2016 nicht die Möglichkeit, die DB in einer niedrigeren Version zu speichern und (weiter) zu entwickeln?
Letztlich gilt auch hier die alte Empfehlung, die Entwicklung stets in der niedrigsten Version der Endanwender zu entwickeln.
Ich werde die betreffenden Rechner jetzt einfach aufrüsten auf Office 16. Danke auch an dedidado für die Codezeilen. Diese kann ich an anderer Stelle sicher noch gut gebrauchen.
LG
Wenn die anderen Nutzer die Datenbank (Struktur/Form ...) nicht ändern sollen oder können, könnte man die Problematik dann nicht über das Thema Runtime-Modul lösen?
Leider nein, da Access auch auf Outlook zugreifen muss...
Hi,
es spricht nichts dagegen, aus einer 2016er Runtime auf Excel, Outlook und Word aus Office 2013 zuzugreifen. Als erstes solltest du dazu am besten auf Late Binding umstellen und die Verweise rausnehmen.