Avatar billede gylling Juniormester
12. januar 2006 - 18:17 Der er 7 kommentarer og
1 løsning

Lave flere excel fil om til en

Jeg har nogle bruger der der har sammekædet et excel regnark med deres access database og det virker også godt nok. Men nu er de begyndt at få excel filen med forskelligt navn på i stedet få at det har haft samme navn. Hvordan kan jeg få få lavet det sådanne at jeg altid samkæde den nyest fil. HJÆLP
Avatar billede fynbohans Nybegynder
12. januar 2006 - 19:57 #1
Kan der tænkes andre komplikationer; fx at der er andre excel-filer i den pågældende mappe?
Hvis der ikke er det kan du hente alle excel-filnavnene ind i Access,
anbringe navn og tid i 2 felter i en tabel og lave en forespørgsel med  totaler/maximum for tid og du har den nyeste fil.
Avatar billede gylling Juniormester
12. januar 2006 - 20:44 #2
der er ikke andre excel-filer i mappen. Og hvordan
Avatar billede jensen363 Forsker
13. januar 2006 - 08:28 #3
Jeg benytter mig af en funktion som først indlæser excel-filnavnet i en tabel, og derefter benytter denne tabel som identifikator for filimporten
Avatar billede fdata Forsker
13. januar 2006 - 18:43 #4
Du får lige den komplette løsning her. Paste nedenstående ind i et modul, ret stien og tabelnavnet, så burde det spille. (Kør Test rutinen)

Option Compare Database
Option Explicit



Function FindNyesteFil() As String
  Const Mappen = "C:\Temp\"
  Dim d
  Dim NyesteFilnavn As String
  Dim NyesteDato As Date
 
  NyesteFilnavn = ""
  NyesteDato = #12/24/2000#
 
  d = Dir(Mappen & "*.xls")
  If d = "" Then
    FindNyesteFil = "???"
    Exit Function
  End If
  Do
    If FileDateTime(Mappen & d) > NyesteDato Then
      NyesteFilnavn = d
      NyesteDato = FileDateTime(Mappen & d)
    End If
    d = Dir
  Loop Until d = ""
 
  FindNyesteFil = Mappen & NyesteFilnavn
End Function

Sub SletTabel(Tn As String)
  On Error Resume Next
  CurrentDb.TableDefs.Delete Tn
  On Error GoTo 0
End Sub

Sub OpretExcelLink(Filnavn As String, TabelNavn As String, Arknavn As String)
  Dim Tdf As TableDef
 
  SletTabel (TabelNavn)
  Set Tdf = CurrentDb.CreateTableDef(TabelNavn)
  With Tdf
    .SourceTableName = Arknavn & "$"
    .Connect = "Excel 5.0;HDR=YES;IMEX=2;DATABASE=" & Filnavn
  End With
  CurrentDb.TableDefs.Append Tdf
  Set Tdf = Nothing
End Sub

Private Sub Test()
  Const MinTabel = "MineData"
  Dim F As String
 
  F = FindNyesteFil
  Call OpretExcelLink(F, MinTabel, "Ark1")
 
  MsgBox F & " er nu linket via tabellen " & MinTabel
End Sub
Avatar billede gylling Juniormester
13. januar 2006 - 21:10 #5
> jeg har rette C:\Temp\ til den rigtige sti og rette (TabelNavn) til nyt tabel navn men jeg få en fejl ved tabel navn skal der sættes komma nogen steder
Avatar billede fdata Forsker
14. januar 2006 - 00:18 #6
Ovenstående kode kører fint her.
- Har du husket "\" i slutningen af stien?
- Har du tilrettet arknavnet? (hvis ikke det hedder Ark1)
- Tabelnavnet retter du ved
    Const MinTabel = "MineData"
  Tabellen er ikke en "rigtig" tabel; men et link til Excel filen.
  Bemærk, at den slettes og oprettes påny. Det sikrer et korrekt link.
- Hvilken fejlmeddelelse får du i øvrigt?
Avatar billede gylling Juniormester
14. januar 2006 - 01:15 #7
>> Tusind tak for hjælpen fdata det virker perfekt du har fortjent point
Avatar billede fdata Forsker
14. januar 2006 - 20:17 #8
Jeg konkluderer, at du fandt fejlen. Super.
Tak for point.
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