19. oktober 2001 - 08:38Der er
7 kommentarer og 1 løsning
Køre tilføjelsesforespørgelse x antal gange afhængig af postværdi.
Jeg har brug for at lave nogle etiketter til nogle kasser, hvor der skal en etiket på hver kasse. Hvis kunden har bestilt 2 stk. af en vare skal der skrives 2 stk etiketter ud.
Jeg har tænkt mig at lave en tilføjelsesforespørgelse hvor jeg føjer poster til en spool-tabel, som jeg tømmer efter udskrift.
Er der nogle der kan hjælpe mig med, hvordan man får en tilføjelsesforespørgelse til at køre x antal gange afhængigt af antalværdien i en post.
Jeg laver lige et eksempel:
Nr. Beskriv. Antal 001 Hundemad 2 stk. 002 Kattemad 3 stk.
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.
Du kan lave en stump kode som lægger posterne ind i Spooltabellen. Spooltabellen kan enten kun indeholde Nr (hvis det er nøglefeltet) eller alle oplysninger, hvis du hellere vil det.
Public Function OpretSpoolTabel(Nr as String, Beskriv as String, Antal as Long) Dim n as Long Dim rs as DAO.Recordset Set rs = currentdb.Openrecordset(\"Spooltabel\", dbopendynaset) For n = 1 to Antal rs.addnew rs!Nr = Nr rs!Beskriv = Beskriv rs.Update next n rs.close set rs = nothing end function
Koden benytter DAO, så du både kan benytte den i Access 97 og 2000 (i 2000 skal du dog huske at lave en reference til \"Microsoft DAO 3.6 Object Library\" Du skal også huske at tømme tabellen hver gang.
I dit tilfælde kaldes funktionen så 2 gange (f.eks. fra en knap):
private sub Udskriv_Click() currentdb.execute \"Delete From Spooltabel\" Call OpretSpoolTabel(\"001\", \"Hundemad\", 2) Call OpretSpoolTabel(\"002\", \"Kattemad\", 3) docmd.openreport \"Etiketter\",acviewpreview end sub
Ja, det ser ud til at virke fint - tak for hjælpen. Dit svar er rigtigt nok, men jeg ville gerne have en funktion, der løber posterne igennem, så man kan lave spoolen på en gang (så man ikke behøver at lave Call OpretSpool....... flere gange). Her tænker jeg på at den kan løbe alle varelinierne igennem og spoole ved tryk på en knap. Hvis du har en hurtig ide ville det være fint, men ellers ser jeg selv på det.
Public Function OpretSpoolTabel() Dim n as Long Dim rs as DAO.Recordset Dim rsVare as DAO.Recordset Set rs = currentdb.Openrecordset(\"Spooltabel\", dbopendynaset) Set rsVare = currentdb.Openrecordset(\"Varetabel\", dbopensnapshot) do For n = 1 to rsVare!Antal rs.addnew rs!Nr = rsVare!Nr rs!Beskriv = rsVare!Beskriv rs.Update next n rsVare.Movenext loop until rsVare.EOF rs.close set rs = nothing rsVare.close set rsVare = nothing end function
Det var bare lige sådan det skulle virke! Mange tak for hjælpen.
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.