converted .accdb, na openen in access 2013, problemen bij openen met acces 2010

Status
Niet open voor verdere reacties.

vermhans

Gebruiker
Lid geworden
31 mrt 2010
Berichten
38
Beste,
wie heeft een oplossing?:confused:
Onze PC/laptops op het werk worden op 2 snelheden vervangen. De laptops zijn geleverd, besturing win10 en officepakket 2013, de "oude" toestellen draaien (nog tot volgende jaar) op win7 en officepakket 2010.
Wij werk(t)en met een 3-tal personen met een door mij gemaakt accessbestand, extensie .mdb. Ik heb, gelet het feit dat ik thans access 2013 heb, dit geconverteerd naar een .accdb. Tot daar geen problemen, doch vanaf ik het .accdb gebruik of heb gebruikt (access 2013), en (nadien) opent een gebruiker dit bestand met access 2010, verschijnen in ijltempo lege venstertjes en werken bepaalde berekeningen niet meer (o.m. leeftijd). Ik maak geen gebruik van back-end en front-end. Dit is een kleine ramp want er zitten een 300-tal personeelsleden in deze dbase :(.
Hans
 
Officieel zijn accdb bestanden vanaf 2007 in elke versie in te lezen, maar je kunt in de problemen raken (zeker als het gaat om downward compatibility) als je gebruik maakt van Early Binding met specifieke Microsoft bibliotheken. In dat geval zal de db in een 2010 omgeving niet overweg kunnen met de db die in 2013 is gekoppeld aan de hogere bibliotheken. Ik weet niet of dat het geval is, maar als je zeker wilt zijn dat je geen uitwisselingsproblemen krijgt, kun je het best alle bibliotheken via Late Binding gebruiken, dan heb je dat probleem niet.
 
Beste OctafFish,
Bedankt voor de tip!!! U bent steeds een hoop in bange dagen!
Early Binding en Late Binding kende ik nog niet, dus zeker wat bijgeleerd, maar hoe ik dit moest toepassen vond ik niet, doch je opmerking over downward compatibility zette mij aan wat te gaan surfen. Vervolgens, na veeeeel screenshots ben ik er toch in geslaagd te lezen wat de "lege" schermpjes die flashten op het scherm "meedeelden" : "zoeken naar het bestand naar waar wordt verwezen MSWORLDOLB". Had ik dit gedaan en dit in mijn vraag mee kunnen posten, had ik waarschijnlijk de oplossing veel vlugger gehad:eek:.
Voor anderen die misschien ook met deze vraag worstelen: dit ontdekt hebbende vond ik al "vlug" de oplossing (voor dit geval) op de Microsoft community:
https://answers.microsoft.com/en-us...swordolb/fe403074-8e12-41e1-81eb-fcce4fd81c9f
In de references werd een ontbrekende object library gemarkeerd. Dit uncheckt en gemarkeerd verder op in de lijst werkte in mijn geval.
 
Korte aanvulling: je hebt dus blijkbaar in de oorspronkelijke db een verwijzing naar de Word bibliotheek gehad, en die had dan dus inderdaad een (hoger) versienummer. Je kunt dat vinkje dan probleemloos uitzetten als de bibliotheek niet gebruikt wordt. Werd hij wél gebruikt, dan zullen bepaalde zaken in de db niet goed meer werken. Als je bijvoorbeeld een knop hebt die vanuit de db een samenvoeging maakt in Word, dan heb je de bibliotheek vermoedelijk wel nodig. Kijk de db daar dus nog goed op na, want je wilt natuurlijk wel dat alles blijft werken. Door de db te compileren kun je zien of de bibliotheek nog ergens aangeroepen wordt of niet.

Heb je de bibliotheek wél nodig, dan is dus Late Binding de beste optie, dan werkt de db in alle versies.
 
Beste Octafisch,

bedankt voor de reply, thans start ik vanuit word een macro die een bepaald query connecteert in de dbase, doch de volgende fase wens ik dit te doen vanuit access, dus zal ik problemen krijgen daarmee.
Ik heb al wat gegoogeld op late binding, maar voor mij lijkt dat allemaal wat verwarrend.
Kun je kort meedelen hoe dit "geactiveerd" wordt?

alvast bedankt
 
Ik heb er een uitgebreid hoofdstuk aan gewijd in de Access cursus, dus wellicht heb je daar wat aan. In essentie is het werken namelijk niet heel veel anders, met dit verschil dat je met Late Binding geen gebruik kunt maken van IntelliSense, wat wél kan met Early Binding. Daarom geef ik ook als tip om te ontwikkelen met Early Binding, en als de db klaar is, de bibliotheken te verwijderen en de code om te zetten naar Late Binding. Hier twee simpele voorbeeldjes van EB en LB.

Code:
Function funEarlyBinding()
Dim oWord As Word.Application
Dim oDoc As Word.Document
Dim oRng As Word.Selection
    
    Set oWord = CreateObject("Word.Application")
    oWord.Visible = True
    With oWord
        Set oDoc = .Documents.Add
        Set oRng = oWord.Selection
        With oRng
            .Style = "Kop 1"
            .TypeText "Dit is de koptekst" & vbLf
        End With
    End With
    oDoc.Close SaveChanges:=wdDoNotSaveChanges
    'Etc.
End Function

Code:
Function funLateBinding()
Dim oWord As Object, oDoc As Object, oRng As Object

    Set oWord = CreateObject("Word.Application")
    oWord.Visible = True
    With oWord
        Set oDoc = .Documents.Add
        Set oRng = oWord.Selection
        With oRng
            .Style = "Kop 1"
            .TypeText "Dit is de koptekst" & vbLf
        End With
    End With
    oDoc.Close SaveChanges:=wdDoNotSaveChanges
    'Etc.
End Function

Het grote verschil is dus dat in de LB variant alle variabelen als Object worden gedefinieerd, en in de EB variant als Word object. En daarom heb je in de EB dus IntelliSense. Je zult zien dat de LB code gelijk werkt in een nieuwe db zonder Word bibliotheek (versie onbelangrijk), en de eerste code niet. Dan moet je echt eerst de Word bibliotheek aanzetten.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan