Avatar billede Jørgen Kirkegaard Professor
02. juni 2021 - 14:03 Der er 15 kommentarer og
1 løsning

Visual Studio adgang til Access-tabeller: The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine

Jeg ønsker at tilgå en access-database-tabel fra Visual Studio.
Jeg finder ikke meget hjælp i microsofts dok:
https://docs.microsoft.com/en-us/dotnet/visual-basic/developing-apps/accessing-data
Jeg prøver så en video, som forklarer det fint:
https://docs.microsoft.com/en-us/dotnet/visual-basic/developing-apps/accessing-data
Her kommer jeg så til en fejlmeddelelse:
The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine.
Jeg har nu brugt en god del af min ungdom på at finde en løsning på dette, men er gået i stå.
Kan nogen hjælpe?
Avatar billede Gustav Ekspert
02. juni 2021 - 14:25 #1
Selv om du har Office og Access installeret, mangler du sikkert den selvstændige driver Microsoft Access Database Engine 2016 Redistributable, som kan hentes her:

https://www.microsoft.com/da-DK/download/details.aspx?id=54920

Den indeholder både 32- og 64-bit versionen.
Avatar billede Jørgen Kirkegaard Professor
02. juni 2021 - 14:53 #2
Tak Gustav, det ser rigtigt ud, jeg prøver.
Avatar billede Jørgen Kirkegaard Professor
07. juni 2021 - 20:01 #3
Jeg har installeret den nu, men den giver det samme. Jeg har prøvet tools->references, men dér findes den ikke...
??
Avatar billede Jørgen Kirkegaard Professor
07. juni 2021 - 20:02 #4
Den var i øvrigt til 2016, jeg har 365. Måske spiller dét ind?
Avatar billede Gustav Ekspert
07. juni 2021 - 21:37 #5
Fik du installeret til både 32- og 64-bit?
Undersøg i VS, om du kompilerer til 32-bit, 64-bit eller begge dele.
Avatar billede Jørgen Kirkegaard Professor
07. juni 2021 - 22:26 #6
Tak for det! Det er vel sådan liii for at sætte mig af, for hvordan undersøger jeg det? Og skal jeg installere begge, når jeg kun bruger 64?
Avatar billede Gustav Ekspert
08. juni 2021 - 08:03 #7
Det er under menu Project, Properties, Build, General, Platform target.
Her kan du vælge x86, x64 eller Any CPU.

Der er ingen grund til at installere driveren kun i den ene version, med mindre du ved, at du i al evighed kun vil compilere til én type CPU.
Avatar billede Jørgen Kirkegaard Professor
09. juni 2021 - 11:27 #8
Hmm - jeg kan ikke finde menu "Project". Jeg har kun "File", "Edit", ...
Avatar billede Gustav Ekspert
09. juni 2021 - 11:45 #9
Du skal åbne projektet:

File, Edit, View, Git, Project, Build, ...
Avatar billede Jørgen Kirkegaard Professor
09. juni 2021 - 13:52 #10
Okay, tak, det er så lidt anderledes hos mig, men jeg fandt det. Her stod "Any CPU" i Platform target.
Nedenunder var der 3 muligheder, hvor den første var hakket af:
[x] Prefer 32-bit
[] Allow unsafe code
[] Optimize code.

Jeg ændrede det til:

[] Prefer 32-bit
[x] Allow unsafe code
[] Optimize code.

Har du (eller andre) holdning til dét?
Avatar billede Gustav Ekspert
09. juni 2021 - 14:06 #11
Den første skulle være god nok, men prøv at fjerne mærket.
Jeg ville ikke sætte mærke i den næste.
Avatar billede Jørgen Kirkegaard Professor
03. juli 2021 - 17:13 #12
Jeg har nu set på det med nye øjne og så, at jeg skulle afinstallere den gamle "engine" - ikke hele access. Det har jeg så gjort nu, og jeg får samme fejlmeddelelse. Forsøgt på 2 pc'er.
Any clues, anyone?
Avatar billede Gustav Ekspert
03. juli 2021 - 20:13 #13
Prøv at kigge dette ekstremt populære spørgsmål og især dette svar:

https://stackoverflow.com/a/32293408/3527297

Bemærk PowerShell scriptet, der lister, hvad du har installeret:

(New-Object system.data.oledb.oledbenumerator).GetElements() | select SOURCES_NAME, SOURCES_DESCRIPTION

Det kan køres både i 64-bit PowerShell og 32-bit PowerShell (x86).

Her er, hvad jeg har i 64-bit:

SOURCES_NAME              SOURCES_DESCRIPTION
------------              -------------------
SQLOLEDB                  Microsoft OLE DB Provider for SQL Server
MSDataShape                MSDataShape
SQLNCLI11                  SQL Server Native Client 11.0
Microsoft.ACE.OLEDB.12.0  Microsoft Office 12.0 Access Database Engine OLE DB Provider
Microsoft.ACE.OLEDB.16.0  Microsoft Office 16.0 Access Database Engine OLE DB Provider
ADsDSOObject              OLE DB Provider for Microsoft Directory Services
MSOLEDBSQL                Microsoft OLE DB Driver for SQL Server
MSOLEDBSQL Enumerator      Microsoft OLE DB Driver for SQL Server Enumerator
SQLNCLI10                  SQL Server Native Client 10.0
SQLNCLI11 Enumerator      SQL Server Native Client 11.0 Enumerator
SQLNCLI10 Enumerator      SQL Server Native Client 10.0 Enumerator
Windows Search Data Source Microsoft OLE DB Provider for Search
MSDASQL                    Microsoft OLE DB Provider for ODBC Drivers
MSDASQL Enumerator        Microsoft OLE DB Enumerator for ODBC Drivers
MSOLAP                    Microsoft OLE DB Provider for Analysis Services 14.0
MSOLAP                    Microsoft OLE DB Provider for Analysis Services 14.0
SQLOLEDB Enumerator        Microsoft OLE DB Enumerator for SQL Server
MSDAOSP                    Microsoft OLE DB Simple Provider
MSOLAP                    Microsoft OLE DB Provider for Analysis Services 13.0
MSOLAP                    Microsoft OLE DB Provider for Analysis Services 13.0


og i 32-bit:

SOURCES_NAME              SOURCES_DESCRIPTION
------------              -------------------
SQLOLEDB                  Microsoft OLE DB Provider for SQL Server
MSDataShape                MSDataShape
SQLNCLI11                  SQL Server Native Client 11.0
ADsDSOObject              OLE DB Provider for Microsoft Directory Services
MSOLEDBSQL                Microsoft OLE DB Driver for SQL Server
SSISOLEDB                  OLE DB Provider for SQL Server Integration Services
MSOLEDBSQL Enumerator      Microsoft OLE DB Driver for SQL Server Enumerator
SQLNCLI10                  SQL Server Native Client 10.0
SQLNCLI11 Enumerator      SQL Server Native Client 11.0 Enumerator
SQLNCLI10 Enumerator      SQL Server Native Client 10.0 Enumerator
Windows Search Data Source Microsoft OLE DB Provider for Search
SSISOLEDB                  OLE DB Provider for SQL Server Integration Services
MSDASQL                    Microsoft OLE DB Provider for ODBC Drivers
MSDASQL Enumerator        Microsoft OLE DB Enumerator for ODBC Drivers
MSOLAP                    Microsoft OLE DB Provider for Analysis Services 14.0
MSOLAP                    Microsoft OLE DB Provider for Analysis Services 14.0
Microsoft.Jet.OLEDB.4.0    Microsoft Jet 4.0 OLE DB Provider
SQLOLEDB Enumerator        Microsoft OLE DB Enumerator for SQL Server
MSDAOSP                    Microsoft OLE DB Simple Provider
MSDAORA                    Microsoft OLE DB Provider for Oracle
MSOLAP                    Microsoft OLE DB Provider for Analysis Services 13.0
MSOLAP                    Microsoft OLE DB Provider for Analysis Services 13.0


Som du ser, ingen ACE.OLEDB driver i 32-bit, så måske du skulle prøve, at lade din applikation kun køre 64-bit.
Avatar billede Jørgen Kirkegaard Professor
05. juli 2021 - 00:14 #14
Hmm, måske er det omvendt. Jeg har kun 64 og har aldrig prøvet det i andet end 64. (Og gid en-vis-mand havde disse to at skulle holde styr på)
Avatar billede Gustav Ekspert
05. juli 2021 - 09:58 #15
Avatar billede Jørgen Kirkegaard Professor
05. juli 2021 - 16:01 #16
Hmm - "Visual Studio is a 32 bit application". Den oplysning kunne jeg have fået fra starten. Jeg skrev selvfølgelig ikke, at det gjaldt VS 2019.
Denne artikel er også god: https://visualstudiomagazine.com/articles/2021/04/19/vs-2022.aspx
Den henviser til en lettere sarkastisk kommentar her: https://news.ycombinator.com/item?id=26863832:
"I guess the big news is the support for 64-bit. Good that it didn't take them that long - the first Windows version on a 64 bit architecture is not even 20 years old yet. Windows XP for IA-64 was released in October 2001."
Tak for hjælpen.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester