Gekoppelde tabel

Status
Niet open voor verdere reacties.

Westmech

Gebruiker
Lid geworden
20 mei 2015
Berichten
7
Goedemiddag,


ik heb voor meerdere gebruikers een Access database gemaakt voor het raadplegen van informatie. Deze informatie wordt opgehaald uit een tekst bestand (.txt). Ik kreeg hier foutmeldingen met gelijktijdig gebruik in deze databases.

Nu wil ik de gekoppelde tabel in een back-end zetten en vervolgens voor de gebruikers een front-end maken, waarmee ze kunnen raadplegen. Maar ik kan in de front-end geen koppeling maken met de gekoppelde tabel in de back-end.

Wie kan mij advies geven hoe ik dit het beste kan doen. De gebruikers werken in de runtime via terminal server.

Groeten,
Dirk
 
Ik snap het niet helemaal; bedoel je dat je een tekstbestand koppelt in een backend, en die koppeling vervolgens weer probeert te koppelen in een andere Frontend? Tja, als Microsoft aangeeft dat dit niet kan, denk ik niet dat het veel gaat helpen als wij zeggen dat het wél kan. Niet dat ik dat doe overigens, ik heb dit nooit geprobeerd. Ook nooit de behoefte gehad trouwens. Mijn idee zou toch eerder zijn om de data in een (tevens goed opgemaakte) tabel te importeren. En dan heb je geen probleem.
 
Het tekstbestand met brongegevens wordt 1x per dag overschreven met meest recente gegevens, vandaar dat ik deze koppel en niet importeer. Maar met meerdere "front ends" rechtstreeks uit tekstbestand geeft problemen met meerdere "front ends"tegelijkertijd geopend.
 
Het tekstbestand met brongegevens wordt 1x per dag overschreven met meest recente gegevens.
Dat maakt toch niet uit? Juist als de bestanden maar één maal per dag worden bijgewerkt, is het heel goed te automatiseren met een import tabel.
 
Juist als de bestanden maar één maal per dag worden bijgewerkt, is het heel goed te automatiseren met een import tabel.

OctaFish hoe bedoel je te automatiseren met een import tabel?

Groeten Dirk
 
Je kunt makkelijk een functie maken die
1. Het tekstbestand importeert
2. De import werktabel leeg maakt
3. De importtabel importeert in de gekoppelde werktabel.

Zo'n procedure laat je dan uitvoeren bij het starten van de database. Of, als je er zeker van wilt zijn dat het elke dag gebeurt, maak je een aparte Frontend die je met een Scheduled Task laat uitvoeren en die alleen de import doet en daarna afsluit.
 
Ik heb wel eens iets gemaakt ooit, maar of dat nu een bruikbaar voorbeeldje is, betwijfel ik. Sowieso was dat een import op basis van een Excel bestand. Maar in beginsel ziet die code er zo uit:

Code:
    DateStamp = Format(date, "yymmdd")
    sUser = Environ("UserName")
    sFile = "C:\Documents and Settings\" & sUser & "\Bureaublad\ImportRegulier " & DateStamp & ".xls"
    DoCmd.SetWarnings False
    DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "ImportRegulier", sFile, True
    DoCmd.SetWarnings True

En dat importeert dus een bestand vanaf het bureaublad naar een nieuwe tabel die automatisch overschreven wordt. Bij een standaard import (Excel, tekst) zijn de veldeigenschappen een zootje; dat kun j enog een beetje voorkomen met een importspecificatie, maar dan moet je die eerst maken. Ik controleer vaak eerst de importtabel voordat ik de volgende stap uitvoer, en dat is met een verwijderquery en toevoegquery de nieuwe gegevens binnenhalen in de wél opgemaakte tabel. Die code kun je ook standaard met een knop uitvoeren. Queries maken en opslaan, en uitvoeren.

Code:
    DoCmd.SetWarnings False
    stDocName = "ImportRegulier_Leegmaken"
    DoCmd.OpenQuery stDocName
    stDocName = "Import_Ori naar ImportRegulier"
    DoCmd.OpenQuery stDocName, acNormal, acEdit
    DoCmd.SetWarnings True

En dan heb je de gegevens op een nette manier ingelezen.
 
Je kunt makkelijk een functie maken die
1. Het tekstbestand importeert
2. De import werktabel leeg maakt
3. De importtabel importeert in de gekoppelde werktabel.

Ik heb een nu een gekoppelde tabel, welke de gegevens uit het bron (TXT) bestand haalt
Ik heb een tabel met identieke kolommen
Een code om de tabel leeg te maken

Hoe kan ik het makkelijkste de records overbrengen van de importtabel naar de werktabel?

Groeten,
Dirk
 
Met een functie die alle processen automatiseert. Die dus eerst de query uitvoert die de tabel leegmaakt, en dan de importtabel importeert. Die kun je dan aan een knop hangen op een formulier.
 
De importtabel heet vrd en de werktabel Voorraad.

Code die ik nu heb om de werktabel leeg te maken is;

CurrentDb.Execute "delete Voorraad"

Hoe kan ik die het beste uitbreiden?
 
Door de volgende regel er onder te zetten :).
Code:
     Docmd.Setwarnings False
     CurrentDb.Execute "delete Voorraad"
     CurrentDb.Execute "import Voorraad"
     Docmd.Setwarnings True

Etc.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan