Avatar billede Boenne65 Nybegynder
28. december 2009 - 22:44 Der er 17 kommentarer og
1 løsning

Bruge Tekstbox - som variabelt navn i VB

Jeg har op til flere forskellige Tekstboxe, hvor jeg gerne vil have at følgende sætning bruger variablen "Feltnavn" som er af typen String og som indeholder teksten f.eks. Tekstbox32
Nu har jeg rodet rundt med forskellige tegnsætninger men får hele tiden fejl om at Feltet Feltnavn ikke findes..
Er der nogle som kan hjælpe mig?

Sætningen er

Forms!test.['(Feltnavn)'].ForeColor = lngYellow
Avatar billede mugs Novice
28. december 2009 - 22:49 #1
Jeg bruger denne sætning sammenkoblet med en betingelse i feltet med navnet Felt1:

Dim lngRed As Long, lngYellow As Long, lngBlack As Long, lngWhite As Long
lngRed = RGB(255, 0, 0)
lngYellow = RGB(255, 255, 0)
lngBlack = RGB(0, 0, 0)
lngWhite = RGB(255, 255, 255)
If Felt1 < "4" Then
Felt1.ForeColor = lngRed
Else
Felt1.BackColor = lngBlack
End If
Me.Refresh
Avatar billede Boenne65 Nybegynder
28. december 2009 - 22:54 #2
Jeg er ikke helt sikker på jeg forstår det.. for det er meningen at f.eks. Felt1 skal være = "Tekstfelt34"



Problemet er at jeg har ca. 47 felter som jeg tjekker i en for løkke derfor har jeg lavet et modul, med en funktion som henter navnet på tekstfeltet fra min form.
Avatar billede mugs Novice
28. december 2009 - 22:58 #3
OK - Jeg troede fejlen havde noget at gøre med forecolor siden du skrev det.

Prøv at undlade apostroffer og runde paranteser omkring feltnavn således:

Forms!test.[Feltnavn].ForeColor = lngYellow
Avatar billede Boenne65 Nybegynder
28. december 2009 - 23:03 #4
så får jeg fejlemeddelelsen at Acces ikke kan finde Feltet Feltnavn, der refereres til i udtrykket.. jeg kører 97 :-/
Avatar billede mugs Novice
28. december 2009 - 23:10 #5
97 kan jeg ikke klare længere. Denne er afprøvet i ACC 2000 og fungerer:

Modulet:
Public Function test()
[Forms]![form1]![Tekst23] = "hej"
[Forms]![form1]![Tekst23].forecolor = 255
End Function

Kaldes fra Form1 med denne:

Private Sub Kommandoknap25_Click()
test
End Sub
Avatar billede Boenne65 Nybegynder
28. december 2009 - 23:14 #6
Jeg afprøver lige
Avatar billede mugs Novice
28. december 2009 - 23:16 #7
Hvis du lægger din e-mail, kan jeg sende dig mit afprøvede eksempel.
Avatar billede Boenne65 Nybegynder
28. december 2009 - 23:32 #8
Ja - det virker jo hvis jeg skriver den direkte henvisning til tekstfeltet F.eks. som du har beskrevet med
[Forms]![form1]![Tekst23].forecolor = 255

Men igen vil jeg jo gerne have at Tekst23 skal hedde Feltnavn som så indeholder værdien "Tekst23"
Det virker også med Forms!Form1.Tekst23 men lige så snart jeg prøver at sætte variablen "Feltnavn" ind med "" eller & eller [ om, så får jeg medelelsen om at feltet Feltnavn ikke findes..
Avatar billede Boenne65 Nybegynder
28. december 2009 - 23:35 #9
Kommer her bj65@live.dk
Avatar billede mugs Novice
28. december 2009 - 23:46 #10
Feltnavnet er jo databærende, derfor mener jeg ikke, at hverken apostroffer eller () vil fungere.

Hvorfor vil du bruge variablen Feltnavn?
Avatar billede Boenne65 Nybegynder
28. december 2009 - 23:53 #11
Det er en kalender, og jeg kan ikke bruge min Kalender.OCX af en eller anden årsag..
Derfor har jeg flikket en sammen som så læser hvert enkelt felt.

Først havde jeg en tabel hvor jeg havde en tekstbox i listeform .. men når jeg ville have ændret en dato til at have farven gul blev ALLE datoer gule.. derfor har jeg så lavet dem enkeltvis..

Nu løber jeg så ind i at skulle lave en ens sætning på hver af de mange tekstbokse jeg har.. derfor skal feltnavn bruges som variabel af de enkelte tekstbokse.. :-/ .. Jeg ved godt det er noget "klamphuggeri" :-/
Avatar billede Boenne65 Nybegynder
28. december 2009 - 23:55 #12
Jeg kigger lige på det som du har sendt :-)
Avatar billede mugs Novice
28. december 2009 - 23:56 #13
Har du fået mit eksempel med All Controls??
Avatar billede Boenne65 Nybegynder
29. december 2009 - 00:02 #14
Jeg har fået en med Beregn Alder
Avatar billede Boenne65 Nybegynder
29. december 2009 - 00:04 #15
ok her er den
Avatar billede mugs Novice
29. december 2009 - 00:06 #16
Det er en testdb til beregning af alder ud fra CPR eller fødselsdato, som jeg hurtigt lavede om. Men til dit brug skal du kun bruge Module3 og de 2 kommandoknapper.
Avatar billede Boenne65 Nybegynder
29. december 2009 - 00:11 #17
Det er ret sikkert det som jeg er ude i ..

If ctl.ControlType = acTextBox
Next ctl
End Function

Hvilket vil spare mig for en masse besvær med at skrive fordi det bliver klaret i een sætning..

Jeg har ikke testet det, men har fattet sammenhængen og det er en stor hjælp :-)
Jeg smider lige en note om og hvis jeg får det til at køre på den måde du har lavet .. lige nu er det lidt sent - men du får points annyway tusind tak for hjælpen .. igen :-)
Avatar billede mugs Novice
29. december 2009 - 00:18 #18
Selv tak og tak for point. Jeg slutter for iaften, men du vender blot tilbage hvis der opstår problemer.
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