Avatar billede reimar Nybegynder
22. august 2001 - 21:56 Der er 9 kommentarer og
1 løsning

Importere når record er på 5 linjer

Jeg har en txt-fil med ca 1000 records
so jeg gjerne skal importere i MS Access.

Hvert record består av 4 fields (firma,
person, gateadresse, postnr) på hver sin
linje nedover, og deretter en tom linje,
før neste record begynner.

Eksempel:

Coca Cola
Hans Olsen
Tuborgvej 12
5555 Lilleby

Pepsi
Niels Nielsen
Melkevejen 5
6666 Storeby

osv.

Problem: Import-wizarden i MS Access har
en funksjon for å importere txt-fil, men
den forventer at hver linje er en ny record.
Hvordan løser man dette? Noen som har et
lite script liggende som kan lese min txt-fil
og genere en ny fil som Access synes om
(f.eks:
\"Coca Cola\",\"Hans Olsen\",\"Tuborgvej 12\",\"5555 Lilleby\";
\"Pepsi\",\"Niels Nielsen\",\"Melkevejen 5\",\"6666 Storeby\";
Avatar billede jiggypoof Nybegynder
22. august 2001 - 22:20 #1
Jeg kan godt strikke det sammen for dig...send mig lige filen på  icq 127803764 så har du den efter 5 min
Avatar billede proaccess Nybegynder
23. august 2001 - 08:13 #2
Du kan få ændret din fil ved at køre følgende:

Option Compare Database
Option Explicit

Public Function impTextfile(strFile As String)
  Dim strInput As String, strConc As String, i As Integer
  Open strFile For Input As #1
  Open Left(strFile, Len(strFile) - 3) & \"tmp\" For Output As #2
  While Not EOF(1)
    Input #1, strInput
    i = i + 1
    Select Case i
      Case 1
        strConc = Chr$(34) & strInput & Chr$(34)
      Case 2 To 4
        strConc = strConc & \",\" & Chr$(34) & strInput & Chr$(34)
      Case 5
        Print #2, strConc
        i = 0
      Case Else
    End Select
  Wend
  Close
  Kill strFile
  Name Left(strFile, Len(strFile) - 3) & \"tmp\" As strFile
End Function

Public Function test()
  impTextfile \"C:\\dokumenter\\adresser.txt\"
End Function
Avatar billede proaccess Nybegynder
27. august 2001 - 07:48 #3
Fik du konverteret din fil ???
Avatar billede reimar Nybegynder
27. august 2001 - 11:25 #4
Hei Proaccess.
Jeg er en \"vanlig\" PCbruker uten særlige
programmeringskunnskaper. Hva slags
språk har du skrevet dette scriptet i?
Hvordan får jeg laget et kjørbart script
av det?
Avatar billede proaccess Nybegynder
27. august 2001 - 11:33 #5
Det er lavet i MS Access. Det er VBA (Visual Basic for Applications).

Du åbner din Access database, og opretter et nyt Modul, hvor du da laver en \"Cut and Paste\" af min kode. Derefter gemmer du modulet (Navn: Modul1).

Du kan da køre funktion impTextfile \"xxx\", hvor xxx er stien til din aktuelle fil, som skal konverteres... Herefter kan filen importeres på vanlig vis.

/ProAccess
Avatar billede reimar Nybegynder
27. august 2001 - 12:47 #6
Flott, det virker!

Hvordan skal koden se ut hvis det er to blanke
linjer etter hver record i input filen i
stedet for en?
Avatar billede proaccess Nybegynder
27. august 2001 - 12:50 #7
Da laver du \"Case 5\" om til \"Case 5 To 6\"
Avatar billede reimar Nybegynder
27. august 2001 - 13:01 #8
Det hjelper ikke.
Avatar billede proaccess Nybegynder
27. august 2001 - 13:11 #9
SORRY - MY MISTAKE !!!

Du skal ændre \"Case 5\" til \"Case 6\"
Derved laver den intet ved den 5. linie, men skriver ved den 6.
Avatar billede reimar Nybegynder
27. august 2001 - 13:19 #10
Ok, fant ut av det selv nå. Jeg måtte lage en egen tom Case 5:

      Case 5
      Case 6
        Print #2, strConc
        i = 0

Takk for hjelpen, Proaccess. Poengene er overført
og diskusjonen lukket.
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