Avatar billede trymore Nybegynder
30. januar 2004 - 10:50 Der er 32 kommentarer og
2 løsninger

kjøre Query med kriterier fra en modul (VBA)

Hei.
Jeg vil kjøre en query fra en modul med utvalgskriterier fra en eller flere variabler i modulen.
Avatar billede madschristensen Nybegynder
30. januar 2004 - 11:41 #1
Hvad vil du køre den imod ? En tabel ?
Avatar billede madschristensen Nybegynder
30. januar 2004 - 11:41 #2
Og i vilket program ? Access / Excel / Word eller ???
Avatar billede trymore Nybegynder
30. januar 2004 - 16:59 #3
Jeg vil kjøre en access-query (mot en access-tabell) fra en access-modul med 2 ulike kriterier fra variabler i modulen. OK?
Avatar billede fynbohans Nybegynder
30. januar 2004 - 18:05 #4
Hvis du laver en funktion som afleverer den ønske værdi af en variabel, kan du bruge funtionen son kriterium for det pågældende felt.

Function MinFunction()
        MinFunction = MinVariabel
End Function
Avatar billede terry Ekspert
30. januar 2004 - 18:31 #5
Well I could wait to see if the points we increased but as I'm not fixed on points then you can try this

You may need a reference to DAO to do this


Dim dB as Database
Dim qdf As QueryDef


On Error GoTo PROC_ERR
   
    Set db = CurrentDb
    Set qdf = db.QueryDefs("YourQuery")
   
    qdf.Parameters("P1") = 100
    qdf.Parameters("P2") = "Apples"
   
    qdf.Execute
       
    Set qdf = Nothing
Avatar billede nih Novice
30. januar 2004 - 22:27 #6
Jeg uddyber lige fynbohans :)

foresp Q1: SELECT Postnr.* FROM Postnr WHERE PostNavn)=minvariabel();

VBA modul:

Sub kørForesp()
  DoCmd.OpenQuery "q1"
End Sub

Function minVariabel() As String
  minVariabel = "kolding"
End Function

Niels
Avatar billede terry Ekspert
03. februar 2004 - 17:11 #7
.
Avatar billede terry Ekspert
06. februar 2004 - 18:30 #8
.
Avatar billede trymore Nybegynder
09. februar 2004 - 13:46 #9
Terry;

Dim dB As dao.Database
Dim qdf As dao.QueryDef

Const cstrN As String = "Test2"

 
    Set dB = CurrentDb
    Set qdf = dB.QueryDefs(cstrN)

    'qdf.Parameters("P1") = 100
    'qdf.Parameters("P2") = 11

     
    qdf.Execute
       
    Set qdf = Nothing

Denne er OK!

men når jeg aktiverer qdf.parameters...  får jeg "run-time error 3265 Angitt element finnes ikke i samlingen" . Er P1 = feltnavn?

Jeg vil at queryen skal kjøre med feltet PROID = 100 og INDID = 11.



 
    'qdf.Parameters("P1") = 100
    'qdf.Parameters("P2") = 11
Avatar billede terry Ekspert
09. februar 2004 - 18:44 #10
have you created two parameters not just [P1] and [P2]!

Right click in the area wheher the tables are in your query and then choose parameters from the menu, then create two parameters.

In SQL view you will see someting like this.
PARAMETERS P1 Long, P2 Long;
SELECT .....
Avatar billede terry Ekspert
16. februar 2004 - 19:49 #11
.
Avatar billede terry Ekspert
19. februar 2004 - 18:09 #12
hows it going trymore?
Avatar billede terry Ekspert
22. februar 2004 - 12:29 #13
??
Avatar billede trymore Nybegynder
24. februar 2004 - 12:20 #14
sorry, i've been too busy, but i will have a look at the problem now!!
Avatar billede terry Ekspert
24. februar 2004 - 14:09 #15
OK
Avatar billede terry Ekspert
29. februar 2004 - 21:09 #16
and now thsi question has been open a whole month, lets get it closed!
Avatar billede trymore Nybegynder
01. marts 2004 - 11:51 #17
OK!!!!!!!!!, my friend!!!

(the problem came to an end last week)

It was not necessary to right click in my action-query to define some parameters. I just wrote [parameters].[x] and [parameters].[y] in the criteria-field of current interest in the query. The values in x & y are on forehand collected from a form.

Solution:

temp_x = [Forms]![formA]![fieldA]
temp_y = [Forms]![formA]![fieldB]

Dim dB As dao.Database
Dim qdf As dao.QueryDef

Const cstrN As String = "queryA"

    Set dB = CurrentDb
    Set qdf = dB.QueryDefs(cstrN)
   
   
    qdf.Parameters("parameters.x") = temp_x
    qdf.Parameters("parameters.y") = temp_y
   
    qdf.Execute
       
    Set qdf = Nothing

Thanks for giving me tip of great value which lead me to work out the challange of my problem. I hope you still will give me a reply next time I initiate a new approach to a problem!  The points are yours!

Have a nice day

trymore
Avatar billede terry Ekspert
01. marts 2004 - 16:46 #18
you need to accept then :o)
glad to hear yo got it working too.
Avatar billede terry Ekspert
02. marts 2004 - 17:53 #19
.
Avatar billede trymore Nybegynder
02. marts 2004 - 20:23 #20
Hei Terry.

Jeg klikker på "selv angive point fordeling" og legger inn point på deg og trykker accept. Er ikke det nok ?????

maynard
Avatar billede terry Ekspert
02. marts 2004 - 21:09 #21
you need to mark the name of the person you are giving points to
Avatar billede terry Ekspert
02. marts 2004 - 21:09 #22
I think eksperten has a little problem here :o)
Avatar billede trymore Nybegynder
03. marts 2004 - 10:59 #23
Well I've tried several times to click on "selv angive point fordelinen, then stored the points in the field related to your name and then pushed the button to ACCEPTER

Well, I'll try to send an e-mail to eksperten!

trymore
Avatar billede nih Novice
03. marts 2004 - 11:24 #24
Eller måske har Terry nået sit maximum af point her på Eksperten :o)

Niels
Avatar billede terry Ekspert
03. marts 2004 - 19:42 #25
Good one there Niels :o)

trymore, I'll contact admin as this seems to be a general problem they have!
Avatar billede nikolajdu Nybegynder
03. marts 2004 - 19:53 #26
I think nih might be right - Terry has absoutely reached his maximum ;-)

Nah try making et new question with the correct points named "points to Terry 458943" - If you can´t close this one yourself (by anwering and accepting yourself) at least I can do it and return your points.

/Nikolaj /co-admin
Avatar billede nikolajdu Nybegynder
03. marts 2004 - 19:54 #27
anwering = answering
Avatar billede terry Ekspert
03. marts 2004 - 20:14 #28
well if yo werent so close to my tail Nikolaj, I would just say forget the points :o)
Avatar billede terry Ekspert
04. marts 2004 - 19:49 #29
.
Avatar billede terry Ekspert
08. marts 2004 - 19:48 #30
and?
Avatar billede trymore Nybegynder
09. marts 2004 - 10:38 #31
A mail has been forwarded few days ago to coadmin about my problem to close this case. I've increased the value point to 60 and tried to push the accepter-button again, and several times again tried the selv-angive-point-fordeling routine to accept. A new e-mail has been sendt to coadmin today. Well, I have opened a new question "Kjøre query med kriterier fra en modul VBA II"". Give it an answer terry and i will try to accept it. OK?
Avatar billede trymore Nybegynder
09. marts 2004 - 10:47 #32
WohW!!! Well this case seems to be closed know! This was not the best KISS-routine i've seen for accepting an answer but it seems to be OK! (KISS=Keep It Stupid and Simple) Thank's terry.
Avatar billede terry Ekspert
09. marts 2004 - 11:06 #33
thanks too :o)
Hope this problem with accepting answers gets solved soon!
Avatar billede nikolajdu Nybegynder
09. marts 2004 - 13:45 #34
Actually it´s not a good idea to write mails to coadmins - Use the "Anmeld misbrug" in the "funktioner" box out to the left. Enter your own name and the problem - It´s much easier for us.

When it comes to this specific problem it´s a wellknown bug and users can wait until it is ressolved -  Well don´t get optimistic this bug has been there for ages.

/Nikolaj
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