Symptomen
In Microsoft Office Access 2007 kunnen gerepliceerde databases die zijn gemaakt in eerdere versies van Access (MDB-indeling) niet worden opgeslagen in de nieuwe ACCDB-bestandsindeling. De optie wordt lichter gekleurd (niet-beschikbaar) weergegeven wanneer u de opdracht Database opslaan als wilt gebruiken (klik op de Microsoft Office-knop
en klik vervolgens op de pijl naast Opslaan als).
Oorzaak
De ACCDB-bestandsindeling biedt geen ondersteuning voor replicatie.
Oplossing
Gebruik de gerepliceerde database in de MDB-bestandsindeling
U kunt uw gerepliceerde databases in de MDB-bestandsindeling blijven gebruiken. De replicatiefunctie wordt nog steeds ondersteund voor de MDB-bestandsindeling.
Maak de database handmatig opnieuw in de Office Access 2007-bestandsindeling
Als u van mening bent dat de voordelen van replicatie niet opwegen tegen de voordelen van de nieuwe bestandsindeling, kunt u een nieuwe database maken in Office Access 2007-indeling en de gerepliceerde database handmatig opnieuw maken.
Opmerking Deze methode is geschikt voor elke gerepliceerde database, maar de nieuwe database zal geen gegevens en projecten bevatten die zich niet reeds in de replica bevonden, tenzij u werkt met een volledige replica die is gesynchroniseerd met alle andere replica's in de replicaset.
Voordat u de database opnieuw gaat maken, moet u ervoor zorgen dat alle verborgen objecten en systeemobjecten in de replica zichtbaar zijn. Op die manier zorgt u ervoor dat u toegang hebt tot de specifieke replicavelden in de replicatie wanneer u deze opnieuw maakt.
- Open de replica die u wilt converteren. Om de verborgen velden en systeemvelden weer te geven, moet u de replicatie openen met dezelfde versie van Access als die waarin de replica oorspronkelijk is gemaakt.
- Klik in het menu Extra op Opties. Het dialoogvenster Opties wordt geopend.
- Ga naar het tabblad Weergave en selecteer in de sectie Weergeven de opties Verborgen objecten en Systeemobjecten. Klik op OK om de nieuwe instellingen toe te passen en het dialoogvenster Opties te sluiten.
De database handmatig opnieuw maken
- Maak een lege database en open deze.
Opmerking In Access wordt een nieuwe, lege tabel met de naam Tabel1 gemaakt. Verwijder deze tabel door de tabel onmiddellijk te sluiten voordat u wijzigingen aanbrengt. Klik met de rechtermuisknop op het objecttabblad en kies Sluiten in het snelmenu.
- Klik op het tabblad Externe gegevens, in de groep Importeren, op Access.
Het dialoogvenster Externe gegevens ophalen - Access-database wordt weergegeven.
- Klik op Bladeren om de gerepliceerde database te zoeken.
- Klik op de gerepliceerde database die de databaseobjecten bevat die u opnieuw wilt maken in de nieuwe database. Klik vervolgens op Openen.
- Klik in het dialoogvenster Externe gegevens ophalen - Access-database op Tabellen, query's, formulieren, rapporten, macro's en modules importeren in de huidige database en klik op OK.
- Klik op de databaseobjecten die u wilt importeren in de nieuwe database. Als u alle objecten wilt importeren, klikt u op elk tabblad op Alles selecteren.
Belangrijk Selecteer in dit stadium nog geen tabellen. In een volgende stap worden de tabellen opnieuw gemaakt.
- Klik op OK om de objecten te importeren als u klaar bent met het selecteren van objecten.
Op de laatste pagina van de wizard hebt u de mogelijkheid om de importstappen op te slaan voor toekomstig gebruik. Daartoe schakelt u het selectievakje Importstappen opslaan in, voert u de juiste gegevens in en klikt u op Import opslaan.
- Open de gerepliceerde database in Office Access 2007. Maak voor elke tabel in de gerepliceerde database een tabelmaakquery die alle gegevens uit de oude tabel haalt en in de nieuwe database een tabel met dezelfde gegevens maakt.
Opmerking Als het veld s_GUID (GUID: een veld van 16 bytes dat wordt gebruikt in Access-databases om een unieke id vast te stellen voor replicatiedoeleinden. GUID's worden gebruikt voor de identificatie van replica's, replicasets, tabellen, records en andere objecten. In Access-databases worden GUID's replicatie-id's genoemd.) een primaire sleutel is (en externe sleutels (refererende sleutel: een of meer tabelvelden (kolommen) die verwijzen naar het veld of de velden met de primaire sleutel in een andere tabel. Een refererende sleutel geeft de relatie tussen de tabellen aan.) in andere tabellen hiernaar verwijzen), is het raadzaam het veld s_GUID op te nemen in de nieuwe tabel. Als het veld s_GUID niet wordt gebruikt als primaire sleutel, heeft het geen zin dit veld in de nieuwe tabel te handhaven. Kopieer de velden s_Lineage en s_Generation niet naar de nieuwe tabel.
Standaard zijn de velden s_GUID, s_Lineage en s_Generation verborgen. Ga als volgt te werk om deze velden weer te geven:
- Zorg er in de gerepliceerde database voor dat alle tabellen zijn gesloten.
- Klik met de rechtermuisknop boven in het navigatiedeelvenster en klik op Navigatieopties. Het navigatiedeelvenster wordt geopend.
- Selecteer in het gedeelte Weergaveopties de optie Systeemobjecten weergeven en klik op OK.
Werkwijze
- Maak voor elke tabel in de nieuwe database dezelfde index (index: een functie waarmee u sneller kunt zoeken en sorteren in een tabel op basis van sleutelwaarden en waarmee u uniekheid kunt afdwingen voor de rijen in een tabel. De primaire sleutel van een tabel wordt automatisch geïndexeerd. Sommige velden kunnen op grond van het gegevenstype niet worden geïndexeerd.) en primaire sleutel als wordt gebruikt in de tabel in de replica.
Werkwijze
- Maak voor elke tabel in de nieuwe database dezelfde relaties (relatie: een verbinding tussen gemeenschappelijke velden (kolommen) in twee tabellen. Een relatie kan een-op-een, een-op-veel of veel-op-veel zijn.) als voor de replicatabel gelden.
Werkwijze
Wanneer u een relatie tussen tabellen definieert, hoeven de gerelateerde velden niet dezelfde naam te hebben. Gerelateerde velden moeten echter wel hetzelfde gegevenstype (gegevenstype: het kenmerk van een veld dat bepaalt welk type gegevens daarin kunnen worden opgeslagen. Gegevenstypen zijn onder andere Booleaans, Integer, Lang, Valuta, Enkel, Dubbel, Datum, Reeks en Variant (standaardtype).) hebben, tenzij het primaire-sleutelveld een AutoNummering (gegevenstype AutoNumber: in een Microsoft Access-database is dit een veldgegevenstype waarmee automatisch een uniek getal wordt opgeslagen voor elke record die wordt toegevoegd aan een tabel. Er kunnen drie verschillende nummeringen worden gegenereerd: opeenvolgend, willekeurig en replicatie-id.)-veld is. Een AutoNummering-veld kunt u alleen aan een veld met het gegevenstype Numeriek koppelen als de instelling van de eigenschap Veldlengte van beide gekoppelde velden hetzelfde is. U kunt een AutoNummering-veld bijvoorbeeld aan een veld van het type Numeriek koppelen als de eigenschap Veldlengte van de beide velden Lange integer is. Zelfs als beide gekoppelde velden AutoNummering-velden zijn, moet de eigenschap Veldlengte voor beide velden dezelfde instelling hebben.
Een een-op-veel- of een-op-een-relatie definiëren
- Sluit alle eventueel geopende tabellen. U kunt geen relaties instellen of wijzigen tussen geopende tabellen.
- Klik op het tabblad Databasehulpmiddelen, in de groep Weergeven/verbergen, op Relaties.
- Als u nog geen relaties in uw database hebt gedefinieerd, wordt het dialoogvenster Tabel weergeven automatisch weergegeven.
Als u de tabellen die u wilt koppelen nog moet toevoegen en het dialoogvenster Tabel weergeven niet wordt geopend, kunt u het dialoogvenster als volgt openen: ga naar het tabblad Ontwerpen en klik in de groep Weergeven/verbergen op de knop Tabel weergeven.
- Dubbelklik op de namen van de tabellen die u wilt relateren en sluit vervolgens het dialoogvenster Tabel weergeven. Als u een relatie wilt maken tussen een tabel en zichzelf, voegt u de tabel tweemaal toe.
- Sleep het veld dat u wilt relateren uit de tabel naar het gerelateerde veld in de andere tabel.
Als u meerdere velden wilt slepen, houdt u CTRL ingedrukt, klikt u op elk veld en sleept u de velden.
Meestal sleept u het primaire-sleutelveld (dat vet wordt weergegeven) vanuit de ene tabel naar een soortgelijk veld (vaak met dezelfde naam) in een andere tabel, dat de externe sleutel (refererende sleutel: een of meer tabelvelden (kolommen) die verwijzen naar het veld of de velden met de primaire sleutel in een andere tabel. Een refererende sleutel geeft de relatie tussen de tabellen aan.) wordt genoemd.
- Het dialoogvenster Relaties bewerken wordt weergegeven. Controleer of de veldnamen in beide kolommen kloppen. U kunt deze namen desgewenst wijzigen.
Stel zo nodig de relatieopties in.
- Klik op de knop Maken om de relatie te maken.
- Herhaal de stappen 4 tot en met 7 voor elk paar tabellen dat u wilt relateren.
Wanneer u het venster Relaties (venster Relaties: een objecttabblad waarin u relaties tussen tabellen en query's kunt bekijken, maken en wijzigen.) sluit, wordt u gevraagd of u de indeling wilt opslaan. Ook als u de indeling niet opslaat, worden de gemaakte relaties in de database opgeslagen.
Een veel-op-veel-relatie definiëren
- Sla de nieuwe database op.