Avatar billede deicer Nybegynder
07. januar 2008 - 20:48 Der er 9 kommentarer og
1 løsning

Dechifrering af filer (ind i Access)

Hej

Jeg har en fil hvor der er flere forskellige data. F.eks

FIL A:

Faktura nr 1
Navn 1: Andersen
Navn 2: Hansen
** Indestående **
Andersen kr 100
Hansen kr 100
** Bytning af kroner **
Andersen giver kr 50 til Hansen
Hansen acceptere
** Ny saldo **
Andersen har kr 50
Hansen har kr 150

Fil B
Faktura nr 2
Navn 1: Andersen
Navn 2: Hansen
** Indestående **
Andersen kr 50
Hansen kr 150
** Bytning af kroner **
Andersen giver kr 50 til Hansen
Hansen acceptere
** Ny saldo **
Andersen har kr 0
Hansen har kr 200

Disse filer vil jeg gerne have lagt ind i en Access databse, men hvordan?

Jf. Access kan jeg "kun" autoimportere komma seprerat filer, men hvordan får jeg disse data automatisk ind i en tabel som hedder:

Faktura  Navn    Indestående    Bytning af kroner    Ny saldo
1        Andersen 100            -50                    50 
1        Hansen  100            +50                  150
2        Andersen  50            -50                    0
2        Hansen  150            +50                  200
osv osv

Findes der et script eller program som kan gøre dette for mig automatisk?

På forhånd tak for hurtigt svar.
Avatar billede terry Ekspert
08. januar 2008 - 08:43 #1
Because the layout of th efile follows no standard it would require special programming (as far as I can make out) which would very likely take a number of hours work before its running correctly.
Avatar billede terry Ekspert
08. januar 2008 - 08:46 #2
You also say "Jeg har en fil..." but actually you show two files, maybe there are others, and maybe the layout isnat exactly the same (number of lines may differ?)
Avatar billede terry Ekspert
08. januar 2008 - 08:48 #3
If there was only these two files it would be faster just entering them manually
Avatar billede Slettet bruger
08. januar 2008 - 08:56 #4
Du er nød til at hente det ind i en temptabel med 1 kolonne, som er et tekstfelt og så klare resten i vba...

Jeg prøver lige!~)
Avatar billede Slettet bruger
08. januar 2008 - 09:11 #5
Det er ligesom tv-køkkenet, jeg har snydt og lavet lidt i derhjemmefra!~)

Hvis du laver en autoimport, hvor du rykker det hele ind i en temp tabel med et felt:

TempTabel:
Tekstfelt

og så har din slut tabel:

DinNyTabel:
Fakture
Navn
Indestaaende
BytningAfKroner
NySaldo

Så vil flytning kunne gøres således!~)

Private Sub RunVBA_Click()
Dim db As DAO.Database
Dim r As DAO.Recordset
Set db = CurrentDb()
Set r = db.OpenRecordset("TempTabel")
Dim a As Long, b As String, c As String, d As Double, e As Double, f As Double, g As Double
Dim rSQL As String
With r
.MoveFirst
a = Mid(!tekstfelt, 12) 'Fakturenr
.MoveNext
b = Mid(!tekstfelt, 9) 'Navn1
.MoveNext
c = Mid(!tekstfelt, 9) 'Navn2
.MoveNext
.MoveNext
d = Mid(!tekstfelt, (Len(b) + 5)) 'Saldo1
.MoveNext
e = Mid(!tekstfelt, (Len(c) + 5)) 'Saldo2
.MoveNext
.MoveNext
.MoveNext
.MoveNext
.MoveNext
f = Mid(!tekstfelt, (Len(b) + 9)) 'NySaldo1
.MoveNext
g = Mid(!tekstfelt, (Len(c) + 9)) 'Nysaldo2
.Close
End With
DoCmd.SetWarnings False
rSQL = "INSERT INTO DinNyTabel ( Fakture, Navn, Indestaaende, BytningAfKroner, NySaldo ) SELECT " & a & ", '" & b & "', " & d & ", " & (f - d) & ", " & f & ";"
DoCmd.RunSQL rSQL
rSQL = "INSERT INTO DinNyTabel ( Fakture, Navn, Indestaaende, BytningAfKroner, NySaldo ) SELECT " & a & ", '" & c & "', " & e & ", " & (g - e) & ", " & g & ";"
DoCmd.RunSQL rSQL
rSQL = "DELETE TempTabel.* FROM TempTabel;"
DoCmd.RunSQL rSQL
DoCmd.SetWarnings True
End Sub
Avatar billede deicer Nybegynder
08. januar 2008 - 14:03 #6
Hej

Tak for jeres svar. Jeg er dog ikke den hurtigste knallert på havnen, så jeg har behov for lidt mere hjælp ;-)


1) Hvad mener du med "rykker det hele ind i en temp tabel med et felt" ?
2) Hvordan aktivere jeg koden? Via en batch fil?

Endnu engang tak for svaret.
Avatar billede Slettet bruger
08. januar 2008 - 14:15 #7
Ikke den hurtigste knallert på havnen!~)

Du kan f.eks. lave en knap, som først importerer en fil og så kører koden....

Importen kommer lidt an på antallet af filer, hvordan de navngives osv.. Koden er lavet, så at hvis du får importeret en fil ind i en tabel, som du kalder TempTabel i et tekstfelt, som jeg har kaldt Tekstfelt (meget opfindsomt!~) så kan du køre koden. I dette eksempel har jeg har jeg brugt en knap kaldt RunVBA til at køre koden, du kan se eksemplet her:

www.spgprogramming.com/access/Eksperten/spm813472.mdb

Husk at se indholdet af tabellen TempTabel inden du trykker på knappen!~)
Avatar billede Slettet bruger
08. januar 2008 - 14:40 #8
Hvis du så har en tekstfil eller lign. så burde du kunne gå i access og vælge filer/hent eksterne data/importer
Vælg filformat find fil
og så
Fast bredde
Avanceret
Slet alle felter pånær felt1
Sæt bredden så alle data kommer med
Feltnavn skriv Tekstfelt iflg. mit eksempel
Gem Som
Et eller andet importspecifikation
OK
og så Annuller

Herefter kan du f.eks. lave en knap og ligge flg. kode:

DoCmd.TransferText acImportFixed, "Et eller andet importspecifikation", "TempTabel", "Sti til filen", False
Avatar billede Slettet bruger
08. januar 2008 - 14:41 #9
Held og lykke!~)
Avatar billede deicer Nybegynder
08. januar 2008 - 14:51 #10
Bingo, Hr. spg.

Tak for hjælpen
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