Avatar billede dc Nybegynder
07. juli 2003 - 09:36 Der er 13 kommentarer og
1 løsning

Indhold i textbox afhængig af hvad der er valgt i en combobox.

Jeg har en tabel med 2 kolonner, A og B. I en form skal der vælges noget i en combobox, hvis indhold er fra kolonne A. Nu skal der i formens textbox vises det fra kolonne B som hører til det der er valgt. Hvordan gør man det?
Avatar billede kabbak Professor
07. juli 2003 - 10:13 #1
me.fld1 = me.Yourcombo.column(0)
me.fld2 = me.Yourcombo.column(1)
Avatar billede terry Ekspert
07. juli 2003 - 10:14 #2
Not quite sure I understand what your trying to do! What does the combo box contain, data from column A only or B too?

Can you give an example of what your trying to do?
Avatar billede dc Nybegynder
07. juli 2003 - 10:18 #3
terry -> the combobox contain data from coloumn A, but when I select a item from the combobox the content of the editbox must change. Like a hole row is displayed in the form in different controls.
Avatar billede terry Ekspert
07. juli 2003 - 10:38 #4
Change the row source from the combo box to contain BOTH columns. Then in the combo boxed AFTER UPDATE event use the following code changing the names to the correct ones.

me.TheTextField = me.combobox.column(1)
Avatar billede terry Ekspert
07. juli 2003 - 10:41 #5
When you change the row source you also need to change the column count property to 2. Then to make sure that you are displaying column A make sure that column widths are correct. The column you are displaying in the combo should be > 0 and the column which is not to be visible (column B) should be 0. EXAMPLE: 2,5cm;0cm
Avatar billede dc Nybegynder
07. juli 2003 - 10:50 #6
Isn't there a easier way to do it. E.g. with a SQL command in the rowsource? Something like: SELECT A.* FROM A ORDER BY [A].[B];
Avatar billede overchord Nybegynder
07. juli 2003 - 10:52 #7
Du kan bygge en query i run-time. Det kan godt vaere at det er lidt overkill til din app - afh lidt af hvor meget data der skal flyttes rundt. Men jeg har tidligere gjort det samme med listboxes, saa jeg antager lige at syntaksen er rundt regnet den samme :-)

Du har faaet lagt dine data fra kolonne A i combo1, og skal nu naar brugeren klikker paa combo1 har vaerdier vist i textboxen. Problemet med at laegge det i en textbox er hvis der er flere "sandheder" hvorved du proever at laegge flere vaerdier til, derfor har jeg brugt listbox istedet (ogsaa selvom jeg er 100% sikker paa at der kun er en vaerdi for hver)

sub combo1_click()

dim MinValue as Variable
dim dbs as Database
set dbs = currentdb
dim qdf as querydef
dim strsql as string


MinValue = me.combo1.Value

strsql = "SELECT [kolonneB] FROM DinTabel WHERE DitKriterie"

set qdf = dbs.CreateQuerydef("temp", strsql)

me.listbox1.RowSourceType = "Table/Query"
me.listbox1.Rowsource = "SELECT [kolonneB] FROM " & qdf.Name

dbs.QueryDefs.Delete qdf.Name

End Sub
Avatar billede dc Nybegynder
07. juli 2003 - 12:14 #8
overchord -> dim dbs as Database virker ikke? Den siger "User-defined type not defined"
Avatar billede terry Ekspert
07. juli 2003 - 12:20 #9
dc>I would have thought that the way I suggest was the easiest way :o)

You could also use a dlookup

Again in the combos AFTER UPDATE EVENT.

Me.FieldB = Dlookup("FieldB", "YourTable", "FieldA = '" & me.comboBox & "'")
Avatar billede terry Ekspert
07. juli 2003 - 12:21 #10
but that isnt any easier than the first solution :o)
Avatar billede overchord Nybegynder
07. juli 2003 - 12:30 #11
dc -> hvilken version af Access. Koden er fra Access 97
Avatar billede dc Nybegynder
07. juli 2003 - 12:42 #12
overchord -> access 2000
Avatar billede dc Nybegynder
07. juli 2003 - 13:27 #13
Thanks, it works :)
Avatar billede terry Ekspert
07. juli 2003 - 19:06 #14
selv thanks :o)
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