Avatar billede akr Nybegynder
10. april 2001 - 15:25 Der er 1 kommentar og
2 løsninger

Import af brev/mail i access

Jeg får nogel standard mail i brevform, som jeg gerne vil have importret i Acces97 - men da de jo er skrevet almindeligt bliver hver linie betragtet som en ny post, hvordan får jeg access97 til at betragte hver linie som et felt i én post (=brevet)

dvs.
-->hvert brev er en post
-->hver linie i brevet er et felt
10. april 2001 - 16:05 #1
Hej akr,

Er der det samme antal linier i hver mail? Ellers får du problemer med at lægge hver linie i hvert sit felt.

Men ellers vil jeg foreslå, at du importere brevene i én tabel, hvor du har en ekstra kolonne, som er unik for hver mail og én for hver linie.

F.eks. således:
Mail    Linienr  Tekst
----------------------------------
Brev1    1        Dette er linie 1
Brev1    2        Dette er linie 2
Brev1    3        Dette er linie 3
Brev2    1        Dette er linie 1
Brev2    2        Dette er linie 2
Brev2    3        Dette er linie 3

Derved kan du lave en krydstabulering, med følgende SQL:

TRANSFORM Min(Mails.Tekst) AS MinOfTekst
SELECT Mails.Mail
FROM Mails
GROUP BY Mails.Mail
PIVOT Mails.Linienr;

Denne forespørgsel gemmer du f.eks. under navnet \"Crosstab\"

Du laver nu en ny tilføjelses-forespørgsel, hvor du indsætter \"Crosstab\" i den endelige tabel. F.eks. sådan:

INSERT INTO EndeligTabel
SELECT Crosstab.*
FROM Crosstab;

Derved får du en tabel, med hver linie i hver sin kolonne.

Det er lidt besværligt, da man er nødt til at gøre det i flere tempi. Men jeg kan ikke se nogen anden mulighed.

/Thomas
Avatar billede moses Praktikant
11. april 2001 - 10:21 #2
Og, hvis der er varierende antal linier, så laver du bare to tabeller med følgende kolonner:


BrevTabel:
BrevID, Subject, AfsendeDato, ModtageDato, ...

BrevlinieTabel:
LinieID, BrevID, LinieNr, LinieTekst

Så har hver tekstlinie i \"BrevlinieTabel\" en henvisning til, hvilket Brev \"BrevID\" de kommer fra og hvilken placering \"LinieNr\" de har i dette brev.


Så kan du bagefter hente hvert brev, som en record med følgende SQL sætning til en query:

TRANSFORM First(BrevlinieTabel.LinieTekst) AS FirstOfLinieTekst
SELECT BrevTabel.BrevID, BrevTabel.Subject, BrevTabel.AfsendeDato, BrevTabel.ModtageDato
FROM BrevTabel LEFT JOIN BrevlinieTabel ON BrevTabel.BrevID = BrevlinieTabel.BrevID
GROUP BY BrevTabel.BrevID, BrevTabel.Subject, BrevTabel.AfsendeDato, BrevTabel.ModtageDato
PIVOT BrevlinieTabel.LinieNr;
Avatar billede akr Nybegynder
11. april 2001 - 13:37 #3
1000-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