Avatar billede stry Nybegynder
04. april 2004 - 16:25 Der er 24 kommentarer og
1 løsning

Kontrollere om felt eksistere

Hvodan kan jeg,via VBA, kontrollere om et feltnavn eksisterer i en rapport el. formular, altså om det er tilgængeligt fra feltlisten.
Avatar billede terry Ekspert
04. april 2004 - 17:28 #1
stry>why do you want to be able to do this? The reason why I ask is that the solution is dependant on where you need to know.
Avatar billede terry Ekspert
04. april 2004 - 17:29 #2
A simple method would be to try and set the focus on the control and if an error occurs then it is very likely that the control doesnt exist!
Avatar billede terry Ekspert
04. april 2004 - 17:30 #3
whats the status on this quetsion http://www.eksperten.dk/spm/485314
is it finished?
Avatar billede stry Nybegynder
04. april 2004 - 17:40 #4
At prøve at sætte focus på feltet er ikke en mulighed da det helt sikkert IKKE eksisterer på rapporten, men muligvis er i feltlisten.
Jeg tildeler ControlSource til en række kontroller på rapportens Ved-Åbning hændelse, men jeg kan kun tildele dem som findes i feltlisten derfor er jeg nødt til at kontrollere at det er i feltlisten før jeg tildeler det som ControlSource til min kontrol.
Avatar billede terry Ekspert
04. april 2004 - 17:51 #5
I can guess that the reason you want to do this is because you dont know what the name of the field name is? (Problem http://www.eksperten.dk/spm/485314)
In my opinion you should stop up a bit and try and find a CORRECT solution to the previos question first and then this question would not be necessary!

IS it possible to give the field in the query a name? You also have (had) another question on how to create a query in code, I am sure that you could do it there, or by creating the query incode and giving it a column name at the same time.
Avatar billede terry Ekspert
04. april 2004 - 17:52 #6
I you dont know the name then you obvioulsy dont know if it is in the field list. So how are you go to check if the field exists if you dont know what name it has?
Avatar billede stry Nybegynder
04. april 2004 - 18:06 #7
Jeg kender for så vidt godt feltnavnene.
De bliver genereret i min krydstabulering og er en række datoer i en 14-dages periode.
På rapportens Ved-Åbning hændelse aflæser jeg så startdatoen i den formular hvorfra jeg kalder rapporten og tildeler herefter navne med følgende kode:
Dim d
d = Forms!frm_Lønperioder!txt_First
d1.ControlSource = d + 1
d2.ControlSource = d + 2
d3.ControlSource = d + 3
d4.ControlSource = d + 4
d5.ControlSource = d + 5
d8.ControlSource = d + 8
d9.ControlSource = d + 9
d10.ControlSource = d + 10
d11.ControlSource = d + 11
d12.ControlSource = d + 12
Avatar billede stry Nybegynder
04. april 2004 - 18:09 #8
Problemet opstår hvis der ikke er poster på en dato for så bliver den ikke oprettet i krydstabuleringen og dermed eksisterer feltnavnet ikke i rapporten og jeg får fejl når jeg efterfølgende forsøger at tildele det som ControlSource.
Avatar billede terry Ekspert
04. april 2004 - 18:14 #9
Then what would you do if a field doesnt exist?


what is wrong with this?

Dim d

On error resume next

d = Forms!frm_Lønperioder!txt_First
d1.ControlSource = d + 1
d2.ControlSource = d + 2
d3.ControlSource = d + 3
d4.ControlSource = d + 4
d5.ControlSource = d + 5
d8.ControlSource = d + 8
d9.ControlSource = d + 9
d10.ControlSource = d + 10
d11.ControlSource = d + 11
d12.ControlSource = d + 12
Avatar billede terry Ekspert
04. april 2004 - 18:15 #10
if a field doesnt exist then it doesnt get set! But I still think you should try and give the field a correct name in the query!
Avatar billede stry Nybegynder
04. april 2004 - 18:18 #11
Den giver stadig fejl, noget med Microsoft Jet Engine.
Jeg KAN ikke tildele kolonnerne navne i en krydstabuleringsforespørgsel :-(
Avatar billede terry Ekspert
04. april 2004 - 18:19 #12
04/04-2004 18:14:14
Avatar billede stry Nybegynder
04. april 2004 - 18:21 #13
18:18:26
Avatar billede terry Ekspert
04. april 2004 - 19:36 #14
stry>The comment you gave 04/04-2004 18:18:26 says "Jeg KAN ikke tildele kolonnerne navne i en krydstabuleringsforespørgsel" MY COMMENT 04/04-2004 18:14:14 is asking you to use On ERROR RESUME NEXT in your code! Have you tried this?
Avatar billede stry Nybegynder
04. april 2004 - 19:43 #15
Ja det har jeg prøvet, fejlen lyder "The Microsoft Jet database engine does not recognize [29-03-2004] as a valid field name or expression."
Avatar billede terry Ekspert
04. april 2004 - 20:06 #16
so in fact what you are saying is that YOUR CODE example you gave 04/04-2004 18:06:10 doesnt work! If thats doesnt work then using On Error.. isnt gong to help much!
If your field name is [29-03-2004], can you use this directly in the controlSource property? If you ca NOT use a field name [29-03-2004] directly in the property then you will not be able to set it in code either!
Avatar billede stry Nybegynder
04. april 2004 - 20:11 #17
Jo koden virker fint hvis feltet findes men giver fejl hvis det ikke findes UANSET om jeg bruger ON ERROR RESUME NEXT.
Avatar billede terry Ekspert
04. april 2004 - 20:22 #18
have you switch your error handling off?
In code view open the Tools Options window and the select the General Tab. Make sure thatthe Break on Unhandled errors is checked and NOT Break On All Errors!
Avatar billede stry Nybegynder
04. april 2004 - 20:25 #19
Min error handling står rigtigt.
Avatar billede stry Nybegynder
04. april 2004 - 20:29 #20
Det virker som om fejlen opstår efter at proceduren er færdigafviklet
Avatar billede terry Ekspert
04. april 2004 - 20:32 #21
I can take a look if you like
Avatar billede stry Nybegynder
12. april 2004 - 10:21 #22
Jeg arbejder stadig på sagen og har altså ikke glemt spørgsmålet (bare til orientering) ;D
Avatar billede terry Ekspert
15. april 2004 - 10:32 #23
I've been on holiday so it hasnt been a problem :o)
Avatar billede terry Ekspert
26. april 2004 - 20:05 #24
I'm off on my summer holidays soon :o)
Avatar billede stry Nybegynder
28. december 2004 - 15:12 #25
.
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