.net - Microsofts jet database kan ikke åbne filen '...' Den er allerede åbnet udelukkende af en anden bruger, eller du har brug for tilladelse til at se dens data

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har en WinForms applikation, som jeg har overtaget støtte til, og den blev bygget ved hjælp af Visual Studio 2005 med VB.Net. Ansøgningen gør brug af en Access-database. Det går fint, når det installeres som en selvstændig applikation, men installations cd'en til applikationen tillader også en netværksinstallation, og det er her, hvor jeg i øjeblikket støder på problemer.


For at teste netværksinstallationen oprettede jeg en mappe på min server (Windows Server 2003 SP2) og kopierede Access-databasen til denne mappe. Jeg har oprettet en del til denne mappe og gav alle fuld tilladelser til aktien. Derefter installerede jeg på arbejdsstationen applikationen og gav stien til databasen som følger:


\\ minserver \ Delemappe \ mydb.mdb


(Installationsstrinnene her er som i instruktionerne på installations cd'en)


Den arbejdsstation, jeg installerede den på, er Windows 7 Ultimate. Når jeg kører programmet, får jeg fejlmeddelelsen givet i titlen, når applikationen forsøger at læse databasefilen. Jeg har bekræftet, at jeg er i stand til at skrive til den delte mappe på serveren, så jeg tror ikke dette er et tilladelsesproblem. Også databasefilen er slet ikke i brug, så det er bestemt ikke åbent udelukkende. har du nogen ide om hvad der kunne forårsage dette og hvad jeg kunne forsøge at gøre for at få det til at fungere?


UPDATE:


Jeg har testet arbejdsstationsinstallationen på en computer med en frisk installation af Windows XP SP3, og det er i stand til at få adgang til databasefilen uden problemer. Så det ser ud til, at denne fejl, jeg får, er en eller anden måde specifik for Windows 7. Er der måske et kendt problem med Oledb-drivere på Windows 7? Min version af Windows 7, btw er 32 bit.

Bedste reference


Der kunne være så mange ting, så det er svært at give et præcist svar.
Men jeg havde et lignende problem et stykke tid, og jeg skrev et indlæg, som jeg ikke vil duplikere her:


http://walkinghumble.wordpress.com/2009/02/20/cannot-connect-to-an-access-mdb-file-located-on-the-network-through-oledb/[1]


Måske vil det hjælpe, hvis det underliggende problem er det samme (selvom det i mit tilfælde var en ASP.NET app). Hvis ikke, vil det i det mindste fremme processkærmen, hvis du ikke vidste det endnu.

Andre referencer 1


Jet 4.0 kunne ikke åbne en Access-fil uden 'Microsoft ADO Ext 2.8 for DDL og Security' COM-reference sæt i projektets referenceindstillinger. For at kontrollere status for referencer skal du gå: Projekt -> Referencer -> COM.


Andre vigtige referencer for at gøre dette arbejde er:


'Microsoft ADO Data Control 6.0 (OLEDB)' COM-reference


'Microsoft Access 14.0 Object Library' COM-reference

Andre referencer 2


Nogle gange får du adgang til at rapportere denne fejl, når du har en ubestemt MS Access-proces på din egen maskine. Kontroller proceslisteens procesliste (ikke applikationer).

Andre referencer 3


Prøv at køre disse ting ned ...



  1. Er disse computere på et domæne? Hvis ja, er Win 7-feltet tilmeldt domænet?

  2. Har du indstillet tilladelserne, mens du logger på serveren - eller har du indstillet tilladelserne fra en del på en anden maskine? Indstil tilladelserne på serveren selv.

  3. Fra vinduet Win 7 - kontroller, at du kan åbne aktien på 2003-serveren og ændre adgangsfilnavnet (ligesom en test - ændrer den naturligvis tilbage).

  4. Har du Access installeret på win 7-boksen? Hvis det er tilfældet - se om du har adgang til delingen og brug adgang for at åbne .mdb.