Database kan niet worden geopend

Status
Niet open voor verdere reacties.

john64

Gebruiker
Lid geworden
12 jun 2011
Berichten
268
Goedemiddag,

Ik heb hetzelfde probleem als al eens eerder beschreven.
Op mijn eigen laptop heb ik een access database gemaakt (Office 2007, windows 7, 32 bit). Deze database draait prima op mijn laptop, op een ander netbook en ook bij ons het het werk in een netwerkomgeving.
Nu probeer ik deze database op een andere computer te zetten, waar ook access 2007 (als onderdeel van office 2007) draait, maar op een windows xp machine. Ik krijg nu een melding:
De database kan niet worden geopend omdat het VBA-project dat erin zit niet gelezen kan worden. De database kan alleen worden geopend als het VBA-project eerst wordt verwijderd. Met het VBA-project verwijdert u alle programmacode uit modules, formulieren en rapporten. U dient een back-up van de database te maken voordat u probeert de database te openen en het VBA-project te verwijderen.

Wat ik probeer (o.a. vertrouwde locaties aangepast) het lukt niet om de database draaiend te krijgen. Sterker nog, alle VBA code is plots verdwenen, nadat ik ok OK klikt toen de melding kwam (gelukkig heb ik wel backup )
Nu vond ik op http://support.microsoft.com/kb/2581301/nl wel een oplossing door bepaalde wizards te hernoemen:
Dit probleem zelf oplossen
Ga als volgt te werk om dit probleem op te lossen:
1. Sluit alle exemplaren van Microsoft Office Access 2010.
2. Wijzig de naam van de onderstaande wizardbestanden in c:\Program Files\Microsoft Office\Office14\ACCWIZ\

Oorspronkelijke bestandsnaam Nieuwe bestandsnaam
Acwzmain.accde Acwzmain.old
Acwzlib.accde Acwzlib.old
Acwztool.accde Acwztool.old


Volgens mij gaat het hier alleen om access 2010 versie. Ik heb dit geprobeerd, maar access zet eerst de oude wizzards terug, en ik heb nog steeds dezelfde melding. Database start niet op.
Heeft iemand inmiddels een duidelijke oorzaak kunnen vinden, en wat de oplossing daarbij zou kunnen zijn ?

alvast bedankt

John
 
Laatst bewerkt:
Goedemorgen Jan,
Bedankt voor je reactie. Ik zie dat in het betrokken artikel gesproken wordt over access 2010 en verschil tussen 32 en 64 bit versies access.
De database is ontwikkeld op mijn laptop (windows 7, office 2007, 32 bit). De computer waarop de database moet gaan draaien is ook een 32 bit machine, heeft windows xp en office 2007.
Ik had al meer artikelen gelezen, maar daarbij wordt iedere keer verwezen naar access 2010
Ik heb gisteren wel een poging gewaagd om er een accde bestand van te maken. Hier geldt ook weer: op mijn laptop werkt het prima. Als het op de doelcomputer geïnstalleerd wordt krijg ik volgende melding:
Deze database heeft een onbekende indeling.
De database is mogelijk gemaakt met een latere versie van Microsoft Office Access dan de versie die u gebruikt. Werk uw versie van Microsoft Office Access bij naar de huidige versie en open vervolgens de database


De versies van access op de machines waar het wel werkt zijn:
Laptop: 12.0.6606.1000 SP3 MSO 12.0.6607.1000
Netwerk: 12.0.6535.5005 SP2 MSO 12.0.6562.5003

Op doelcomputer staat ook SP3, dus waarom het daar niet werkt is mij tot op heden een raadsel.

Iemand nog suggesties?

mvg
John
 
Krijg je de db ook niet opgestart als je de <SHift> toets ingedrukt houdt?
 
Als ik de accdb versie opstart met shift, dan lukt dat wel. Maar als ik daarna mijn autoexec macro opstart, dan krijg ik als melding: ongeldige procedure aanroep (of soortgelijke tekst). Er komt niet in beeld waar deze ongeldige aanroep vandaan komt (in welke formulier). Ik heb ook iets gelezen over verschillende VB versies. Kan het daar iets mee te maken hebben ? En zo ja, hoe controleer ik dat, en is het daarna mogelijk om een nieuwere versie van VB op systeem te zetten ?
Bij het maken van een accde bestand wordt de code toch al gecompileerd, en heb je verder toch geen VBE meer nodig ? Of heb ik het mis ?

mvg
John
 
John,

Wat je nog kan proberen is het programma op de laptop te decompileren, lukt het dan wel of komt er een foutmelding ?

Om te zien welke versie van de bibliotheken je gebruikt moet je eerst achterhalen waar de gebruikte dll's of olb's zijn opgeslagen. Dat pad vind je bij verwijzingen Dllverwijzingen.PNG
Met de verkenner kan je met de rechtermuisknop de eigenschappen zien

Gr. Jan
 
Wat een probleem zou kunnen zijn, is dat je met verschillende bibliotheek versies werkt. Op het moment dat je een accde maakt, dan kun je de versies niet meer aanpassen. In dat geval is het beter om procedures met Late Binding te maken i.p.v. met Early Binding. Je hebt dan namelijk helemaal geen bibliotheekverwijzingen meer nodig, en je krijgt daar dan ook geen problemen meer mee.
Zowiezo moet je de db helemaal kunnen compileren zonder foutmeldingen, want anders gaat de accde ook niet werken.
 
Op een aantal punten maak ik gebruik van Dim variable as Variant, wat volgens mij een vorm van late binding is.
Ik heb wel artikelen gelezen dat late binding soms wel een factor 100 langzamer is dan early binding.

Voor het maken van de accde compileer ik het programma, en dat levert op mijn laptop geen fouten meer op. De accde werkt dan ook naar behoren op de laptop, alleen helaas nog niet op de doelcomputer.

mvg
John
 
Dim variable as Variant is geen vorm van Late Binding.
Early Binding:
Code:
Dim olApp As Outlook.Application
Set olApp = New Outlook.Application

Late Binding:
Code:
Dim olApp As Object
Set myOlApp = CreateObject("Outlook.Application")

De eerste variant (Early binding) werkt alleen als je een verwijzing naar Outlook opneemt in de bibliotheek, de tweede variant (Late binding) heeft geen bibliotheek nodig maar maakt de connectie in de SET statement.

Early binding is sneller, Late binding is veiliger. Een factor 100 langzamer? Misschien op een 282 computer met 640 kb intern geheugen, en een harde schijf van 20Mb :)
 
Laatst bewerkt:
Goedemorgen,
Het lijkt erop dat het werkt. Office was wel voorzien van SP3, maar schijnbaar waren nog niet de laatste wijzigingen meegenomen. De computer is voorzien van alle mogelijke updates van zowel windows als office, en het werkt nu.

In ieder geval bedankt voor het meedenken.

mvg
John
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan