Avatar billede dth Nybegynder
11. august 2005 - 09:21 Der er 21 kommentarer og
1 løsning

Splitning af felt i tabel

Hejsa

Jeg sidder med en tabel hvori jeg har et felt der angiver et ugedagsmønster, fx. "MaOnFr".
Nu vil jeg så gerne have en forespørgsel som trækker ovennævnte post ud i tre nye poster, en pr. dag i ugedagsmønsteret, sådan at jeg får en post på ugedagen Mandag, Onsdag og Fredag.
Jeg har overvejet meget hvordan, men kan simpelthen ikke greje den.

Nogen forslag?

MVH
DTH
Avatar billede madschristensen Nybegynder
11. august 2005 - 09:40 #1
Er det altid tre dage ? Alternativt - er det altid 2 karakterer på dag? Må det være i vba?
Avatar billede dth Nybegynder
11. august 2005 - 09:44 #2
Pt. ligger der kun poster med 1 og 2 dage, men der vil også kunne forekomme poster med flere
Avatar billede madschristensen Nybegynder
11. august 2005 - 09:55 #3
Altså her har jeg feltet kildefelt - som indeholder ugedagsmønsteret. Hertil 6 felter navngivet dag1-dag6.

Dim fl As Long, AntFelter As Long
kildefelt.SetFocus
If Not IsNull(kildefelt) Then
    fl = Len(kildefelt)
End If
AntFelter = fl / 2

If Not AntFelter = 0 Then
Select Case AntFelter
    Case 1
        'Kun 1 dag
        dag1 = kildefelt.Text
    Case 2
        '2 dage
        dag1 = Mid(kildefelt.Text, 1, 2)
        dag2 = Mid(kildefelt.Text, 3, 2)
    Case 3
        '3dage
        dag1 = Mid(kildefelt.Text, 1, 2)
        dag2 = Mid(kildefelt.Text, 3, 2)
        dag3 = Mid(kildefelt.Text, 5, 2)
    Case 4
        dag1 = Mid(kildefelt.Text, 1, 2)
        dag2 = Mid(kildefelt.Text, 3, 2)
        dag3 = Mid(kildefelt.Text, 5, 2)
        dag4 = Mid(kildefelt.Text, 7, 2)
    Case 5
        dag1 = Mid(kildefelt.Text, 1, 2)
        dag2 = Mid(kildefelt.Text, 3, 2)
        dag3 = Mid(kildefelt.Text, 5, 2)
        dag4 = Mid(kildefelt.Text, 7, 2)
        dag5 = Mid(kildefelt.Text, 9, 2)
    Case 6
        dag1 = Mid(kildefelt.Text, 1, 2)
        dag2 = Mid(kildefelt.Text, 3, 2)
        dag3 = Mid(kildefelt.Text, 5, 2)
        dag4 = Mid(kildefelt.Text, 7, 2)
        dag5 = Mid(kildefelt.Text, 9, 2)
        dag6 = Mid(kildefelt.Text, 11, 2)
    Case Else
        'Fejl
    End Select
End If
Avatar billede dth Nybegynder
11. august 2005 - 10:00 #4
Hvordan får jeg du i en forespørgsel?
Avatar billede dth Nybegynder
11. august 2005 - 10:53 #5
du=det ;-)

Jeg bør måske også lige sige at den naturligvis skal gøre det for samtlige poster i tabellen.
Avatar billede madschristensen Nybegynder
11. august 2005 - 10:55 #6
Det var derfor jeg spurgte om det måtte være i vba!....
Avatar billede madschristensen Nybegynder
11. august 2005 - 10:56 #7
Problemet er, at du har et vilkårligt antal ugedage. Er det noget du vil opdaterer een gang for alle - eller er det hvergang forespørgslen skal køre ?
Avatar billede dth Nybegynder
11. august 2005 - 10:57 #8
Hver gang helst, da der sker ændringer hele tiden
Avatar billede madschristensen Nybegynder
11. august 2005 - 11:00 #9
Ok - den her tager udgangspunkt i feltet Test:

SELECT Tabel1.test, Mid([test],1,2) AS Dag1, Mid([test],3,2) AS Dag2, Mid([test],5,2) AS Dag3
FROM Tabel1;

Hvis ikke der er data til dag2 returnerer den blank.
Avatar billede dth Nybegynder
11. august 2005 - 11:39 #10
Nu har jeg så fået en forespørgsel med Dag1, Dag2 og Dag3 hvordan kan jeg så få den til at lave en post pr. ugedag??
Avatar billede madschristensen Nybegynder
11. august 2005 - 11:41 #11
Når du siger pr. ugedag - skal den så kun finde alle dem med eks. Mandag eller ?
Avatar billede madschristensen Nybegynder
11. august 2005 - 11:44 #12
Finder dem med Mandag:
SELECT * FROM table
WHERE mid([test],1,2)="Ma"
    OR mid([test],3,2)="Ma"
    OR mid([test],5,2)="Ma"
;
Avatar billede dth Nybegynder
11. august 2005 - 12:14 #13
Ikke nødvendigvis, det jeg skal have den til nu er først at lave en række poster ud fra dag1, når det er gjort skal den trække de poster der har en værdi i dag2 osv. dvs. jeg skal have en forespørgsel med flere sql-sætninger eller sådan noget. Forstår du hvad jeg mener??
Avatar billede madschristensen Nybegynder
11. august 2005 - 12:16 #14
Nej ikke helt ??
Avatar billede madschristensen Nybegynder
11. august 2005 - 12:21 #15
Hvis dine kilde data er:
MaTiTo
Ma
TiOnLø
OnFr

hvordan skal resultatet så se ud ? Og kan der godt være LøMa - eller er det kronologisk inden for en uge ?
Avatar billede dth Nybegynder
11. august 2005 - 12:21 #16
Vi har en tabel med nogle data:
ID  Tekst  Ugedagsmønster
1  Tekst1  MaTi
2  Tekst2  OnFr
3  Tekst3  To

Det er bare et eksempel
Det jeg så gerne vil have ud er forespørgsel som sådan
ID  Tekst    Ugedag
1  Tekst1  Ma
1  Tekst1  Ti
2  Tekst2  On
2  Tekst2  Fr
3  Tekst3  To

Var det bedre??
Avatar billede dth Nybegynder
11. august 2005 - 12:22 #17
Det vil aldrig forekomme med LøMa, den vil så hedde MaLø
Avatar billede madschristensen Nybegynder
11. august 2005 - 12:23 #18
Ja - det var det ;O))) vent - slut....
Avatar billede madschristensen Nybegynder
11. august 2005 - 14:08 #19
Det kan løses med flere tabeller - jeg har bare ikke tid til at teste det lige nu. ;O(
Avatar billede madschristensen Nybegynder
16. august 2005 - 12:18 #20
Nahh - den er ikke lige så nem at løse - uden en hjælpetabel. Problemet er flere "poster" pr post. Hvis du laver en tabel også løber hver enkelt igennem - hvor mange dage er der - og så opretter en post for hver dag. Herefter kan du spørge ganske alm. på denne tabel. Kan du følge mig ?
Avatar billede dth Nybegynder
16. august 2005 - 15:37 #21
Sagtens, det er også sådan det kører lige nu, ville bare gerne have lavet det om, i dag kører jeg 1 oprettelsesforespørgsel der udpiller Mandag og tilføjer dem til en ny tabel, hvorefter jeg kører 6 tilføjelsesforespørgsler som tilføjer de øvrige ugedage.

Kan du så give mig en forklaring på hvordan man undertrykker de der meddelelser om at du nu er ved at køre en forespørgsel som ændrer på dataene i en tabel?? (Vi kører office 2003)
Avatar billede madschristensen Nybegynder
19. august 2005 - 14:55 #22
docmd.setwarnings false

Husk dog at sætte den tilbage igen med
docmd.setwarnings true
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