Access klapt er af en toe uit. Fout: Onbekende databaseindeling

Status
Niet open voor verdere reacties.

KPTPTT

Gebruiker
Lid geworden
2 mrt 2018
Berichten
321
Hallo. Er sprake van een Access 2016 database bestaande uit een BE en meerdere FE's. Tot nu toe werkte alles OK. Vanmiddag een nieuwe versie FE geïnstalleerd met aangepaste VBA code. De database is er nu al twee maal "uitgeklapt".
De foutmelding is op de FE: Onbekende database-indeling D:\ ………. database_be.accbb. Een bekende melding. Meestal kun je eea. oplossen met Herstel en Comprimeren en dit heb ik gedaan maar de db is er nog een keer uitgeklapt. Dit is onbetrouwbaar geworden Ik ben nu van plan ter voorbereiding, voor als het nog een keer gebeurd, om een nieuwe database te starten en de gegevens van de bestaande database te importeren zodat alles weer in het gareel gaat lopen.
Wat is jullie advies:
a) Alleen de tabellen van de oude BE naar de nieuwe database BE importeren. Daarna koppelen met de bestaande FE. Kan ik zo een BE realiseren, het bestand blijft volgens mij .accdb?
b) Alleen de formulieren, Query's, rapporten etc. naar de nieuwe database FE. Daarna koppelen met de bestaande BE. Kan ik zo een FE realiseren, het bestand blijft volgens mij .accdb??
c) Tabellen, formulieren, Query's, rapporten etc. importeren. De nieuwe database opnieuw splitsen in een FE en BE?

Alvast bedankt.
 
d) Tabellen van oude BE importeren in een nieuwe BE en objecten in FE importeren naar nieuwe FE. Ervoor zorgen dat de nieuwe FE alle nodige bibliotheken oplaadt (references) en de 2 nieuwe bestanden koppelen. Als het probleem zich blijft voordoen de oude FE opnieuw koppelen en de nieuwe code in de nieuwe FE grondig nakijken.
 
Hartelijk dank. Het blijkt dat na de foutmelding en alle gekoppelde FE's zijn "gesloten", de BE nog is voorzien van de lockfile. De BE daarna opgestart waarbij de melding over inconsistentie van de database wordt gegeven. De database herstelt en gecomprimeerd en vervolgens de BE afgesloten. Door nu de FE weer op te starten, die de BE opstart, werkt alles weer normaal. Ik heb in de nieuwe versie FE code geschreven dat op zichgoed en zonder bug werkt. Ik heb niet het idee dat daarom de code van de FE de schuldige is. Als er een bug in de code zit, krijg je daar toch een melding van. Maar er is sprake van inconsistentie van de database. Ligt het probleem nu in de FE of de BE? Ik ga in ieder geval een nieuwe FE en BE maken.
 
Een lockfile blijft wel eens achter, als de FE bijvoorbeeld verkeerd is afgesloten. Dat hoeft niet aan je code te liggen. Vaak kun je de lockfile zelfs gewoon verwijderen, en is het probleem ook al opgelost.
 
Dank voor jullie antwoord. De gesplitste database klapt er spontaan tweemaal per dag uit en dan blijft de lockfile staan. Dus is er wat aan de hand, maar wat??

Ik probeer een nieuwe Fe te maken maar dat gaat niet goed. Nieuwe database geopend. Via de knoppen Externe gegevens, nieuwe gegevensbron, Acces aangegeven dat alle formulieren, query's en rapporten incl. relaties moeten worden geïmporteerd. Tijdens het proces worden foutmeldingen gegeven:
a) Melding: Er is al een module, project of objectbibliotheek met deze naam - OK van "Rapport Verzamelstaat PvO"
Melding: Geen huidige record - OK
b) Melding: De zoeksleutel is geen enkele record gevonden - OK van "Rapport Werkorders"
c) Melding: Er is al een module, project of objectbibliotheek met deze naam - OK van "Rport Werkorders"
Melding: Geen huidige record - OK
d) Melding: De zoeksleutel is geen enkele record gevonden - OK van "Status naar Opdrachtgevers"
e) Melding: De microsoft database engine kan het object Status naar Opdrachtgevers niet vinden. Controleer of het object bestaat en of u de naam van het pad correct hebt gespeld. - OK

Hierna gaat de import verder. de Fe gekoppeld met de Be. Bij opstarten van de database missen de vermelde rapporten. Sommige functies van de database werken.

Ik heb al verschillende malen een nieuwe database gemaakt maar het lukt niet. De oude database werkte maar klapt er af en toe uit. Wat zou het kunnen zijn?
 
Begin met losse onderdelen te importeren, dus bijvoorbeeld eerst de koppelingen, dan de (FE) queries etc. Daarna beginnen met modules (gaat meestal ook wel goed) en daarna de formulieren per stuk, en de rapporten per stuk. De formulieren die een fout genereren, zijn dan corrupt en kun je beter overnieuw maken. Daar kun je overigens, als je twee databases opent, met Copy-Paste best snel doorheen.
 
Dank voor je bericht. Als ik alles, volgens je aanwijzing, los in een nieuwe database importeer, dan worden de relaties niet geïmporteerd. Dus alleen maar lege formulieren, etc. Op één rapport na, kon ik alles importeren maar door de ontbrekende relatie is het zinloos, de db werkt niet. Al met al geen succes en maak mij zorgen voor de toekomst als er weer eens zo'n situatie optreedt. Hoe krijg ik de db weer stabiel? Heb je nog een idee?
 
Het zou kunnen dat er ergens een corrupt record in je back-end zit. Is er ergens in een tabel een record waar je alleen ##### tekens te zien krijgt?
 
Op één rapport na, kon ik alles importeren maar door de ontbrekende relatie is het zinloos, de db werkt niet.
Relaties kun je na het importeren toch weer opnieuw aanmaken? De bedoeling is uiteraard dat je een complete kopie opbouwt, maar dan een die weer werkt :)
 
Dank je wel. Het blijft stoeien geblazen. Relaties worden alleen getransporteerd door ook de tabellen te importeren en de db daarna opnieuw te splitsen. Dat zal wel niet de bedoeling zijn. Heb ik geprobeerd, is geslaagd op twee rapporten na die na apart importeren de foutmelding geven: "Er is al een module, project of objectbibliotheek met deze naam". Tweede melding: "Geen huidige record". Dat snap ik niet, er geen rapport met die naam!!

In het geval van een nieuwe db zonder import tabellen. Als ik de Querys, formulieren en rapporten in een nieuwe db importeer, dan heb ik geen relaties meer. Zoals je aangeeft moet ik die opnieuw maken. Dat is een hele klus en moet dat in de nieuwe Fe? Tevens bij het maken van relaties zijn er tabellen nodig en die staan niet in de Fe. Je kunt geen koppelingen importeren zoals je schrijft, hoe wel? Dan blijf ik nog steeds problemen hebben met die twee rapporten (zijn eigenlijk twee formulieren die zijn opgeslagen als een nieuw Object (Rapport)). De naam schijnt al te bestaan, maar hoe kan dat? Dat krijg ik niet opgelost.
 
Dit blijft een lastig probleem, meestal en dat is mijn ervaring wanneer er veel fouten gemaakt zijn in de code's.

Een database splitsen moet je ook doen wanneer alles perfect in orde is en daarna niet zoveel meer veranderen als de kans op fouten maken nog groot is.
Misschien heb je nog een werkende kopie, ga daar dan weer vanuit werken, kan soms een snellere oplossing zijn.
 
Ik had een kopie en heb deze opnieuw aangepast. Het geeft dezelfde problemen.

Ik ben nog wat verder gegaan met experimenteren. Ik heb op één of andere manier de onwillige rapporten kunnen kopiëren en in de nieuwe db geplakt. Ik heb wel de Be db moeten importeren om de relaties mee te krijgen. Het resultaat werkt, maar kan dat in de praktijk niet testen in een operationele omgeving, dat is teveel risico. Hierna heb ik de db gesplitst in een fe en be. Op zich werkt het nu weer alleen vind ik de db nog steeds onbetrouwbaar. Om dit te testen heb ik weer een nieuwe db aangemaakt en de vernieuwd db in deze laatste db geïmporteerd. Ik krijg weer dezelfde rapportfouten. Dus al met al zijn er geen betrouwbare resultaten bereikt.
 
Laatst bewerkt:
Heb je al een andere database geprobeerd, dus niet waar je nu mee bezig bent dus een totaal andere die niets met deze base te maken heeft.
Dit om uit te sluiten dat access het programma zelf een bug heeft gekregen.

Loopt een ander programma gemaakt met access goed dan denk ik dat de fout in waarschijnlijk 1 van de rapporten zit.

Probeer eens 1 rapport handmatig opnieuw te maken, dus niet importeren, als dat goed gaat dan weet je zeker dat er een bug in de rapporten zit.
 
Dank voor het meedenken. Ik vermoed ook dat de fout in de rapporten zit, hoewel ze goed werken. Als ik een formulier als object rapport opslaat (formulier open, opslaan als, object, selectie rapport), dan gaat dat niet, ik krijg weer een foutmelding dat het al bestaat. Dus ik kan het rapport niet opnieuw genereren. Kan ik nog een stap verder terug gaan en het formulier opnieuw ontwerpen. Maar dat is een complex formulier en dat doe je niet even zomaar. Daarbij weet ik niet of dat helpt.

Ik heb ook alleen het formulier in een nieuwe lege database geïmporteerd en toen weer een (object) rapport gegenereerd, ook hier weer de foutmelding dat deze al bestaat. Hoe kan dat nu in een lege database?
 
Schijnbaar ga ik hier iets nieuws leren een (formulier open, opslaan als, object, selectie rapport).

Doe dat nu eens niet en sluit je formulier normaal.
Maak en nieuw rapport handmatig door de velden die je wilt zien er in te slepen, kijk dan wat het resultaat is.
 
Dank, het is een normale situatie. Er wordt in feite geen rapport gemaakt in de zin van het woord. Het resultaat is het formulier als object opgeslagen in de rubriek Rapporten. Maar ook een echt rapport lukt lukt niet.
 
Blijf meedenken, maar een formulier opslaan als een object is voor mij onbekend, wat is de zin hiervan, zie wel dat je een tabel op kan slaan als object zijnde.

Geef eens antwoordt of Access zelf goed werkt door een andere database te openen.
Heb je al een eerdere kopie die goed werkte al geprobeerd.
 
Vergeet ook niet de back-end te checken. Ik heb dat ooit ook meegemaakt, wel bij een vroegere versie van access (zo'n 20 jaar geleden). Toen bleek het na lang zoeken een corrupt record te zijn in één van de tabellen. Alles werkte goed, tot men in een formulier een recordset opende met dat bewuste record.
 
Dank voor je bijdrage. Ik heb ook geprobeerd te importeren met een andere hele kleine Be, met 3 records. Maar ook andere Be's die ik in de loop der tijd heb verzameld. Maar dat lukte ook niet. Het is hardnekkig. Ik kan de fe/be wel operationeel laten en met de problemen leven (af en toe de lockfile deleten) maar als er in toekomst een nieuw probleem ontstaat kan ik op dat moment geen kant meer op om het probleem met het opbouwen van een nieuwe db te herstellen.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan