Avatar billede region Nybegynder
29. juni 2001 - 09:47 Der er 37 kommentarer og
2 løsninger

HJÆÆÆLPPP.....Link tables

Jeg har en database der anvendes af flere brugere. tabellen i denne er linket som en CSV fil.

Hvordan Kan man på linkede tabeller arbejde flere ad gangen. jeg får en fejl der siger at vsc filen allerede er i brug.

( det er ikke exclusive adgang på databasen )


HJÆLP....!!!!!!!!!!
Avatar billede terry Ekspert
29. juni 2001 - 09:49 #1
No but the file is...
Avatar billede region Nybegynder
29. juni 2001 - 09:54 #2
is there no way around this at all...????
Avatar billede rashid Praktikant
29. juni 2001 - 09:56 #3
Du kan jo ikke vide hvem der er inde og rette i tabellen !

Hvad nu hvis der er 2 personer der er igang med at rette i den samme post ???

No way - det duer ikke på denne måde !
Avatar billede terry Ekspert
29. juni 2001 - 10:01 #4
This is taken from a bokk \"The JET Database Engine programmers Guide\".

If the external data source permits multiuser read-write access, you can even view and update the data while other users access the external data source through its native application...

Can a number of users alter the CSV file at the same time through Excel or notepad, if so they can in Access...

Otherwise I suggest importing the data, not ONLINE but better than nothing....
Avatar billede terry Ekspert
29. juni 2001 - 10:01 #5
bokk  = book
Avatar billede region Nybegynder
29. juni 2001 - 10:14 #6
brugerne skal kun kigge / læse i databasen....
Avatar billede terry Ekspert
29. juni 2001 - 10:17 #7
Hi region,
I have just attempted to open a CSV file in read-only mode and wasnt allowed to as it was open in Excel...
Avatar billede terry Ekspert
29. juni 2001 - 10:20 #8
Taken from Access help

·    If it refers to a database that is already open for exclusive access by another user, an error occurs.
Avatar billede terry Ekspert
29. juni 2001 - 10:24 #9
You can copy the file just before linking to it then link to the copy instead of the original
Avatar billede region Nybegynder
29. juni 2001 - 11:48 #10
Hmm. en mulighed, MEN....

Så ville det vel skulle udføres en import funktion ved åbning af databasen, men hvadnu hvis en bruger åbner databasen og så en anden åbner den igen 5 min. efter så vil jeg importere en table der allerede er i brug...det går vel heller ikke...
Avatar billede terry Ekspert
29. juni 2001 - 12:39 #11
Region, I dont know much about your database, what its used for and so on, so I can only make some suggestions as to how you can work around the problems you are encountering. So they may not always be the optimal work around.

Normally when I make multi user databases then I have a front-end which all users have a copy of installed on their PC and the one back-end holding the actual data. The back-end could also be an SQL Server for example. The front-end links to the tables in the back-end database and it would also contain temp. work tables so each user has thier own to work with.

If I understand your problem correctly, you have one front-end which all users use and it links to a CSV file which can also be opened by another application such as Excel. I suggested that you make a copy of the CSV file and then link to this, but as you rightly say, this will give problems if you have only th eone front-end and a number of users open it. So how do we work around this???

Well you could give them their own copy of the front-end so they can import when they want, or you could make an import routine which could be carried out by one person.

Another possibility is to alter the application so that those using Excel use Access instead, and then they can export the data to Excel when they need to play around with numbers....

So there are a number of ways to do things, but there are many factors which must be concidered..

terry




Avatar billede region Nybegynder
29. juni 2001 - 13:19 #12
Du har ret i alle dine eksempler, bortset fra at der ikke er brugere der arbejder i denne csv fil med excel. csv filen bruges udelukkende til link for denne access.

Jeg kan godt følge dit eksempel med front / back end baser, men det store issue er at man ikke ved link skal sørge for at opdatere. Jeg aner ikke om man kan lave en rutine der på månedsbasis via VBA eller lign. kan lave en import. Jeg får hver måned
en lagerfil med diverse oplysninger. datoen varierer lidt på leveringen af denne csv fil men den kommer typisk omkring den første i hver måned.
kunne man lave en VBA rutine der automatisk ville importere denne fil ville linket ikke være nødvendigt.
Avatar billede terry Ekspert
29. juni 2001 - 13:36 #13
OK so the problem is that other users of your Access system are attempting to open the linked CSV file. makes things much easier!!

Make a query and hen in the query properties alter the record locks to no locks....




Avatar billede terry Ekspert
29. juni 2001 - 13:37 #14
hen = then
Avatar billede proaccess Nybegynder
29. juni 2001 - 13:53 #15
Opret følgende forespørgsel:
SELECT * FROM navnetPåDinCSVTabel;

Angiv postsættypen til at være SnapShot, og så kan alle trække på tabellen...
Avatar billede terry Ekspert
29. juni 2001 - 13:54 #16
Sorry abut that region, it doesnt seem to work afterall..
Avatar billede terry Ekspert
29. juni 2001 - 13:57 #17
Proaccess> Yes I thought that too, but I cant get it to work here!
Avatar billede proaccess Nybegynder
29. juni 2001 - 14:04 #18
SORRY, You are right, I tested it on a linked xls-file...

This approach don\'t work !!!

BUT THEN: Hvorfor ikke lænke direkte ind i Excel-regnearket ??? - så kan du bruge forespørgsels-taktikken...
Avatar billede terry Ekspert
29. juni 2001 - 14:08 #19
Seems that region receives the file as a CSV. So I think its still going to be best to import the file into a backend dB.
Avatar billede region Nybegynder
29. juni 2001 - 14:13 #20
Det er jo ikke et regneark men en csv fil ( kommasepareret fil...

Lad os lige vende den om engang... jeg har et nyt forslag som jeg kan leve med og ved kan lade sig gøre.....


når min db åbnes åbner den direkte formularen Fstart.

i denne skal jeg bare have lavet et scrip on load der gør flg. :

Form load ()
if fstart.active = true then goto end
else
docmd.transfer spreedsheet...bla bla
end if
end sum

( dette vil sikre at der importeres en table når den første udser \"hugger\" på. De efterflg vil da ikke importere data...) smart....!!!!


jeg ved bare ikke hvad scriptet skal hedde.
JEg var også ved at tale om et scedule progra,m der kørte en batchfil som igen kørte en importmacro i access på dagsbasis men det kræver vist access på den server der kører programmet og det har jeg ikke ( og får heler ikke )

Avatar billede terry Ekspert
29. juni 2001 - 14:21 #21
whats fstart.active?

Avatar billede region Nybegynder
29. juni 2001 - 14:28 #22
he he...

jeg ved ikke om der er en kommando der hedder sådan, men fstart er navnet på min formular.
Avatar billede proaccess Nybegynder
29. juni 2001 - 15:15 #23
Here we go:

Private Sub Form_Open(Cancel As Integer)
  Dim RA As Recordset
  Set RA = CurrentDb.OpenRecordset(\"Dato for CSV\")
  If Not RA.EOF Then
    If Not RA!Importeret = Date Then
      CurrentDb.Execute \"DELETE * FROM CSV\"
      DoCmd.TransferText acImportDelim, , \"CSV\", \"C:\\DOKUMENTER\\TEST.CSV\", False, \"\"
      RA.Edit
      RA!Importeret = Date
      RA.Update
    End If
  End If
  Set RA = Nothing
End Sub

Jeg har oprettet en tabel med et enkelt felt: \"Importeret\" (Langt heltal, format \"dd.mm.åååå\"), der er intet nøglefelt, og tabellen hedder \"Dato for CSV\"
Derefter opretter jeg tabellen \"CSV\", som indeholder de felter, der er i din nuværende csv-fil.
Koden checkker så om der er opdatéret i dag, hvis ikke, ja- så sker det...

PS: Du skal eventuelt oprette en importeringsspecifikation, hvis der er titelhoveder i din datafil.
Avatar billede region Nybegynder
29. juni 2001 - 15:44 #24
Hmmm. begynder at lyde særdeles interessant...

importspecifikation er ikke noget problem...MEN

JEg har oprette tabellen som du skriver \"dato for csv\". det jeg ikke forstår er :

tabellen csv som indeholder mine felter fra min oprindelige \"master\" tabel, vil jo ikke have nogle værdier...???

og hvordan får jeg smidt en dato i \"dato for CSV\" filen.??

Avatar billede region Nybegynder
29. juni 2001 - 15:51 #25
hvis jeg under format i \"dato for csv\" skriver

dd\\.mm\\.yyyy

resulterer den 30.12.1899

Lidt før min tidsregning...!!!! LOL
Avatar billede region Nybegynder
29. juni 2001 - 17:07 #26
I skal begge to nok blive belønnet for indsatsen, men en løsning ville være at foretrække...

( bare for at holde gejsten oppe....)
Avatar billede terry Ekspert
29. juni 2001 - 20:35 #27
region, the lines

  RA.Edit
  RA!Importeret = Date
  RA.Update
   
does that.

Proacces> Seems fine to me, although I havent tested it myself...
     
Avatar billede proaccess Nybegynder
29. juni 2001 - 21:15 #28
>region: du opretter \"dato for CSV\" og indsætter dato\'en for i går... eller en anden dato (30.12.1899 duer også)

Det eneste, som der sker ved koden, er at den checkker om dato\'en i tabellen er lig med dags dato, hvis den IKKE er det, importeres data, og datoen i tabellen sættes lig dags dato (hvilket udelukker flere importeringer den dag)

CSV-tabellen, skal have den \"rigtige\" struktur til de data du importerer, derefter vil den blive tømt og fyldt med data fra din CSV-fil, som jeg kaldte \"C:\\Dokumenter\\Test.csv\" i mit eksempel...
Avatar billede region Nybegynder
01. juli 2001 - 13:57 #29
Proaccess.

JEg kan ikke få dit script til at virke...
vil du ikke sende mig en lille base ( 97 )
hvor du bruger dit eksempel.

Jeg tror det er i min dato for csv det går galt.

kører jeg en trin kørsel af dit VBA script, importerer den ikke noget men hopper til end if med det samme. så har jeg prøvet at redigere lidt i dette og fået den ti at importere, men da går det galt nede i RA.edit.

nt@solar.dk
Avatar billede proaccess Nybegynder
02. juli 2001 - 07:51 #30
>region: Du skal have 1 record i din \"dato for CSV\" !!!  -  Det lyder til at du ikke har data i dato-tabellen, og at den dato, du ser er standardværdien (0), formateret som en dato...

prøv at indsætte en dato i tabellen, og hvis dette ikke virker, så fixer jeg et eksempel sammen...
Avatar billede region Nybegynder
02. juli 2001 - 08:14 #31
der går noget galt i min dato for CSV tror jeg ..

Igen, hvis jeg under format i \"dato for csv\" skriver

dd\\.mm\\.yyyy

resulterer den 30.12.1899

jeg kan ikke taste noget efterflg. for ligemeget hvad jeg taster får jeg valideringsfejl....

Avatar billede terry Ekspert
02. juli 2001 - 08:19 #32
Hi region,
You shouldnt have the . in the date, enter todays date as 02/07/2001 
Avatar billede region Nybegynder
02. juli 2001 - 08:34 #33
rettet...!!!!

men det med scriptet virker ikke endnu.,
den hopper direkte fra  :

Dim RA As Recordset
  Set RA = CurrentDb.OpenRecordset(\"Dato for CSV\")
  If Not RA.EOF Then
   
dette springes over fordi RA er EOF.

  End If
  Set RA = Nothing
End Sub

Avatar billede terry Ekspert
02. juli 2001 - 08:42 #34
It doesnt sound as though your getting an error, so its accepting the table name \"dato for CSV\". Just a commnet there though, you should try to avoid names like that, also with danish characters, they can give problems, tblDatoForCSV would be better.
And if its jumping to Set RA = Nothing its as though there are no records in the table, so try commenting out the If Not RA.EOF Then and END IF just to see what happens.

Avatar billede proaccess Nybegynder
02. juli 2001 - 08:51 #35
>region: du skal indsætte 1 record i din dato tabel...  !!!

Avatar billede proaccess Nybegynder
02. juli 2001 - 08:55 #36
Mail ER afsendt...
Avatar billede region Nybegynder
02. juli 2001 - 09:19 #37
Dit eksempel virker perfekt, og er fælles med mit men det vikede ikke ...

hvorom alting er så virker det nu, og jeg er en meget meget glad mand...

:-)))

Tak for hjælpen....
Avatar billede region Nybegynder
02. juli 2001 - 09:22 #38
nu går det igen galt med point fordelingenn...

PROACCESS = 150 point...
TERRY = 75 point....

FORHELVEDE.....

proacces :

gå ind her...

http://www.eksperten.dk/spm/86057
Avatar billede terry Ekspert
02. juli 2001 - 09:25 #39
I was just going to comment the point distribution, Proaccess deserved at least the half, if not more! If you want some back then let me know...

terry
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
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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