Avatar billede al-man Nybegynder
15. april 2003 - 14:11 Der er 17 kommentarer og
2 løsninger

beregning af dato fra en combobox

Jeg forsøger at få en comboboks til at benytte resultatet til at beregne en dato og sætte den ind i et tekstfelt i en Form.

eks.
combo med følgende 2 muligheder
i dag; date()
i går; date()-1

efter update skal date sættes ind i  tekstfeltet. desværre sættes teksten date() ind i stedet for at den beregnes!

jeg skal bruge dette tekstfelt til at samle op i en query.(denne kan ikke beregne feltet heller)

hvad gør jeg?????
Avatar billede mugs Novice
15. april 2003 - 16:05 #1
Dag er din kombinationsboks, og datotekst er dit tekstfelt i formularen:

If Me.dag = "Date()" Then
Me.datotekst = Date
Else:
Me.datotekst = Date - 1
End If
Avatar billede terry Ekspert
15. april 2003 - 17:23 #2
Private Sub cboDag_AfterUpdate()
In the example I have a combo box named cboDag. The row source fro the combo is
"i dag";"i går"
and I set Row source type to Value List.

In the after update event of the combo box

    If Me.cboDag = "i dag" Then
        Me.dato = Date
    Else
        Me.dato = Date - 1
    End If
   
End Sub

My text field is named Dato
Avatar billede terry Ekspert
15. april 2003 - 17:24 #3
So in the combi I have two selections
i dag
i går
Avatar billede al-man Nybegynder
15. april 2003 - 22:53 #4
det løser desværre ikke problemet, for dette giver jo bare et fast resultat. Jeg vil måske benytte 10 forskellige valgmuligheder i denne comboboks. og ville gerne have at den formel der er som row source bliver beregnet. Det bliver en forholdsvis lang if sætning, eller evt. kunne jeg jo bare bruge Case formlen.

Jeg ville gerne have en eller anden formel der udregnede row soucen og satte den ind i teksfeltet!
Avatar billede mugs Novice
15. april 2003 - 22:58 #5
Både terry's og mit svar løser dit problem set ud fra dit oprindelige spørgsmål.

Alternativt kan du lave en tekstboks i din formular, opg give feltet datotekst flg kode:

Me.datotekst = Date - tekst0

hvor tekst0 er det felt hvori du indtaster det antal dage du vil "tilbage"
Avatar billede al-man Nybegynder
15. april 2003 - 23:07 #6
Også en løsning, men det spørgsmålet går på det er om der kan skrives en code der angiver at indholdet af et felt/combobox skal beregnes inden det sættes ind i et tekstfelt!
Avatar billede mugs Novice
15. april 2003 - 23:46 #7
Hvis din combo har flg. muligheder:

i dag; date()
i går; date()-1

Må det jo være af typen tekst. Så hvor vil du have beregningen?
Avatar billede al-man Nybegynder
16. april 2003 - 09:15 #8
Mine muligheder skal så indeholde andre typer formler. med større end/mindre ind formler. dette år, denne uge m.m.

derfor ville jeg gerne have en formel der beregnede formlen ud fra det der stod i comboboxen. da jeg så kan have mulighederne lagret i en tabel som comboboxen suger i!

således at hvis der skal laves om i kriterierne så skal den der laver ændringen ikke gå ind og kode sig frem til det!!!
Avatar billede terry Ekspert
16. april 2003 - 10:02 #9
al-man>Your original question hasnt been specific enough!

Solution: You have a table containing the following fields
ID (autonumber)
Dag (text) this contains the text you want to show in the combo.
DagDiff (number, int) this is the number of days you use to calculate.

Now use the wizard to place a combo on the form. Add ALL three columns to the combo.
In the combo's property you should see 3 in the column count and in the column widths something like this
0cm;2.542cm;2.542cm
change this so that the third column is 0, this hides the value, unless of course you want to see it :o)
0cm;2.542cm;0cm

Now in the code you use

        Me.dato = DateAdd("d", Me.cboDag.Column(2), Date)
Avatar billede terry Ekspert
16. april 2003 - 10:06 #10
so now you can add new values to your table and have as many as you want. Just make sure that you have the correct number in the DagDiff. So if it is minus days you have a negative value (-1) in the field and plus (1)
Avatar billede al-man Nybegynder
16. april 2003 - 11:20 #11
det vil jeg prøve, men jeg har fundet ud af at jeg ikke kan bruge mit textfelt til at lave et criteria i den query jeg har lavet.

jeg skal bruge den som basis til en dato filtreret Chart.

når jeg åbner chart/form eller chart/report så virker linket forms![navn]![felt] ikke mere, Microsoft Jet forstår ikke linket hvad gør jeg, for så er datofunktionaliteten skide lige meget!!!! Criteria fungerer når jeg laver en almindelig report/form.
Avatar billede mugs Novice
16. april 2003 - 11:39 #12
Når du benytter et formularfelt som et kriterie, skal det se sålides ud:

[Forms]![formularnavn]![feltnavn]

Desuden er det et krav, at formularen er aktiv (åben), d.v.s. at du skal åbne din rapport fra formularen.
Avatar billede al-man Nybegynder
16. april 2003 - 11:51 #13
ja, men formlen virker med en standard Form eller Report,

men når jeg åbner med en chart form eller chart report så forstår den ikke formlen!!???
felmeddelelse "the microsoft jet engine does not recognise '[Forms]![formularnavn]![feltnavn]' as a valid field name or expression"
Avatar billede mugs Novice
16. april 2003 - 12:00 #14
=[Forms]![formularnavn]![feltnavn]

Skal fungere, når du indsætter det i en forespørgsels kriterielinie, under forudsætning af, at der ikke er stavefejl.
Avatar billede al-man Nybegynder
16. april 2003 - 12:06 #15
den forstår altså ikke sproget når den bruger denne query med criterie formen åben. men kun når det er en Chart jeg åbner!

ellers virker formlen i en normal form!!!!???
Avatar billede mugs Novice
16. april 2003 - 12:08 #16
Hvad er en Chart?
Avatar billede al-man Nybegynder
16. april 2003 - 13:08 #17
Grafer!!!
Avatar billede terry Ekspert
16. april 2003 - 19:03 #18
al-man>I think your time is up! We are WAY off the original question which HAS been answered! There is NO mention of a report or "chart" so this must be a new question!
Avatar billede mugs Novice
16. april 2003 - 19:04 #19
Correct.
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