Jeg har lavet en pjecedatabase. Pjecerne sidder i en rækkefølge i en mappe. Jeg har lavet et felt med rækkefølgenr. Kan jeg få feltet til automatisk at tælle op eller ned hvis der puttes en pjece ind eller tages en ud? Således at man hele tiden har den rigtige rækkefølge.
Ja det kna du sikkert godt. Det er lidt svaert at give specifik information uden at vide hvordan din db er struktureret, men du kan f.eks bruge en update query. Hvis du f.eks indsaetter en nye pjece nr 5, saa skal alle pjecer med raekkeflg nr 5 og over haeves med en. Det goer du ved at koere en update query
UPDATE [PjeceTabel] SET raekkeflg = raekkeflg +1 WHERE raekkeflg <=5;
Hvilket felt? Er det i en formular eller en tabel?
Problemet er primaert at det daekker over mere end en opgave:
1) Ligger det nye raekkefoelge oveni et eksisterende nummer? (altsaa bliver der indsaet en ny pjece i en eksisterende raekkefoelge) 2) Hvis jeg fjerner en post skal alle stoerre numre i raekkefoelgen reduceres med 1. 3) Hvis jeg ligger en nye pjece ind som den sidste i raekkefoelgen skal der ikke aendres noget.
Saa rent konditionelt kan du haandtere opgaver 1 & 3 paa samme tid.
Men hvordan kommer du frem til raekkefoelgenummeret til at starte med? Er det rent manuelt eller er det baseret paa noget bestemt?
Rækkefølgenummeret taster jeg manuelt ind. Det er i en formular og felter kommer fra en tabel med en slags stamoplysninger på pjecerne, feltet kalder jeg Raekkefoelge. Ja, den nye rækkefølge ligger oven i den eksisterende, så det er rigtig forstået.
ok saa foerst og fremmest skal du have haandteret nye pjecer.
Saa i den boks hvor du indtaster raekkefoelgenummeret skal du have noget kode beforeupdate hvor du finder ud af om raekkefoelgenummeret bryder den eksisterende raekke:
if Dcount("Raekkeflg", "PjeceTabel", "Raekkeflg = " & me.Tekstboksen) >=1 then UPDATE [PjeceTabel] SET raekkeflg = raekkeflg +1 WHERE raekkeflg >= " & me.Tekstboksen & ";" end if
Dvs du slaar op i tabellen for at se om raekkefoelgenummeret allerede eksisterer. Hvis det er tilfaeldet skubber den alle numre stoerre end eller lig med det nye raekkefoelgenummer op. Hvis raekkefoelgenummere ikke findes i forvejen bliver posten bare lagt ind
me.teksboksen er en reference til den tekstboks i formularen hvor du indtaster dit raekkefoelgenummer. Saa kriteriet for Dcount- kaldet er en kombination af teksten "Raekkeflg = " og hvad der staar i denne tekstboks. Saa hvis du f.eks indskriver det nye raekkefoelgenummer 11 vil linjen med DCount blive laest som :
if Dcount("Raekkeflg", "PjeceTabel", "Raekkeflg = 11") >=1 then
Synes godt om
Ny brugerNybegynder
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.