Gekoppelde tabel met excel geeft foutmelding

  • Onderwerp starter Onderwerp starter nieko
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

nieko

Gebruiker
Lid geworden
20 sep 2002
Berichten
114
Ik heb een gekoppelde tabel met excel gemaakt. Deze wordt gebruikt als zoektabel in een tabel gebruikt.
Als er meerdere gebruikers tegelijkertijd hiervan gebruik maken dan krijg je een melding dat het niet kan.

Weet iemand een oplossing?

Gr. Nieko
 
Waarschijnlijk is het Excel bestand dan door één van de andere gebruikers geopend. Misschien is het opgelost als je dat Excel bestand deelt (<Extra>, <Bestand delen>).
 
Ik heb het bestand op delen gezet maar ik krijg dezelfde melding :confused:
 
Er is weinig info over te vinden; d.w.z. het probleem wel, een oplossing daarentegen niet. Een workaround die ik vond: gebruik een formulier om het Excel bestand te openen, en zet daar een recordset achter die je opent in Snapshot mode. De standaard is Dynaset, waarbij de gelinkte tabel gelocked is. Met Snapshot maak je a.h.w. een zelfstandige kopie, en zitten de gebruikers elkaar niet dwars.
Het is een workaround, want het werkt alleen als je een niet-gebonden formulier maakt wat je dus vult met een Recordset.
 
Ik ga het dinsdag testen. Ik hou je op de hoogte.
 
Is er een reden waarom de excelfile niet geïmporteerd wordt in Access?
Ik importeer zoveel mogelijk in de database omdat dit vreemde foute voorkomt, maar soms ontkom je er niet aan.

En welke foutmelding krijg je precies?
 
Met de suggestie van OctaFish ga je het nog steeds niet voor elkaar krijgen om de gelinkte tabel rechtstreeks door meerdere gebruikers te laten openen.
Op zich logisch, want het Excel bestand is "in bewerking" zodra 1 gebruiker de gelinkte tabel gebruikt.
Dit is standaard gedrag.
Zoals Floor al aangaf is de standaard aanpak in dit soort gevallen, "importeren".

Tardis
 
Ik heb de suggestie zelf niet uitgeprobeerd, maar gevonden op een website waar iemand hem als werkende oplossing had uitgetest. Dus ik zou 'm niet op voorhand afwijzen zonder een test. Of heb je deze manier zelf uitgeprobeerd?
 
Net als jij heb ik mijn info van het Internet geplukt.
Jouw suggestie kom ik ook tegen, edoch lijkt die niet het probleem op te lossen.
Gelinkte tabellen vanuit Excel en multi user gaat nu eenmaal niet samen, dat heb ik ook meegenomen in mijn reaktie.
Maar proberen kan idd geen kwaad.

Link

http://www.bigresource.com/Tracker/Track-ms_access-wm33D9Q4/

Tardis
 
Aan de reacties te zien lijkt het me beter dat de tabel wordt geïmporteerd. Zou je dit met een macro automatisch dagelijks kunnen importeren?
 
Je kunt dat zeker automatiseren; als het bestand op een vaste plek staat, en naar een vaste tabel mag worden geïmporteerd, kun je bijvoorbeeld deze routine gebruiken:

Code:
Private Sub cmdImportRegulier_Click()
DoCmd.SetWarnings False
sUser = Environ("UserName")
sFile = "C:\Documents and Settings\" & sUser & "\Bureaublad\Importbestand.xls"
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "ImportRegulier", sFile, True
DoCmd.SetWarnings True
End Sub

In dit voorbeeld importeer ik een bestand van het bureaublad van de ingelogde gebruiker. Dat kun je uiteraard simpel veranderen.
 
Ja de tabel staat in een vaste directory. Maar ik maak geen gebruik van users. Kan jouw macro dan nog steeds?
 
Tuurlijk! Je hoeft alleen maar de Padverwijzing en bestandsnaam bij sFile aan te passen, en hij zou moeten werken. De macro maakt dus een tabel aan, en overschrijft deze elke keer opnieuw als je een import doet. Normaal gesproken krijg je daar een waarschuwing bij, en die wordt met de opdracht SetWarnings onderdrukt.
 
Ik heb de macro geplakt in "modules" in access. Maar hij doet het niet :confused:

Hoe moet ik precies de macro plakken?
 
Mijn macro is een procedure die op een formulier gebruikt wordt. Om hem in een macro te gebruiken moet je hem enigszins aanpassen. Als volgt:

Code:
Function ImportRegulier()
Dim sUser As String, sFile As String
DoCmd.SetWarnings False
sUser = Environ("UserName")
sFile = "C:\Documents and Settings\" & sUser & "\Bureaublad\Importbestand.xls"
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "ImportRegulier", sFile, True
DoCmd.SetWarnings True
End Function

Als de module is opgeslagen, (ik heb 'm origineel gelaten zoals je ziet....) kun je een Macro maken, waarbij je de opdracht ProcedureUitvoeren selecteert, en daarna bij Functienaam intypt: ImportRegulier ()
Dan zou de macro moeten werken.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan