Avatar billede kimsand Nybegynder
13. september 2006 - 13:05 Der er 4 kommentarer

Ja nu er jeg kørt fast igen

Jeg kan ikke finde ud af hvorfor den her stump kode ikke virker som den skal. Koden er at finde i

Private Sub Report_Open(Cancel As Integer)

Jeg skal fylde værdierne fra felterne (Fravaer, AftaltFravaer, Sygdom, Nuldag) ind i nogle controller felter i en rapport.
Dataene står i tabellen Modekalender, og skal på sigt søges på baggrund af et indtastet tidsinterval, men for nu tager jeg bare de første 20.

Modekalender tabellen har relation til Brugertabellen som er hjertet i min db. Der skal på baggrund af en specifik bruger hentes nogle oplysninger i modekalenderen.

Der kommer ingenting ind i variablerne, og jeg forstår det ikke. Jeg har på fornemmelsen at jeg ikke åbner og tilgår db og tabellerne rigtigt, men er ikke klar over hvor fejlen er. Problemet er at jeg har copy/pastet en del af det, og har derfor ikke det fulde overblik over kommandoerne. Selve logikken og programflowet mener jeg virker som det skal, men database styringen er jeg ikke god nok til.



Private Sub Report_Open(Cancel As Integer)

    On Error Resume Next
    Dim cn As ADODB.Connection
    Dim recset As ADODB.Recordset
   
    Dim n As Integer
    Dim test As String
    Dim antalkolonner As Integer
    Dim strSQLQuery As String
    Dim Fravaer As Variant
    Dim Aftaltfravaer As Variant
    Dim Sygdom As Variant
    Dim Nuldag As Variant
       
    Set cn = CurrentProject.Connection
    Set recset = Server.CreateObject("ADODB.Recordset")
     
    recset.Open Me.RecordSource, cn, adOpenStatic


    strSQLQuery = "SELECT * FROM Modekalender ORDER BY Dato ASC"

    recset.Open strSQLQuery, conn, 3, 3
    rs.MoveFirst

   
   
    For n = 0 To 24
        If n = 0 Or n = 6 Or n = 13 Or n = 19 Then
            Me("ctrl" & Trim(CStr(n))).ControlSource = "uge " & Trim(CStr(n))
        Else
            Set Fravaer = recset.Fields("Fravaer")
            Set Aftaltfravaer = recset.Fields("AftaltFravaer")
            Set Sygdom = recset.Fields("Sygdom")
            Set Nuldag = recset.Fields("Nuldag")
            If Fravaer.OriginalValue <> "" Then
                Me("ctrl" & Trim(CStr(n))).ControlSource = Fravaer
            Else
                If Aftaltfravaer <> "" Then
                    Me("ctrl" & Trim(CStr(n))).ControlSource = Aftaltfravaer
                Else
                    If Sygdom <> False Then
                        Me("ctrl" & Trim(CStr(n))).ControlSource = "S"
                    Else
                        Me("ctrl" & Trim(CStr(n))).ControlSource = "0"
                    End If
                End If
            End If
           
            test = recset.Fields.Item("Fravaer")
            Me("ctrl" & Trim(CStr(n))).Visible = True
            recset.MoveNext
           
        End If
       
    Next n
Avatar billede fdata Forsker
13. september 2006 - 13:27 #1
Det ser lidt atypisk ud.
Det ser ud som om, du har en række ubundne felter, som du manuelt populerer. Hvorfor?
Hvorfor ikke ændre dem til bundne, således at de henter værdierne direkte fra din datakilde.
(Det er lidt svært at gennemskue, om du har en speciel grund til at opbygge rapporten på denne måde)
Avatar billede kimsand Nybegynder
13. september 2006 - 14:13 #2
Jammen jeg er ikke gift med noget af det der står, alt kan ændres, jeg har meget lidt forstand på hvorfor det ser sådan ud, jeg har copy/pastet tingene, så det er højest sandsynligt helt forkert, men den umiddelbare logik der lå i koden syns jeg at kunne forstå, men så alligevel ikke. Gider du forklare mig hvad du mener med bundne og ubundne felter?
Avatar billede kimsand Nybegynder
13. september 2006 - 14:34 #3
Jeg kan se jeg har været på en side http://www.w3schools.com/ado/default.asp
Som handler om ado og webprogrammering. hmmm ja du kan nok se jeg er lidt lost
Avatar billede Slettet bruger
13. september 2006 - 15:56 #4
Du er velkommen til at sende din db zippet til spgeertz på hotmail!~)
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