13. september 2004 - 11:55Der er
18 kommentarer og 1 løsning
Ubundet underformular skal have nyt Recordset
Jeg har et formular, hvor underformularen viser en krydstabulering. Det giver mig visse problemer, idet jeg ikke kan have felter på underformularen som jeg kan reagere på brugerens brug af. Desuden har jeg det konkrete problem at jeg ikke ved hvordan jeg giver underformularen et nyt recordset.
Udsnit af koden ser sådan ud :
Dim rec As Recordset Set rec = CurrentDb.OpenRecordset(strSQL) Set Me.frmBookingKalenderUF.Form.Recordset = rec
Brugeren kan begrænse data ved at vælge ugenr eller måned (og år) men denne kode virker ikke efter hensigten
Hej Thomas Ja umiddelbart burde det virke, men det gør det ikke. Jeg har noget ligende kode i mit forrige spørgsmål, og der kører det fint.
jeg ved ikke om der er andre ting der kan have indflydelse? Jeg tror jeg sover lidt... Faktisk har min underformular endnu en underformular (som måske ikke er nødvendig ?) som jeg ikke kan adressere.?? Den øverste formular giver mulighed for at vælge ugenr eller måned. Underformularen skal vise de poster der har en dato i det valgte interval. Da der er tale om en krydstabulering (jeg tror det er derfor) kan jeg ikke umiddelbart bare angive postkilden til min forespørgsel, men har været nød til at sætte endnu en underformular ind, der så har forespørgslen som postkilde.
underformularen frmBookingKalenderUF har en underformular som hurtigt hedder qryUF. Denne (qryUF ) kan jeg ikke "finde" - den kommer ikke med på listen over medlemmer.
Krydstabuleringen har arrangementer som kolonneoverskrifter. Disse arrangementer er en dynamisk størrelse, sådan at forstå at antallet af arrangementer kan ændres af brugeren.
Jeg har nu pillet den nederste underformular af. Underformularen er sat til kun af blive vist som dataark Og jeg har brugt dit foreslag med Recordsource - det ser ud til at virke.... Men der er kun vist postvælgeren (ingen kolonner med data) - meget mystisk.
Jeg er vist ikke helt klar i mit udtryk. Jeg får vist postvælgere, der indikerer at koden virker (ex. der er 7 postvælgere) men der er ingen kolonner ned data
okay! Men har du overhovedet nogle bundne tekstbokse i din underformular? Disse skal jo være bundet til de felter, som krydstab'en leverer. Og det kan jo netop være problemet, da du ikke på forhånd ved hvilke kolonner der er valgt. Det, som mit eksmpel gør, er at den scanner felterne fra krydstab'en gennem og tildeler hver felt til en tekstboks.
Ja Thomas det ser jo godt ud. Jeg har bøvlet lidt mere dem formularen og koden og prøver at bruge din kode (med kildeangivelse :) ) Foreløbigt tak, når jeg lidt videre idag og får det til at virke får du point - ellers imorgen VH deducer
Forøvrigt vil jeg gerne sige dig at det ert lækkeret at kunne få hjælp på denne måde. Jeg er meget taknemmelig.... HEr sidder jeg som datamatiker på bormholm - alene (i aktivering)om mit projekt, hvor jeg skal lave et bookingsystem. Det er jo godt nok, men når jeg ikke har nogen kollegaer at spørge kan det godt gå langsomt nogengange --- så : TAK Thomas
Jamen det er da så lidt. Jeg er da rigtig glad for, at du siger det. Det er ikke altid, at folk værdsætter indsatsen. Men så længe jeg selv synes, at det er sjovt at løse kryptiske problemer her på eksperten, så er jeg her :o)
ADODB (eller "Microsoft ActiveX Data Objects 2.x Library") plejer at være standard i Access 2000. Men hvis databasen har været konvereteret fra '97, så har du fået DAO i stedet. Det kan også virke, så skal koden bare skrives en anelse om. Dette skulle kunne gøre det. Så er du fri for at skulle lave en reference mere (hvilket kan give konflikter alle steder, hvor du arbejder med Recordsets:
Dim db As Database Dim rs As DAO.Recordset Dim n As Integer Dim AntalKolonner As Integer Const MaxAntalKolonner = 5
Set db = CurrentDb Set rs = db.OpenRecordset(Me.RecordSource, dbOpenSnapshot)
AntalKolonner = rs.Fields.Count - 1 If AntalKolonner > MaxAntalKolonner Then AntalKolonner = MaxAntalKolonner End If
For n = 0 To AntalKolonner Me("ctrl" & Trim(CStr(n))).ControlSource = rs(n).Name Me("lbl" & Trim(CStr(n))).Caption = rs(n).Name Next n
For n = n To MaxAntalKolonner Me("ctrl" & Trim(CStr(n))).Visible = False Me("lbl" & Trim(CStr(n))).Visible = False Next n
Jeg kan kun sige : det styrer for fedt Hvor lækkert. Her har jeg siddet med min build and fix tilgang og klokket i det. Og så nu - det spiller bare som en hel million. Jeg har godtnok lidt flere ting der driller, men nu er jeg rimelig fortrøstningsfuld. - det skal sgu nok komme til at virke (med din hjælp).
Det virker fed og jeg er glad point til dig Thomas.....
Ja det er en fed ø - det er også en af grundene til at jeg ikke har fået et "rigtigt" datamatiker arbejde - Vi vil ikke flytte herfra (min kone er indfødt) - der er langt mellem stillingerne herovre og de er somregel besat via interne forbindelser næsten inden inden de opstår....
fyraften - vi kører på imorgen igen MVH Jeppe
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.