Avatar billede jjakobse Praktikant
06. december 2007 - 15:22 Der er 34 kommentarer og
1 løsning

Vælg Macro ud fra Checkbox

Hej,

Jeg har et spørgsmål som sikkert virker ret simpelt for hovedparten herinde, men som alligevel volder mig store problemer.

Jeg har brug for at vælge mellem to forskellige macroer, ud fra om en "checkbox" er "Tjekket" eller ej, hvis I forstår hvad jeg mener.

Hvor henne gør man det...?? Jeg har været inde og lede under Checkbox properties, men kan ikke finde noget jeg kan bruge...

Help please..! :o)
Avatar billede jjakobse Praktikant
06. december 2007 - 15:33 #1
Jeg glemte lige at fortælle at den macro der måtte blive valgt ud fra værdien af Checkboxen startes på en anden commend button.
Avatar billede terry Ekspert
06. december 2007 - 16:18 #2
Use an option Group then put some code in the option groups after update event

Example:

Private Sub Frame4_AfterUpdate()

Select Case Me.Frame4.Value

Case 1
    MsgBox "One"
Case 2
    MsgBox "Two"
Case Else
    MsgBox "Else"
   
End Select

End Sub
Avatar billede terry Ekspert
06. december 2007 - 16:20 #3
In the buttons on click event you could use the same code

Select Case Me.Frame4.Value

Case 1
    Docmd.RunMacro "Macro1"
Case 2
    Docmd.RunMacro "Macro2"
Case Else
    MsgBox "????"
   
End Select
Avatar billede jjakobse Praktikant
06. december 2007 - 16:31 #4
Hi Terry,

Thanks for this, but I'm a bit slow here.. :o)

I have now created the option group, but I don't know how the choices made here, can affect which macro that will be decided to run??

How can I relate the choice of macro to which fields that are "ticked".

Finally.. How can I make possibility for multichoices in the option group...?

Looking forward to hear from you.

I'll be checking this site again tomorrow and then you'll have your points there.. :o)

Regards

Jesper
Avatar billede jjakobse Praktikant
06. december 2007 - 16:34 #5
Sorry.. Didn't see your last reply..! :o)

But, the macro should not begin directly after you "tick" the box, as I need to have the possibiliy to "tick" two or more choices. Therefore I just want to "tick" the needed options, and then push the "Start" button.
Avatar billede mugs Novice
06. december 2007 - 16:43 #6
Lav en gruppebox med de 2 makronavne som tekst på 2 knapper i boksen. Derefter flg hændelse:

Private Sub Ramme0_Click()
If Me.Ramme0 = 1 Then
docmd.runmacro "makronavn"
Else
docmd.runmacro "et andet makronavn"
End If
End Sub

Bemærk at hændelsen skal ligge i selve gruppeboksens ramme.
Avatar billede terry Ekspert
06. december 2007 - 17:24 #7
Ref. your comment 06/12-2007 16:34:17

The comment I gave 06/12-2007 16:20:21 is something like what you want and the code goes in the BUTTONS on click event.

You didnt mention that you had to tick two or more choices, this makes things more difficult but the code still goes in the BUTTONS on click event.

What different combinations do you have for selecting the checkboxes?
Avatar billede jjakobse Praktikant
06. december 2007 - 18:37 #8
Hi Terry,

Yes, sorry I wasn't specific enough in the first place..

I need to have possibilities to tick two or three buttons, and this should result in activating one of three different macroes, once you hit the "Start" button..

Can I use the code you gave me for this...? Also.. My Access in English, so can you perhaps translate what the names for "Rammer" and the other terms means in english as well..

Sorry for asking, but this area is just completely new to me..
Avatar billede jjakobse Praktikant
06. december 2007 - 18:41 #9
Hej Mugs,

Tak for svaret, kan denne fremgangsmåde bruges til at vælge f.eks. "Send Mail til enkelt person" samt eksempelvis i kombination med "Send Mail til Mail Liste"..?

Det knapperne skal bruges til er at sende nogle rapporter der generes i databasen, og som enten skal dirrigeres internt eller eksternt..? (Indhold er ikke det samme)
Avatar billede mugs Novice
06. december 2007 - 18:43 #10
Rammer er den firkant / rektangel der er uden om din gruppebox. Der står normalt også nacvnet på rammer på den øverste linie.
Avatar billede mugs Novice
06. december 2007 - 18:48 #11
Mjaaa - Hvis din makro indeholder send kommandoen (docmd.send object),så kan den.
Hvad er forskellen på dine rapporter? Hvis det f.eks. er en rapport over et salgstal for hver enkelt kunde, vil jeg foreslå, at du indsætter et kriterie i forespørgslen der begrænser rapportens poster til kun at omfatte den enkelte kunde.

I eksperten's artikel sektion, har jeg skrevet en artikel om emnet "at sende e-mail fra Access". Jeg kan sende de tilhørende databaser hvis du ønsker det.
Avatar billede terry Ekspert
06. december 2007 - 18:54 #12
Your still not specific enough.

Does each check box correspond to an action (macro)?





Lets say you have three check boxes. D
Avatar billede jjakobse Praktikant
06. december 2007 - 18:55 #13
Hej igen Mugs,

hehe.. føler mig jo en smule dum når jeg ikke forstår det her.. :o)

Men altså.. Jeg har lavet to macroer til foreløbig to af af de tre "tick" muligheder..

Den første macro skal køre alle forespørgsler og sende EN rapport internt i firmaet med et samlet resultat på mail. Selve macroen virker fint, og rapporten ryger osse afsted på mail.

Den næste macro skal sende individuelle mails til kunder, med hver deres specifikke tal... Oftest har jeg behov for at køre begge macroer samtidigt, men nogen gange er det mere hensigtsmæssigt at der ikke sendes en mail med det samme til kunden..

Derfor behovet for "både og" løsningen..

Den tredje mulighed er at sende en sms med samme indhold ligeledes til en kunde, men dette punkt er jeg slet ikke kommet til endnu, da jeg har på fornemmelsen at det bliver hundesvært.. :o)

Jeg kan evt. sende dig databasen hvis du har mod på at kigge på det..?
Avatar billede terry Ekspert
06. december 2007 - 18:58 #14
Sorry the last line isnt important.

First of all if you need to be able to select on eor more check boxes then you cant use an option group, this gives you only one value.

If each check box correspond to an action then you need something like this.


If chk1 Then
'Action goes here
End If


If chk2 Then
'Action goes here
End If


If chk3 Then
'Action goes here
End If
Avatar billede jjakobse Praktikant
06. december 2007 - 19:06 #15
Hi Terry,

Thanks.. But this still isn't solving the problems with the need for a "tick" in two or more boxes... The "tick" in on of the fields in the option groups changes each time I click on a new option, so only one option are ticked at the same time... I need to tick two or more options, and then it should choose the right macro to run after which choices that are ticked...

Make sense..? :o)
Avatar billede mugs Novice
06. december 2007 - 19:07 #16
Du har altid mulilghed for at vælge at redigere / læse din mail inden afsendelse. Det næstsidste argument i din makro ( i min version af Access 2000) betyder True, at du vil redigere mailen inden afsendelse. Vælger du False ryger den bare af sted. Argumenterne ser spledes ud i VBA:

DoCmd.SendObject 1 arg , "2 arg", "3 arg", "4arg", "5arg", "6 arg", "7 arg", "8 arg", False, "9 arg"

Idet ”1 arg”, ”2 arg” o.s.v henviser til handlingens argumenter således:

-1. argument er den objekttype du evt. vil vedhæfte.
-2. argument er Objektnavnet på en evt. vedhæftet rapport.
-3. argument er hvilket Outputformat rapporten skal have.
-4. argument er modtagerens e-mailadresse.
-5. argument er Cc adressat.
-6. argument er Bcc adressat.
-7. er e-mailens emne.
-8. er e-mailens tekst (Brødtekst).
-False betyder, at du ikke vil redigere meddelelsen inden afsendelse.
-9. er til markering om benyttelse af en skabelonfil.

Vedr. SMS kander jeg ikke noget til det, men har dog på fornemmelsen, at det krævet specielt software / hardware. Du må gerne sende db, men jeg når ikke at se på den iaften. Husk at zippe den.

mugs snabelting mail.dk
Avatar billede jjakobse Praktikant
06. december 2007 - 19:16 #17
hej Mugs,

er der et punktum imellem mugs og snabelting..?
Avatar billede terry Ekspert
06. december 2007 - 19:16 #18
Hi jjakobse

If you dont tell us (I might not have seen if you have told us)
which chech boxes need to be check to execute a specific macro then I cant give an example.


For example:

If check box one and two are checked I want to do thos

If only check box one is checked I want to do that

If only check box two is checked I want to do something else
Avatar billede mugs Novice
06. december 2007 - 19:27 #19
Nej. Ud i eet.
Avatar billede jjakobse Praktikant
06. december 2007 - 19:35 #20
Hi Terry,

Hehe..Okay.. I might now have told you.. or I thought I have told you..

But yes, this is excactly what I want the macroes to do...
Avatar billede terry Ekspert
06. december 2007 - 19:36 #21
arent my suggestions of any use?
Avatar billede terry Ekspert
06. december 2007 - 19:43 #22
didnt see your last comment 06/12-2007 19:35:56.

"But yes, this is excactly what I want the macroes to do..."

EXACTLY as described?

If check box one and two are checked I want to do thos

If only check box one is checked I want to do that

If only check box two is checked I want to do something else
Avatar billede jjakobse Praktikant
06. december 2007 - 20:01 #23
Hi again Terry

yes.. Except the last sentense, then it is excactly what I want the db to do...
Avatar billede terry Ekspert
06. december 2007 - 20:02 #24
This does what I described 06/12-2007 19:43:29 (only two checkboxes)

Private Sub cmdRun_Click()
   
If chk1 Or chk2 Then

    If chk1 And chk2 Then
        MsgBox "Run macro 1"
    ElseIf chk1 Then
        MsgBox "Run macro 2"
    ElseIf chk2 Then
        MsgBox "Run macro 3"
 
    End If
 
   
End If
   
End Sub
Avatar billede terry Ekspert
06. december 2007 - 20:03 #25
answer to 06/12-2007 20:01:12

Private Sub cmdRun_Click()
   
If chk1 Or chk2 Then

    If chk1 And chk2 Then
        MsgBox "Run macro 1"
    ElseIf chk1 Then
        MsgBox "Run macro 2"
   
    End If
 
   
End If
   
End Sub
Avatar billede jjakobse Praktikant
06. december 2007 - 20:15 #26
Hi Terry,

Great thanks..!! :o)

But how can I tick more than one box at the same time in the two fields.. the marker changes every time I tick more than one button. Then it jumps to the field I chose as the latest..?
Avatar billede terry Ekspert
06. december 2007 - 20:22 #27
As I said 06/12-2007 18:58:26, if you want to mark more than one check box you cant use an option group.

Just put two separte checkboxes on the form
Avatar billede jjakobse Praktikant
06. december 2007 - 21:26 #28
Hi both Terry and Mugs,

I think I can manage now, thanks again to both of your for your advices and patience... :o)

Cheers

Jesper
Avatar billede jjakobse Praktikant
06. december 2007 - 21:29 #29
Hmmm.. Did you get your points, 60 each..?
Avatar billede mugs Novice
06. december 2007 - 21:39 #30
Du har afvist mit svar - Men det er helt OK, Terry ledte dig igennem til en løsning :o)

Desuden har jeg ikke så meget tid iaften. Har gæster - Øhh een gæst. Og der er jo så meget at tænke på i en sådan situation. Godnat ;o)
Avatar billede terry Ekspert
06. december 2007 - 22:20 #31
there isnt anything to think about mugs, what are you doing here? :o)

Have a good evening both of you

Og tak Jesper.
Avatar billede jjakobse Praktikant
06. december 2007 - 22:29 #32
Hov... Ja det var jo ikke ligefrem meningen.. Du skal da ha dine points..!! :o)

Kan jeg åbne et nyt "problem" om samme emne, og afregne dig der...?
Avatar billede mugs Novice
07. december 2007 - 05:53 #33
Der er afregnet hvad der skal afregnes :o)
Avatar billede jjakobse Praktikant
07. december 2007 - 09:19 #34
Pænt af dig mugs, men det var ikke lige meningen at du skulle snydes..

Det beklager jeg, og igen tak for hjælpen... Præver at køre programmet her i dag, så bliver det spændendende om det virker.. :o)
Avatar billede mugs Novice
07. december 2007 - 09:30 #35
Føler mig absolut ikke snydt. Terry lavede arbejdet.
Held og lykke med projektet og god weekend.
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