Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Als u uw bestaande Access-toepassingen wilt gebruiken met SQL Server, kunt u de oorspronkelijke Access-tabellen koppelen aan de gemigreerde SQL Server- of SQL Azure-tabellen. Als u een koppeling maakt, worden uw Access-database zodanig gewijzigd dat uw query's, formulieren, rapporten en data access-pagina's gebruikmaken van de gegevens in de SQL Server of Azure SQL Database in plaats van de gegevens in uw Access-database.
Notitie
Uw Access-tabellen blijven in Access staan, maar worden niet bijgewerkt samen met SQL Server- of SQL Azure-updates. Nadat u de tabellen hebt gekoppeld en de functionaliteit hebt gecontroleerd, wilt u mogelijk uw Access-tabellen verwijderen.
Access- en SQL Server-tabellen koppelen
Wanneer u een Access-tabel koppelt aan een SQL Server- of SQL Azure-tabel, slaat de Jet-database-engine verbindingsgegevens en metagegevens van tabellen op, maar worden de gegevens opgeslagen in SQL Server of SQL Azure. Met deze koppeling kunnen uw Access-toepassingen worden uitgevoerd op de Access-tabellen, ook al bevinden de werkelijke tabellen en gegevens zich in SQL Server of SQL Azure.
Notitie
Als u SQL Server-verificatie gebruikt, wordt uw wachtwoord opgeslagen in duidelijke tekst in de gekoppelde Access-tabellen. U wordt aangeraden Windows-verificatie te gebruiken.
Tabellen koppelen
Selecteer in Access Metadata Explorer de tabellen die u wilt koppelen.
Klik met de rechtermuisknop op Tabellenen selecteer Koppeling.
SQL Server Migration Assistant (SSMA) voor Access maakt een back-up van de oorspronkelijke Access-tabel en maakt een gekoppelde tabel.
Nadat u de tabellen hebt gekoppeld, worden de tabellen in SSMA weergegeven met een klein koppelingspictogram. In Access worden de tabellen weergegeven met een 'gekoppeld' pictogram, een wereldbol met een pijl die ernaar wijst.
Wanneer u een tabel opent in Access, worden de gegevens opgehaald met behulp van een keysetcursor. Als gevolg hiervan worden voor grote tabellen niet alle gegevens tegelijk opgehaald. Terwijl u echter door de tabel bladert, haalt Access zo nodig extra gegevens op.
Belangrijk
Als u toegangstabellen wilt koppelen aan een Azure-database, hebt u SQL Server Native Client(SNAC) versie 10.5 of hoger nodig.
U kunt de nieuwste versie van SNAC verkrijgen via Microsoft SQL Server 2008 R2 Feature Pack.
Access-tabellen ontkoppelen
Wanneer u een Access-tabel loskoppelt van een SQL Server- of SQL Azure-tabel, herstelt SSMA de oorspronkelijke Access-tabel en de bijbehorende gegevens.
Tabellen ontkoppelen
Selecteer in Access Metadata Explorer de tabellen die u wilt ontkoppelen.
Klik met de rechtermuisknop op Tabellenen selecteer dan Ontkoppel.
Tabellen koppelen aan een andere server
Als u de Access-tabellen hebt gekoppeld aan één SQL Server-exemplaar en u later de koppelingen naar een ander exemplaar wilt wijzigen, moet u de tabellen opnieuw koppelen.
Tabellen koppelen aan een andere server
Selecteer in Access Metadata Explorer de tabellen die u wilt ontkoppelen.
Klik met de rechtermuisknop op Tabellen, selecteer vervolgens Ontkoppel.
Klik op de knop Opnieuw verbinding maken met SQL Server.
Maak verbinding met het exemplaar van SQL Server of SQL Azure waaraan u de Access-tabellen wilt koppelen.
Selecteer in Access Metadata Explorer de tabellen die u wilt koppelen.
Klik met de rechtermuisknop op Tabellenen selecteer Koppeling.
Gekoppelde tabellen bijwerken
Als de SQL Server- of SQL Azure-tabeldefinities worden gewijzigd, kunt u de koppeling opheffen en de tabellen vervolgens opnieuw koppelen in SSMA met behulp van de procedures die eerder in dit onderwerp zijn weergegeven. U kunt de tabellen ook bijwerken met behulp van Access.
Gekoppelde tabellen bijwerken met behulp van Access
Open de Access-database.
Klik in de lijst Objecten op Tabellen.
Klik met de rechtermuisknop op een gekoppelde tabel en selecteer Gekoppeld tabelbeheer.
Schakel het selectievakje in naast elke gekoppelde tabel die u wilt bijwerken en klik vervolgens op OK-.
Mogelijke problemen na de migratie
De volgende secties bevatten problemen die kunnen optreden in bestaande Access-toepassingen nadat u databases hebt gemigreerd van Access naar SQL Server of SQL Azure en vervolgens de tabellen, samen met de oorzaken en de oplossingen, koppelt.
Trage prestaties met gekoppelde tabellen
Oorzaak: Bepaalde query's kunnen om de volgende redenen traag zijn na het grootschaliger maken:
De toepassing is afhankelijk van functies die niet bestaan in SQL Server of SQL Azure, waardoor Jet tabellen lokaal kan ophalen om een SELECT-query uit te voeren.
Query's die veel rijen bijwerken of verwijderen, worden door Jet verzonden als een geparameteriseerde query voor elke rij.
oplossing: converteer de traag uitgevoerde query's naar passthrough-query's, opgeslagen procedures of weergaven. Converteren naar passthrough-query's heeft de volgende problemen:
Pass-through query's kunnen niet aangepast worden. Als u het queryresultaat wilt wijzigen of nieuwe records wilt toevoegen, moet u dit op een alternatieve manier doen, bijvoorbeeld door expliciete Wijzigen of Toevoegen knoppen op uw formulier te hebben die aan de query zijn gebonden.
Voor sommige query's is gebruikersinvoer vereist, maar passthrough-query's bieden geen ondersteuning voor gebruikersinvoer. Gebruikersinvoer kan worden verkregen door VBA-code (Visual Basic for Applications) die vraagt om parameters of door een formulier dat wordt gebruikt als invoerbesturingselement. In beide gevallen verzendt de VBA-code de query met de gebruikersinvoer naar de server.
Auto-incrementeer kolommen worden pas aangepast wanneer het record wordt bijgewerkt.
Oorzaak: Na het aanroepen van RecordSet.AddNew in Jet is de kolom voor automatisch verhogen beschikbaar voordat de record wordt bijgewerkt. Dit geldt niet in SQL Server of SQL Azure. De nieuwe waarde van de identiteitskolom is alleen beschikbaar nadat u het nieuwe record hebt opgeslagen.
oplossing: voer de volgende VBA-code (Visual Basic for Applications) uit voordat u het identiteitsveld opent:
Recordset.Update
Recordset.Move 0,
Recordset.LastModified
Nieuwe records zijn niet beschikbaar
Oorzaak: Wanneer u een record toevoegt aan een SQL Server- of SQL Azure-tabel met behulp van VBA, als het unieke indexveld van de tabel een standaardwaarde heeft en u geen waarde aan dat veld toewijst, wordt de nieuwe record pas weergegeven wanneer u de tabel opnieuw opent in SQL Server of SQL Azure. Als u probeert een waarde op te halen uit de nieuwe record, wordt het volgende foutbericht weergegeven:
Run-time error '3167' Record is deleted.
Oplossing: Wanneer u de tabel SQL Server of SQL Azure opent met behulp van VBA-code, neemt u de optie dbSeeChanges
op, zoals in het volgende voorbeeld:
Set rs = db.OpenRecordset("TestTable", dbOpenDynaset, dbSeeChanges)
Na de migratie kunnen sommige query's de gebruiker geen nieuwe record toevoegen
oorzaak: Als een query niet alle kolommen bevat die zijn opgenomen in een unieke index, kunt u geen nieuwe waarden toevoegen met behulp van de query.
oplossing: Zorg ervoor dat alle kolommen die zijn opgenomen in ten minste één unieke index deel uitmaken van de query.
U kunt een gekoppeld tabelschema niet wijzigen met Access
Oorzaak: Nadat gegevens zijn gemigreerd en tabellen zijn gekoppeld, kan de gebruiker het schema van een tabel in Access niet wijzigen.
oplossing: wijzig het tabelschema met behulp van SQL Server Management Studio en werk de koppeling vervolgens bij in Access.
Hyperlinkfunctionaliteit gaat verloren na het migreren van gegevens
Oorzaak: Na het migreren van gegevens verliezen hyperlinks in kolommen hun functionaliteit en worden ze eenvoudig nvarchar(max) kolommen.
resolutie: Geen.
Sommige SQL Server-gegevenstypen worden niet ondersteund door Access
Oorzaak: Als u de SQL Server- of SQL Azure-tabellen later bijwerkt om gegevenstypen te bevatten die niet worden ondersteund door Access, kunt u de tabel niet openen in Access.
oplossing: U kunt een Access-query definiëren die alleen die rijen met ondersteunde gegevenstypen retourneert.