I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Jeg vil anbefale at du først importerer data fra ascii filen til excel. I Excel laver du så dine ændringer..... og så importerer du fra Access excel filen...
Kunne du ikke lave et lille program der indlæser asciifilen i en access DB ?
Jeg har et importprogram der bl.a. kan indlæse tekstfiler (kommaseparerede) i en access DB, og det opretter en tabel med felter afhængig af hhv. feltnavn, type og længde i første record af filen. Øvrige linier i filen er hver en record i DB\'en og de enkelte værdier er adskilt af et komma.
Men, du fortæller ikke noget om hvordan dine data ser ud i ascii filen, kun hvordan det kommer til at se ud i tabellen efter importen (hvis jeg har forstået det korrekt). Kunne du ikke vise et par linier eller 3 fra asciifilen ?
Har du mulighed for at smide det gennem en SQL Server ?? (BCP - commandline util og DTS - gui, kan begge klare det...) Ellers har du muligheden for at lave en ny tabel i din database med de felter du skal bruge i den korrekte rækkefølge og køre noget i stil med: SELECT Bognr, Feltkode, Feltkodeværdi INTO DinNyeTabel FROM DinGamleTabel (jeg er ikke sikker på om det også virker i Access) og muligheden for at lave det i VBA kan jeg ikke hjælpe med... Ellers må det næsten kunne lade sig gøre at lave en: INSERT INTO DinNyeTabel VALUES(SELECT Bognr, Feltkode, Feltkodeværdi FROM DinGamleTabel) Du skal så selvfølgelig blot sørge for at alle andre felter accepterer Null værdier.
Sub Import() Open \"c:\\MinInputFil.txt\" For Input As #1 Open \"c:\\MinOutputFil.txt\" For Output As #2
Dim i, BogNr, Titel, UdgAar, Forfatter, UdgSted As String Dim BogNrOffset, FeltkodeOffset, DataOffset As Integer BogNrOffset = 1 FeltkodeOffset = 8 DataOffset = 19
While Not EOF(1) Line Input #1, i BogNr = Mid(i, BogNrOffset, 5) Titel = Mid(i, DataOffset) Line Input #1, i UdgAar = Mid(i, DataOffset) Line Input #1, i Forfatter = Mid(i, DataOffset) Line Input #1, i UdgSted = Mid(i, DataOffset) Print #2, BogNr + \" \" + Titel + \" \" + UdgAar + \" \" + Forfatter + \" \" + UdgSted Wend Close #1 Close #2 End Sub
Du skal selv sætte offset på dine data + navngive input og outputfilnavne
Jeg vil anbefale dig BCP eller DTS... DTS (Data Transformation Services) er som nævnt grafisk (wizard)...(står som \"import and export data\" i start menuen... Det vil være nærmest umuligt at gennemgå hvordan DTS skal bruges her, men kort fortalt, start DTS, vælg din source (textfile), opsætning, vælg destination (textfile) og på næste billede vil du så have en knap med teksten \"Transform\", hvor du kan ændre de ting der skal rettes...
BCP kræver vist at du først importerer data til SQL Serveren, herefter ekspoerterer igen med BCP, laver dine rettelser og impoterer for endelig at eksporte dine data til en \"normal\" tekstfil igen... Hvis du benytter BCP, skal du i den tekstfil BCP laver gå ind og redigere i de første linier med feltnavnene osv. eks. 7.0 3 1 SQLCHAR 0 10 \" \" 1 FName 2 SQLCHAR 0 40 \" \" 2 LName 3 SQLCHAR 0 120 \" \" 3 Address
Hvis du så vil ændre rækkefølgen af dine felter skal du rette det sidste tal... så hvis du vil bytte rundt på FName og LName skal det se sådan ud: 1 SQLCHAR 0 10 \" \" 2 FName 2 SQLCHAR 0 40 \" \" 1 LName 3 SQLCHAR 0 120 \" \" 3 Address
Hvis du vil tilføje: 7.0 4 1 SQLCHAR 0 10 \" \" 1 FName 2 SQLCHAR 0 40 \" \" 2 LName 3 SQLCHAR 0 120 \" \" 3 Address 4 SQLCHAR 0 30 \" \" 4 Country
Og hvis du vil fjerne et felt sætter du det bare til 0, eg: 7.0 4 1 SQLCHAR 0 10 \" \" 1 FName 2 SQLCHAR 0 40 \" \" 2 LName 3 SQLCHAR 0 120 \" \" 3 Address 4 SQLCHAR 0 30 \" \" 0 Country
BCP kræver vist at du først importerer data til SQL Serveren, herefter ekspoerterer igen med BCP, laver dine rettelser og impoterer for endelig at eksporte dine data til en \"normal\" tekstfil igen... Hvis du benytter BCP, skal du i den tekstfil BCP laver gå ind og redigere i de første linier med feltnavnene osv. eks. 7.0 3 1 SQLCHAR 0 10 \" \" 1 FName 2 SQLCHAR 0 40 \" \" 2 LName 3 SQLCHAR 0 120 \" \" 3 Address
Hvis du så vil ændre rækkefølgen af dine felter skal du rette det sidste tal... så hvis du vil bytte rundt på FName og LName skal det se sådan ud: 1 SQLCHAR 0 10 \" \" 2 FName 2 SQLCHAR 0 40 \" \" 1 LName 3 SQLCHAR 0 120 \" \" 3 Address
Hvis du vil tilføje: 7.0 4 1 SQLCHAR 0 10 \" \" 1 FName 2 SQLCHAR 0 40 \" \" 2 LName 3 SQLCHAR 0 120 \" \" 3 Address 4 SQLCHAR 0 30 \" \" 4 Country
Og hvis du vil fjerne et felt sætter du det bare til 0, eg: 7.0 4 1 SQLCHAR 0 10 \" \" 1 FName 2 SQLCHAR 0 40 \" \" 2 LName 3 SQLCHAR 0 120 \" \" 3 Address 4 SQLCHAR 0 30 \" \" 0 Country
Jeg er ikke helt sikker på at jeg er klar over hvad du vil... Du bliver spurgt om en row delimiter (post afgrænsing) og en column delimiter (kolonne afgrænsning)...
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.