Avatar billede deducer Nybegynder
16. september 2004 - 11:55 Der er 7 kommentarer og
1 løsning

@thomasjepsen dynamiske felter får formular til at hænge

Hej Thomas
Jeg er stadig meget glad for din hjælp den anden dag, men der er vist opstået en lille komplikation.
For det første virker ".Visible = True" ikke når formularen vises som dataark (hviklet der her altid skal)
Måske er det derfor at skidtet hænger sig ved lukning / gemning af formularen(Access SVARER IKKE) i ca. 30 sec. , men kommer sig dog over det.
Jeg ved ikke hvorfor den hænger sig, men det dur jo ikke.

Kan man skjule de ikke brugte felter, når der er tale om dataarkvisning ???
16. september 2004 - 20:50 #1
Hej Deducer :o)

Det er meget interessant....jeg har aldrig brugt den på dataarkvisning, men jeg ved selvfølgelig godt, at .visible ikke duer i dataarkvisning.

I stedet kan du bruge .Columnwidth = 0

Sidste del af koden ser så således ud:
    ...
    next n
   
    For n = n To MaxAntalKolonner
        Me("ctrl" & Trim(CStr(n))).ColumnWidth = 0
    Next n
End Sub

Du har måske selv fundet ud af det, men etiketterne skal 'hænge' fast på tekstboksene. Dvs at du ikke kan have etiketterne liggende i formularhovedet.

Spørg bare, hvis du har problemer med det :o)

/Thomas
Avatar billede deducer Nybegynder
20. september 2004 - 08:13 #2
Hej Thomas
Koden ser jo ud som den bare burde køre.
Men den har ikke den ønskede virkning.
Med Breakpoint kan jeg se at den bliver brugt det rigtige antal gange.
Det har bare ikke effekt - hvilke andre ting kan have indflydelse der ?
Jeg kalder metoden, der sætter tekstfelterne, i Form_Load -
altså kun een gang pr "programstart"

Hvad mon der får det til at hænge ???
Koden til underfornularen ser sådan ud :

Option Compare Database

Sub tildelTekstfelter()
 
  '***********************************************************************************************
'  Denne kode er udviklet af Thomas Jepsen, 1999
'  Dele eller hele koden må frit benyttes i applikationer, så længe kildeangivelse er bevaret
'  Besøg www.makeiteasy.dk eller skriv til tj@makeiteasy.dk,
'  hvis der opstår fejl eller spørgsmål, eller du har brug for yderligere assistance
'***********************************************************************************************
   
'Denne kode opbygger dynamisk rapporten efter Postkilden
'Dvs at rapporten kan bruges til stort set alle tabeller og forespørgsler - også krydstabullering.
'Du skal blot angive rapportens postkilde samt angive konstanten MaxAntalKolonner her i koden.
'MaxAntalKolonner angiver det maksimale antal kolonner, som der er gjort klar til i rapporten.
'Øvrige kolonner vises ikke
'Hvis der er færre kolonner i postkilden, vises kun de relevante.
'Hvis der ønskes flere kolonner, skal dissse navngives således:
'Tekstbokse (eller kombobokse) navngives "Ctrl15", hvor 15 er det næste tal i rækken
'Etiketter navngves "lbl15", hvor 15 er det næste tal i rækken
'MaxAntalRækker sættes til 15

    'On Error Resume Next
    Dim db As Database
    Dim rs As DAO.Recordset
    Dim n As Integer
    Dim AntalKolonner As Integer
    Const MaxAntalKolonner = 25
   
    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))).ColumnWidth = 0
    Next n
End Sub

'Dette tekstfelt får altid en dato
Private Sub ctrl0_DblClick(Cancel As Integer)
 
  If Not booBookingKalenderDagsoversigtOpen Then
    aabn_frm_BookingkalenderDagsoversigt
  End If
 
    Forms!frmBookingkalenderDagsoversigt.set_dato (ctrl0.Value)
    Forms!frmBookingkalenderDagsoversigt.SetFocus
End Sub
Avatar billede deducer Nybegynder
20. september 2004 - 08:20 #3
Jow selvfølgelig
KanSkubbesSammen = Ja
Det hjalp bare ikke
20. september 2004 - 10:39 #4
Hej Deducer,

det lyder mærkeligt, da jeg selv fik det til at virke.

Har du mulighed for at sende databasen til mig, eller evt bare eksportere og paste din formular her (se vejleding her: http://www.nyholm.dk/makeiteasy/Home.asp?ContentID=56)
Avatar billede deducer Nybegynder
20. september 2004 - 11:55 #5
Hej Thomas

Jeg sender gerne db til dig - Jeg har muligvis "mishandlet" den så det er ikke sikkert du finder fejlen ved at se på een formular

Kan jeg sende til din mail på makeITeasy.dk??
20. september 2004 - 11:57 #6
ja, det er helt fint :o)
Avatar billede deducer Nybegynder
20. september 2004 - 14:19 #7
Tak for hjælpen - her er point
20. september 2004 - 14:41 #8
Jamen, selv tak :o)

Jeg har lige sendt dig en ny db, som måske (?) er en smule hurtigere.

2 Krydstabuleringer baseret på flere tabeller som så forenes i en UNION vil altid være langsom. Derfor er det nok tvivlsomt om du kan gøre så meget ved hastigheden.

Ellers skal man måske strukturere hele udtrækket helt om - men det kan jeg ikke lige gennemskue her og nu :o(
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