02. januar 2007 - 10:52Der 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.
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.
Synes godt om
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).
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
Synes godt om
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?
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
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.