Avatar billede software Nybegynder
12. juli 2002 - 09:12 Der er 27 kommentarer og
1 løsning

kombibox og tekstfelt

Hej.

Jeg har lavet en kombinationsbox med værdierne 1. kvartal, 2. kvartal, 3. kvartal, 4.kvartal, 1. halvår, 2. halvår, Hele året.

og et tekstfelt hvori man skal indtaste kalenderår.

Jeg har så en tabel med en kolonne "Dato". Ideen er så, at efter man har valgt sine værdier, så skal alle de poster, som har dato indenfor de værdier man har valgt, vises.

/Software
Avatar billede jobless Nybegynder
12. juli 2002 - 09:20 #1
Du kan bruge noget i retning af (til din sql udvælgelse):
datepart("q";[dato-felt-i-tabellen]) = forms![dinformular]![dinkomboboks]

Dette giver funktionen for kvartalerne. Hvis du kombinerer dette med en iif sætning, kan du vælge at bruge denne metode hvis værdien i komboboksen er 1-4.

Hvis du skriver lidt mere om hvordan du har tænkt dig at køre forespørgelsen, kan jeg måske skrive lidt mere til dig.
12. juli 2002 - 09:27 #2
Hvis din komboboks hedder "Periode", så kan du lave en knap og lægge den kode på:

Dim SQLStr as String
Select Case Me!periode
  Case "1. kvartal"
    SQLStr = "Dato between #" & Me!Kalenderår & "-01-01# And #" & Me!Kalenderår & "-03-31#"
  Case "2. kvartal"
    SQLStr = "Dato between #" & Me!Kalenderår & "-04-01# And #" & Me!Kalenderår & "-06-30#"
  Case "3. kvartal"
    SQLStr = "Dato between #" & Me!Kalenderår & "-07-01# And #" & Me!Kalenderår & "-09-30#"
  Case "4. kvartal"
    SQLStr = "Dato between #" & Me!Kalenderår & "-10-01# And #" & Me!Kalenderår & "-12-31#"
  Case "1. halvår"
    SQLStr = "Dato between #" & Me!Kalenderår & "-01-01# And #" & Me!Kalenderår & "-06-30#"
  Case "1. halvår"
    SQLStr = "Dato between #" & Me!Kalenderår & "-10-01# And #" & Me!Kalenderår & "-12-31#"
  Case "Hele året"
    SQLStr = "Year(Dato) = " & Me!Kalenderår
end select
Me.Filter = SQLStr
Me.Filteron = True

Dette forudsætter at data ligger i den samme formular som Kalenderår og Periode. Men SQLStr kan også bruges, hvis du f.eks. vil åbne en rapport med disse keriterier.

/Thomas
12. juli 2002 - 09:28 #3
Koden kan sagtens gøres kortere vha format, men således får du måske en ide til andre kombinationer.....
Avatar billede software Nybegynder
12. juli 2002 - 09:39 #4
>>Thomas, den kode du har lavet hvorhenne skal den kode lægges. Jeg går ud fra at det er under hændelser - VedKlik ??
Avatar billede terry Ekspert
13. juli 2002 - 10:54 #5
If I were you I would have a button on the form and place Thomas' code in the on click event for the button! You could also put it ín th eafter update event for the combo but you need to make sure that a year HAS been entered.
Avatar billede software Nybegynder
15. juli 2002 - 09:41 #6
Pyha, det er sgu lidt langhåret synes jeg.......Hvordan får jeg resultatet udskrevet?

Lad os sige at jeg på samme formular længere nede på siden har et tekstfelt som skal vise hvilken perioden man har valgt og dernæst skal alle de personer som f.eks. har fødselsdag indenfor den periode man har valgt blive udskrevet.

Hvordan ??

Jeg vil gerne give flere point hvis det er en større opgave!!
Avatar billede terry Ekspert
15. juli 2002 - 09:44 #7
If Thomas doesnt answer, then you can send the dB to dktebrsa@europe.lego.com and I will take a look for you.
Avatar billede software Nybegynder
16. juli 2002 - 09:35 #8
Ok, jeg tror ikke Thomas svarer så jeg sender dig db'en.
Avatar billede terry Ekspert
16. juli 2002 - 09:36 #9
OK!
Avatar billede software Nybegynder
16. juli 2002 - 09:48 #10
Jeg har lige opdaget at min db fylder over 12 mb.....Fatter jeg ikke.

Jeg har kun 2 tabeller med en relation imellem og de 2 tabeller indeholder ikke særlig mange oplysninger.

Så jeg dropper at sende den og laver i stedet en anden som viser det jeg har problemer med at få lavet.

Er det iorden ??
Avatar billede terry Ekspert
16. juli 2002 - 09:51 #11
you can compact the database (tools database utilities...) menu
then zip it.
Avatar billede software Nybegynder
16. juli 2002 - 09:52 #12
Ok det prøver jeg
Avatar billede software Nybegynder
16. juli 2002 - 09:58 #13
Fylder nu kun 280 kb, så jeg sender den til nu.
Avatar billede terry Ekspert
16. juli 2002 - 10:30 #14
Hi software! I have now looked at your database and I can see there are 3 date intevals in the table (6 dates), none of them are named "Dato"!

Also, the form which gets opened to show the result isnt intended to show all records found between the entered period!
As far as I can see you want to show how many "deltager" there with a number of hours
0-5
6-17
18-29
30-?

So the original question isnt correct!
"så skal alle de poster, som har dato indenfor de værdier man har valgt, vises."

and this IS NOT what you want, or am I missing something?
Avatar billede software Nybegynder
16. juli 2002 - 10:49 #15
Sorry my fault.

Det er fordi jeg har modificeret databasen lidt.
Meningen er at resultatet skal vise antallet af de personer som har antal timer under f.eks. dansk uglt indenfor de 4 forskellige intervaller:

0-5 timer, 6-17 timer osv.

Det vil sige at hvis man f.eks. vælger 1 kvartal i komboboxen og 2000 i kalenderår så skal "Opgørelse over periode:" være 2000 (tekstboksen øverst i formular kvartalresultat) samtidig skal alle dem som har en dansk start men ingen dansk slut vises som antal deltager udfra de forskellige tidligere nævnte 4 intervaller.

Jeg er en idiot til at formulere mig, men håber du forstod lidt af det??
Avatar billede terry Ekspert
16. juli 2002 - 10:59 #16
software>This question is no longer the original and is going to take more time than first expected. Also you are going to have to explain some more!

I dont understand why you say "dem som har en dansk start men ingen dansk slut vises "!

Why no "dansk slut"?
Avatar billede software Nybegynder
16. juli 2002 - 11:05 #17
Fordi det betyder at de stadig er igang med danskundervisning og det er kun dem som stadig deltager i dansk som skal findes.

Jeg ved godt at det originale spørgsmål er blevet ændret en del og du skal nok få flere point for den tid det eventuelt vil komme til at tage dig.

Hvis det viser sig at det kommer til at tage en helvedes tid, behøver du ikke at kæmpe med det, så må jeg bare prøve at finde en anden måde at gøre det på.

/Software
Avatar billede terry Ekspert
16. juli 2002 - 11:12 #18
OK, I will see what I can du!
Avatar billede terry Ekspert
16. juli 2002 - 12:16 #19
solution:

'a query to select for correct time interval
SELECT [Samtlige aktiviteter].[Dansk start] AS Start, IIf([Dansk uglt]<6,6,IIf([Dansk uglt]<18,18,IIf([Dansk uglt]<30,30,IIf([Dansk uglt]<100,100,0)))) AS [Interval], [Samtlige aktiviteter].[Dansk uglt]
FROM [Samtlige aktiviteter];



'To fill the fields on the from
Private Sub Form_Load()
Dim dStart As Date
Dim dEnd As Date
Dim iYear As Integer

    If Not IsNull(Me.OpenArgs) Then
       
        iYear = Forms!kvartal!periode
       
        Select Case CInt(Me.OpenArgs)
            Case 1
                dStart = Format(iYear & "-01-01", "yyyy-mm-dd")
                dEnd = Format(iYear & "-03-31", "yyyy-mm-dd")
            Case 2
                dStart = Format(iYear & "-04-01", "yyyy-mm-dd")
                dEnd = Format(iYear & "-06-30", "yyyy-mm-dd")
            Case 3
                dStart = Format(iYear & "-07-01", "yyyy-mm-dd")
                dEnd = Format(iYear & "-09-30", "yyyy-mm-dd")
            Case 4
                dStart = Format(iYear & "-10-01", "yyyy-mm-dd")
                dEnd = Format(iYear & "-12-31", "yyyy-mm-dd")
            Case 5
                dStart = Format(iYear & "-01-01", "yyyy-mm-dd")
                dEnd = Format(iYear & "-06-30", "yyyy-mm-dd")
            Case 6
                dStart = Format(iYear & "-07-01", "yyyy-mm-dd")
                dEnd = Format(iYear & "-12-31", "yyyy-mm-dd")
            Case 7
                dStart = Format(iYear & "-01-01", "yyyy-mm-dd")
                dEnd = Format(iYear & "-12-31", "yyyy-mm-dd")
       
        End Select
       
        Me.txt6 = DCount("*", "qryResultat", "Interval = 6 AND Start BETWEEN #" & Format(dStart, "yyyy-mm-dd") & "# AND #" & Format(dEnd, "yyyy-mm-dd") & "#")
        Me.txt18 = DCount("*", "qryResultat", "Interval = 18 AND Start BETWEEN #" & Format(dStart, "yyyy-mm-dd") & "# AND #" & Format(dEnd, "yyyy-mm-dd") & "#")
        Me.txt30 = DCount("*", "qryResultat", "Interval = 30 AND Start BETWEEN #" & Format(dStart, "yyyy-mm-dd") & "# AND #" & Format(dEnd, "yyyy-mm-dd") & "#")
        Me.txtMax = DCount("*", "qryResultat", "Interval = 100 AND Start BETWEEN #" & Format(dStart, "yyyy-mm-dd") & "# AND #" & Format(dEnd, "yyyy-mm-dd") & "#")
       
        Me.txtPeriod = dStart & " - " & dEnd
   
    End If
   
End Sub
Avatar billede terry Ekspert
16. juli 2002 - 12:17 #20
I'm sure it could be done easier, but it works :o)
Avatar billede software Nybegynder
16. juli 2002 - 12:52 #21
Ok, nu har keg prøvet at køre den og jeg får en "compile error: Method or data member not found".

Jeg har lavet en forespørgelse og indsat det korte stykke kode.

Det lange stykke kode har jeg lagt på knappen i formularen "kvartal"
Avatar billede terry Ekspert
16. juli 2002 - 12:57 #22
I have sent you the dB in a mail, have you received it?

The "korte stykke kode" is a query which should have the name qryResultat
Avatar billede software Nybegynder
16. juli 2002 - 12:58 #23
Forget it....Jeg havde ikke lige tænkt på at du selvfølgelig havde sendt db'en til mig.......Den virker fint.......Tusind tak.

Udover de 60 point giver jeg dig nogle flere.....Jeg opretter et nyt spørgsmål....Ok

/Software
Avatar billede terry Ekspert
16. juli 2002 - 13:04 #24
you can just alter the number of points you wnat to give on this question.
Avatar billede software Nybegynder
16. juli 2002 - 13:05 #25
To late :-)
Avatar billede terry Ekspert
16. juli 2002 - 13:11 #26
No problem, thanks :o)
Avatar billede software Nybegynder
16. juli 2002 - 13:14 #27
Jeg har oprettet det under fri debat.
Avatar billede terry Ekspert
16. juli 2002 - 13:16 #28
No, it SHOULD be under Access or the points are not figured in the Access score!
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