Opgelost update xlsx to mdf

Dit topic is als opgelost gemarkeerd
Status
Niet open voor verdere reacties.

KimBE

Gebruiker
Lid geworden
21 jan 2015
Berichten
190
hallo,

ik wil de data uit een xlsx bestand importeren naar een bestaande mdf database.
bestaande gegevens moet worden vervangen en nieuwe toegevoegd.
ik heb volgende code die ik in ssms uitvoer.
Code:
MERGE INTO dbo.stock AS Target
USING (SELECT ref, vast, es, omschrijving FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;Database=C:\cat\stock.xlsx', 'SELECT * FROM [Blad1$]')) AS Source
ON Target.autonr = Source.autonr
WHEN MATCHED THEN
    UPDATE SET
        Target.ref = Source.ref,
        Target.vast = Source.vast,
        Target.es = Source.es,
        target.omschrijving = source.omschrijving
WHEN NOT MATCHED BY TARGET THEN
    INSERT (ref, vast, es, omschrijving)
    VALUES (Source.ref, Source.vast, Source.es, source.omschrijving);
Bij de source kolommen krijg ik telkens de melding "invalid column" terwijl deze toch correct zijn.
als ik probeer via sql import en export krijg ik de melding "De Microsoft.ACE.OLEDB.12.0-provider is niet geregistreerd op de lokale computer. (System.Data)" terwijl deze wel is geïnstalleerd.
Import en export met een xls file lukt wel
 
Een paar dingen om te checken
  • Als je de xlsx file via de import wizard in een test tabel importeert lukt het wel?
  • Ad Hoc Distributed queries zijn enabled?
  • Je hebt de juiste 32 bits/64 bits OLEDB?
 
  • via de import wizard lukt het ook niet "De Microsoft.ACE.OLEDB.12.0-provider is niet geregistreerd op de lokale computer. (System.Data)" terwijl deze wel is geïnstalleerd.
  • ad hoc is enabled.oledb.png
 
Dan vermoed ik dat het niet de juiste versie is. Welke versie van SQL server?
 
Ik kies excel als source bij de import wizard
De code heb ik via copilot.
 
Normaal als je excel als source gebruikt en de SQL native client als destination, dan zou je in staat moeten zijn om de exel data in een nieuwe test tabel te kunnen importeren. De Excel file staat op dezelfde computer?
 
Excel file staat op de c schijf.
Met een xls lukt het wel maar een xlsx niet.
welke excel versie moet ik kiezen in import wizard ?
 
degene die overeenkomt met de versie die je wil importeren.
Als het met een xlsx niet lukt zijn de opties: ofwel sla je de xlsx op als een xls file als extra stap in je importroutine, of je kan de excel ook als csv opslaan en dan importeren.
Of je verwijdert de OLEDB driver en installeert een nieuwe versie.
 
blijkbaar is ssms 32 bit en de ole db 64 bit.
Ik kan de 32 bit niet installeren omdat er al andere 64 bit office apps zijn geïnstalleerd.
 
(If you already have Microsoft Access Database Engine 2016 Redistributable 64-Bit version installed, and don't want to remove it to install the 32-Bit version)

Locate and run the SQL Server 2019 Import and Export Data (64-bit) version to export your data.

Don't try to start your export from the SQL Server Management Studio, as that runs in 32-Bit

Can be found here: C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Microsoft SQL Server 2019

Image
 
heb de oplossing gevonden om toch de 32 bit te kunnen installeren.
Om deze inhoud te bekijken, hebben we jouw toestemming nodig om cookies van derden te gebruiken.
Voor meer gedetailleerde informatie, zie onze cookiespagina.

thx voor de support.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan