Avatar billede uc Nybegynder
08. august 2003 - 09:45 Der er 42 kommentarer og
1 løsning

Læs første linie i en txt fil.

Hej
Jeg vil gerne kunne læse første linie i en txt fil og bruge værdierne dynamisk.
Linie kunne f. eks se sådan her ud.
sagsnavn,sagsnr,dato,   
(bella03,sx0256,20-06-03,)
Og så vil jeg gerne oprette en ny tabel med navnet sagsnr.
er det muligt uden, at det bliver for langhåret,
da jeg ikke er en ørn til access (men kan kode andet)
uc.
Avatar billede henrik13 Nybegynder
08. august 2003 - 09:49 #1
Er det værdier der er indtasted.
Avatar billede uc Nybegynder
08. august 2003 - 10:17 #2
Henrik13
Det er i den komma sep. fil
og den kunne se sådan her ud

bella03,sx0256,20-06-03,
boo,201,
bo1,210,
o.s.v.

filen er auto generet af en ande app.

UC.
Avatar billede henrik13 Nybegynder
08. august 2003 - 10:20 #3
Hvorfor koppier du så ikke de to felter sammen via en forespørgsel.
Avatar billede uc Nybegynder
08. august 2003 - 10:27 #4
Henrik13
?? mig ikke forstå.
hvad for 2 felter.?
Jeg vil bare have en tabel der hedder sx0256 ( i det her tilfælde.)

UC.
Avatar billede henrik13 Nybegynder
08. august 2003 - 10:28 #5
Rettelse det er via modul:
Debug.Print Din tabels navn!1felt & " " & Din tabels navn!2felt
Der kreves at der er dao.
Vh Henrik
Avatar billede henrik13 Nybegynder
08. august 2003 - 10:29 #6
Disse to felter duu ville havde sammensat.
bella03,sx0256,20-06-03,
boo,201,
:o)
Avatar billede mugs Novice
08. august 2003 - 10:32 #7
uc >Det er ikke noget problem at lade access oprette en tabel via en VBA-procedüre. Jeg har ikke Access på denne maskine, men kan sende dig en testdb senere.
Avatar billede henrik13 Nybegynder
08. august 2003 - 10:32 #8
Her tabel navnet indsat:
Debug.Print sx0256!1felt & " " & sx0256!2felt
Sæ skal vi bare havde indsat de 2  feltnavne.
Avatar billede henrik13 Nybegynder
08. august 2003 - 10:34 #9
Sæ = Så
Avatar billede uc Nybegynder
08. august 2003 - 10:35 #10
Henrik13
Jeg skal ikke sammensætte noget
bare oprette en tabel med navn som sagsnr.
og der efter hælder jeg de data i der ellers er i filen.

UC.
Avatar billede uc Nybegynder
08. august 2003 - 10:39 #11
mugs
Du må gerne sende noget.
send det til rune@ondata.dk
Tak.
UC.
Avatar billede henrik13 Nybegynder
08. august 2003 - 10:42 #12
>>uc
Skal du så bare havde importeret en tekst fil, der er komma seppereret.  :o)
Avatar billede uc Nybegynder
08. august 2003 - 10:47 #13
Henrik13
Jeps.
Men tabellen fil skal kopieres til skal først oprettes.

UC.
Avatar billede henrik13 Nybegynder
08. august 2003 - 10:49 #14
Så gør sådan:
gå i Filer
Externe data
Impotere
Vælg tekstfil
Avatar billede uc Nybegynder
08. august 2003 - 10:49 #15
Prøver lige igen
Henrik13
Jeps.
Men tabellen, som filen skal kopieres til, skal først oprettes.
udfra det der står i filen som sagsnr.

UC.
Avatar billede henrik13 Nybegynder
08. august 2003 - 10:51 #16
Derefter skal do vælge Komma sepereret fil, Det kommer den selv at spørger om.
Avatar billede uc Nybegynder
08. august 2003 - 10:51 #17
Henrik13
det bliver tabellen da ikke oprettet af.
filen hedder f.eks. altid data.txt.
så hvis jeg importere en fil vil tabellen døbes data.
og ikke det sagsnr, som jeg er ude efter.

uc.
Avatar billede henrik13 Nybegynder
08. august 2003 - 10:52 #18
Den bliver automatisk opretted ved importen
Avatar billede henrik13 Nybegynder
08. august 2003 - 10:53 #19
Jeg vil da godt kikke på det for dig, hvis du ville sende mig filen, min email adresse er:
oz1bua@wanadoo.dk
Avatar billede henrik13 Nybegynder
08. august 2003 - 10:55 #20
Så kan du da bare omdøbe filen.
Avatar billede henrik13 Nybegynder
08. august 2003 - 10:58 #21
Din sidste linje:
og ikke det sagsnr, som jeg er ude efter.

Vil du havde en tabel for hver sag
Avatar billede uc Nybegynder
08. august 2003 - 11:04 #22
Henrik13
Der ikke så meget hokuspokus i det.
kopier dette ind i en notepad og gem den som data.txt
prøv at importer den i access

bella03,sx0256,20-06-03,
boo,201,
b10,210,
boo,210,
boo,211,
b01,501,
boo,201,

UC.
Avatar billede uc Nybegynder
08. august 2003 - 11:07 #23
Henrik13
jeps en tabel for hver sag.

<filen hedder f.eks. altid data.txt.
så hvis jeg importere en fil vil tabellen døbes data.
den døbes ikke sagsnr, som jeg er ude efter.
>

UC.
Avatar billede henrik13 Nybegynder
08. august 2003 - 11:26 #24
>>uc
Så bliver din database meget stor.
Nu har jeg fundet fejlen i din import, der er 2 løsninger på rettelsen.
Derfor vil jeg gerne sende dig de 2 tabeller, så du selv kan se hvad du ønsker.
Skriv lige om du kører access 97, 2000 eller xp.
Avatar billede uc Nybegynder
08. august 2003 - 11:42 #25
Henrik13
jeg har 2000.

Stor base.?
hvis jeg ligger dem i i samme tabel (alle sager)
vil der jo også blive en lang søgetid da der kan være mange dubletter til
hver sag (de bliver summeret i en rapport)

UC.
Avatar billede henrik13 Nybegynder
08. august 2003 - 11:45 #26
Det er din egen afgørelse, Jeg sender mdb til dig Det er data og data1 der skal afgøres hvad du vil havde.
Avatar billede uc Nybegynder
08. august 2003 - 12:18 #27
Henrik13
Tak for basen.
Ret skal se ud som data1
men tabellen komme da ikke til at hedde sx0256
den hedder da data.? i din base.?

UC.
Avatar billede uc Nybegynder
08. august 2003 - 12:19 #28
Ret = den
Avatar billede henrik13 Nybegynder
08. august 2003 - 12:29 #29
Ok
Inden importen skal du gå i notespad og erstatte alle kommaer med et semikolon. Derefter tryk på gem. Så koppier du sx0256 eller det næste nummer til hukommelsen.
Så importere du den:
Gå i Filer
Gå i Externe data
Gå i Impotere
Vælg tekstfil
Velg semikolon sepereret fil
Når du kommer til sidste rude hvor den foreslår data som filnavn, så slet det og indsæt det i din hukommelse (CTRL + V).
Vh Henrik13
Avatar billede uc Nybegynder
08. august 2003 - 12:44 #30
Henrik13
Jeps. men men.
som jeg skrev i mit indlæg så vil jeg gerne
>bruge værdierne dynamisk<
det vil sige, at det skulle kunne ske ved et truk på en knap.
1. man trukker på knappen.
2. læser det første linine i filer og finder udaf hvad tabellen skal hedde.
3. tabellen bliver oprettet.
4. indlæser resten af filen.

uc.
Avatar billede phester Nybegynder
08. august 2003 - 13:19 #31
Her er lidt kode der læse den første linie og opretter en tabel med det som navn. Jeg har bare lavet en form med en knap på og lag koden på knappens event.


Private Sub Kommandoknap0_Click()

    Const ForReading = 1, ForWriting = 2, ForAppending = 3
   
    Dim dbs As Database
    Dim tdfNew As TableDef
    Dim prpLoop As Property
    Dim tmpstr As String
    Dim fs, f
    Dim pos As Integer
    Dim strArray(2) As String
    Dim test As String
   
       
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set f = fs.OpenTextFile("c:\access.txt", ForReading, TristateFalse)
   
    tmpstr = f.readline
   
    startpos = InStr(1, tmpstr, ",", vbTextCompare)
    endpos = InStr(startpos + 1, tmpstr, ",", vbTextCompare)
   
    test = Mid(tmpstr, startpos + 1, endpos - startpos - 1)
   
    Set dbs = CurrentDb

    ' Create a new TableDef object.
    Set tdfNew = dbs.CreateTableDef(test)

    With tdfNew
        ' Create fields and append them to the new TableDef
        ' object. This must be done before appending the
        ' TableDef object to the TableDefs collection of the
        ' Northwind database.
        .Fields.Append .CreateField("FirstName", dbText)
        .Fields.Append .CreateField("LastName", dbText)
        .Fields.Append .CreateField("Phone", dbText)
        .Fields.Append .CreateField("Notes", dbMemo)
       
        'For Each prpLoop In .Properties
        '    On Error Resume Next
        '    If prpLoop <> "" Then Debug.Print "  " & _
        '      prpLoop.Name & " = " & prpLoop
        '    On Error GoTo 0
        'Next prpLoop

        ' Append the new TableDef object to the Northwind
        ' database.
        dbs.TableDefs.Append tdfNew

        Debug.Print "Properties of new TableDef object " & _
            "after appending to collection:"

        ' Enumerate Properties collection of new TableDef
        ' object.
        'For Each prpLoop In .Properties
        '    On Error Resume Next
        '    If prpLoop <> "" Then Debug.Print "  " & _
        '      prpLoop.Name & " = " & prpLoop
        '    On Error GoTo 0
        'Next prpLoop

    End With

End Sub
Avatar billede mugs Novice
08. august 2003 - 13:26 #32
Eksempel er tidligere sendt med forskellige forslag til tabel- og feltoprettelse.
Avatar billede phester Nybegynder
08. august 2003 - 13:30 #33
Hvorfor er spørgsmålet så åbent ??
Avatar billede mugs Novice
08. august 2003 - 13:34 #34
Fordi spørgeren ikke har accepteret nogen af svarene. Mit eksempel går kun på tabeloprettelse, medens dit svar både går på læaning af tekstfilen og tabeloprettelse. Man behøver jo ikke at scceptere det første svar, der kan jo komme andre og bedre svar.
Avatar billede phester Nybegynder
08. august 2003 - 13:37 #35
Hehehehe højdt sandsynligt jeg misfostod vis bare din første kommentar. Jeg troede han havde mere eller mindre havde accpteret det...Ligegyldigt. Forsat god og Helveds varm dag.
Avatar billede mugs Novice
08. august 2003 - 13:40 #36
Normalt plejer jeg at sende en kommentar, når jeg har sendt et eksempel, men kom først i tanke om det, da jeg så dit indlæg.

Varm dag! Er kørt hjem fra arbejde, og sidder nu på terrassen. Det er ligeså varmt men langt behageligere. god weekend :o)
Avatar billede uc Nybegynder
08. august 2003 - 13:49 #37
mugs og phhester
tak for jeres forslag.
jeg skal lige kigge koden igennem først.
så vender jeg tilbage.
Men først skal jeg finde mine badevinger og en pool.
for her er sq varmt.

UC.
Avatar billede terry Ekspert
09. august 2003 - 14:28 #38
I havent read all comments so I may be making th esame suggestions as others but what is wrong with just importing the text file into a new table?
Avatar billede uc Nybegynder
12. august 2003 - 09:27 #39
Phester
Jeg går udfra at din kode virker, men jeg kan ikke få det til, at spille
jeg får en compiler error
user-deined type not defined.
på Database og TabelDef.

Er det ikke noget man skal definere et eller andet sted..???

UC.
Avatar billede mugs Novice
12. august 2003 - 13:12 #40
uc > Kontroller dine referencer. Åbn et kodemodul Funktioner > Referencer (Tools > References) og kontroller, at der ikke står MISSING ud for nogle referencer. Du mangler sandsynligvis een til Word. Sørg for at der er et checkmærke i boksen i venstre side.
Avatar billede phester Nybegynder
12. august 2003 - 14:18 #41
Du skal slå ADO til under tool og references for at få adgang til de objekter som database og tabeldef.

Den hedder Microsoft DAO 3.6 Object library helt nøjagtig
Avatar billede uc Nybegynder
12. august 2003 - 22:09 #42
Tak mugs og phester..nu spiller det bare.
Det var en reference der manglede.

Men det var phester's kode jeg skulle bruge, så points til dig. og Tak for kampen.GG

Jeg har nogle andre problemer med automatisk return...
med det kommer i et nyt ?, hvis i er ude efter flere gode points.GG

UC :-)
Avatar billede mugs Novice
12. august 2003 - 22:19 #43
uc > Det ser vi da frem til!
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