Avatar billede fastwrite Nybegynder
05. juni 2002 - 04:07 Der er 3 kommentarer og
3 løsninger

Formularer og underformular

Jeg har 2 tabeller (projekt og faktura). I min projektfaktura skriver jeg forskellige oplysninger. I min faktura-tabel har jeg en fakturaid autonummerering (som skal give sig ud for at være fakturanummeret).

Så længe projektet kun er et projekt, skal der ikke ske noget, men når jeg vil lave projektet om til en faktura, har jeg en formular (f-01) hvor jeg har samlet faktura tabellen og projekt-tabellen, og i f-01 har jeg også en underformular, hvor jeg kan taste oplysninger ind som priser o.lign.

Problemet er hvordan jeg får f-01 til at angive et fakturanummer, og at jeg kan skrive flere linier i underformularen.

Jeg er træt - klokken er mange, og måske kan mit spørgsmål skrives mere enkelt :o)
Avatar billede mugs Novice
05. juni 2002 - 08:24 #1
Jeg har tidligere lavet noget lignende. Tanken er, at en kunde ringer og vil have sammensat en PC, ud fra de komponenter der er på lager. I en formular, kan du ved hjælp af kombinationsbokse sammensatte PC'en, så den passer til kundens behov. Når kunden således har accepteret sammensætningen, og der skal oprettes et bindende tilbud, trykkes på en kommandoknap, og følgende kode køres. Den opdaterer tabellen "Tilbud" med du data, som du har fundet frem til i formularen "Sammensæt". Herefter kan tilbudet udskrives, ved tryk på en anden kommandoknap, der sender data til et Word-dokument.

Da min kammerat alligevel ikke var interesseret, blev det aldrig lavet helt færdig. Men du må gerne få db(Access97), men det burde også fungere i 2000. Blot læg din e-mail.

Dim Rst As Recordset, Db As Database
Set Rst = DBEngine.Workspaces(0).Databases(0).OpenRecordset("Tilbud")
    With Rst
    .AddNew
    .Fields![Kundenr] = Kundenr
    .Fields![CPU] = CPU
    .Fields![TilbudCPUpris] = CPUpris
    .Fields![Ordrenr] = Ordrenr
    .Update
End With
MsgBox "Komponenterne er nu sammensat til et tilbud"
05. juni 2002 - 08:34 #2
Hmm, jeg er ikke helt sikker på at jeg forstår problemet.

Men normalt har man en fakturatabel, som indeholder FakturaID, dato, kundeID m.m
Derudover har man en fakturalinie-tabel, som indeholder FakturaID (fremmednøgle), beskrivelse, antal, pris m.m.

FakturaID bør IKKE være autonummering, da der alt for let opstår huller i rækkefølgen. Huller opstår hvis man fejlagtigt har oprettet en faktura, som efterfølgende bliver slettet. Der opstår også huller hvis du bare begynder at oprette men fortryder inden posten er gemt - så er nummeret brugt.
Derfor er det bedre at beregne det næste FakturaID med denne formel:
DMax("FakturaID", "Faktura") + 1

Når du skal lade et projekt overgå til en faktura, skal du derfor lave noget kode som opretter en post i fakturatabellen og medtager de relevante oplysninger.

Men du må prøve at forklare din opsætning lidt nærmere.

/Thomas
Avatar billede terry Ekspert
05. juni 2002 - 09:19 #3
well I agree with Thomas, its not easy to understand what your problem is but I think that all you need is an extra table for your "faktura" detail lines. This is for the actual goods sold and price etc.
The table should have FOR EXAMPLE: Unique ID (autonumber) foreign key (look up) to FakturaID and price. Also what ever else you want.
Avatar billede fastwrite Nybegynder
05. juni 2002 - 17:23 #4
mugs - smid den ind på ftp://eksperten:eksperten@tsmedia.dk - på forhånd tak.

Thomas - du er inde på noget af det jeg søger. Jeg vil prøve din formel, men hvad kode skal jeg skrive for at den indsætter den næste record når jeg nu laver projektet til en faktura?
Avatar billede mugs Novice
05. juni 2002 - 17:55 #5
fastwrite > kan ikke logge på
Avatar billede fastwrite Nybegynder
06. juni 2002 - 08:51 #6
ok - mugs - send den til info@tsmedia.dk - takker for hjælpen.

Jeg giver jer andre point, for jeg er sikker på at I nok skal hjælpe hvis nu det ikke virker!
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