Avatar billede Slettet bruger
02. januar 2007 - 10:52 Der er 14 kommentarer og
1 løsning

Requery på Rowsource i Combo boks

Jeg forstår ikke helt hvorfor følgende kode ikke virker.

Jeg har 2 combo bokse, den første vælger år, nummer 2 vælger uge. Afhængigt af hvilket år man vælger i combo boks 1, skal bestemte uger være tilgængelige i combo boks 2 (uger gået i det pågældende år)

--------------------------------
Private Sub txtYear_AfterUpdate()
Dim CurrentYearWeek As String
Dim PastYearWeek As String

CurrentYearWeek = "SELECT [Weeknumber].[Weeknumber] FROM [WeekNumber] WHERE [Weeknumber].[Weeknumber]<=DatePart(ww,Date()) ORDER BY [Weeknumber];"
PastYearWeek = "SELECT [Weeknumber].[Weeknumber] FROM [Weeknumber] ORDER BY [Weeknumber];"

If txtYear.Value < Year(Date) Then
    Me!txtWeek.RowSource = PastYearWeek
End If
If txtYear.Value = Year(Date) Then
    Me!txtWeek.RowSource = CurrentYearWeek
End If
Me!txtWeek.Requery
End Sub
----------------------------------------------

Begge opslag er i en tabel kaldet "Weeknumber", der indeholder et felt kaldet "Weeknumber" med værdierne 1 til 52.

Håber i kan hjælpe, sig endelig til hvis i mangler mere information. Hvis der er en nemmere måde at lave mine combo bokse på må i også meget gerne sige til.
Avatar billede terry Ekspert
02. januar 2007 - 11:37 #1
what is the actual problem?
Avatar billede Slettet bruger
02. januar 2007 - 11:43 #2
ja det glemte jeg vist i farten hah :-)

Når jeg åbner min formular og vælger hvilket år jeg vil se (Combo boks 1), så skal Combo boks 2 vise de aktive/afsluttede uger for det pågældende år... Dvs. for år 2006 er det alle 52 uger der skal frem på listen, mens 2007 kun skal vise uge 1.

Problemet er så at forespørgslen bag combo boks 2 ændrer sig alt efter om det er et foregående år eller aktuelt år (som du kan se i koden), og af en eller anden grund opdaterer combo boks 2 ikke når jeg skifter år.
Avatar billede Slettet bruger
02. januar 2007 - 11:45 #3
Kort sagt så er det jeg vil have, 2 combo bokse. I den ene skal man kunne vælge år, og i den anden skal man kunne vælge uge (kun de uger der er aktive/afsluttede i det valgte år).
Avatar billede terry Ekspert
02. januar 2007 - 11:53 #4
try making a query for combo Me!txtWeek. In the criteria for weeknumber you need to make a reference to the combo txtYear

something like
Forms!FormnameGoesHere.txtYear

then in the After Update you only need
Me!txtWeek.Requery
Avatar billede Slettet bruger
02. januar 2007 - 11:55 #5
Jeg tror ikke jeg helt forstår hvad du mener Terry, kan du give et eksempel?
Avatar billede terry Ekspert
02. januar 2007 - 11:58 #6
Maybe its easier if you can send me your dB

ekspertenATsanthell.dk
change AT to @
Avatar billede claus66 Nybegynder
02. januar 2007 - 12:25 #7
prøv flg: cmbo1=år cmbo2=uge
Tager højde for år med 53 uger som 2004
Private Sub cmbo1_AfterUpdate()
    If Me.cmbo1 = CStr(year(Date)) Then lastweek = DatePart("ww", Date, 2, 2) Else lastweek = DatePart("ww", DateSerial(Me.cmbo1, 12, 31), 2, 2)
    For i = 1 To lastweek
        lstValues = lstValues & i & ";"
    Next
    Me.cmbo2.RowSourceType = "Value List"
    Me.cmbo2.RowSource = lstValue
End sub
Avatar billede Slettet bruger
02. januar 2007 - 12:32 #8
Hej claus

Koden virker ikke, der er en del variabler der ikke er definet, lastweek, i, lstValues og lstValue... Hvordan skal de sættes op?
Avatar billede terry Ekspert
02. januar 2007 - 12:35 #9
why use code when you c an do it in SQL?
Avatar billede terry Ekspert
02. januar 2007 - 12:55 #10
Decided to use Claus66 idea, and with a little modification it works fine :o)

Private Sub txtYear_AfterUpdate()
Dim LastWeek As Integer
Dim lstValues As String
Dim i As Integer


    If Me.txtYear = CStr(Year(Date)) Then LastWeek = DatePart("ww", Date, 2, 2) Else LastWeek = DatePart("ww", DateSerial(Me.txtYear, 12, 31), 2, 2)
    For i = 1 To LastWeek
        lstValues = lstValues & i & ";"
    Next
    Me.txtWeek.RowSourceType = "Value List"
    Me.txtWeek.RowSource = lstValues
End Sub

And you can also give Claus66 the points.
Avatar billede claus66 Nybegynder
02. januar 2007 - 12:58 #11
Har lige været til frokost.
Terry har vist fikset mine tastekiks;-)
Avatar billede Slettet bruger
02. januar 2007 - 13:01 #12
kan jeg få et svar fra en af jer, og takker mange gange for hjælpen :-)
Avatar billede terry Ekspert
02. januar 2007 - 13:04 #13
Its all yours Claus
Avatar billede claus66 Nybegynder
02. januar 2007 - 13:05 #14
Thanks and happy new year
Avatar billede terry Ekspert
02. januar 2007 - 13:06 #15
same to you two too
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