Avatar billede yilmas Nybegynder
18. april 2002 - 13:29 Der er 29 kommentarer

ListeBox

Jeg har et felt (Kunde) og en ListeBox (KundeListe). I kundeListe kan jeg have nogle poster, som macher, den kunde som står i kunde felt. Hvordan kan jeg få værdien i Kunde felt og værdien i Kundeliste (Første index ´på det valgte post) til at bytte rundt?

Jeg har prøvet med dette (Men virker ikke, jeg får en fejl):

Dim nyKunde As String
Dim gamleKunde As String
Dim svar As String

nyKunde = Me.KundeListe.Column(0)
gamleKunde = Me.kunde

Me.KundeListe.Column(0) = gamleKunde
Me.kunde = nyKunde

Nogen som kan hjælpe??
Avatar billede yilmas Nybegynder
18. april 2002 - 14:12 #1
okay, hvad skriver jeg så hvis jeg gerne vil smide noget ind i en liste? Hvordan koder man posterne med VBA?
Den Listbox som jeg har lavet, har jeg lavet på formen, men hvis der er nogen som kan vise mig hvordan man skriver koden for at genere en listbox med poster i det, så kan jeg arbejder viedere med det.
Avatar billede yilmas Nybegynder
18. april 2002 - 14:17 #2
Hvordan indsætter jeg en værdi i rækkerne på ListBoxen??
Avatar billede terry Ekspert
18. april 2002 - 14:23 #3
You cant update the date in the listbox directly, but you can alter the data in the table which the listbox is based on.

Not quite sure which field you are trying to update but this may give you an idea:


Docmd.runsql "UPDATE tblKunde SET Kunde = '" & Me.nyKunde & "' WHERE Kunde = '" & gamleKunde & "'"
Avatar billede terry Ekspert
18. april 2002 - 14:24 #4
You can du this in the listbox's on click event
Avatar billede yilmas Nybegynder
18. april 2002 - 14:32 #5
Jeg skal kun have ændret data, bår jeg klikker på en knap der hedder "Flytkunde" Hvad skriver jeg så i Flytkunde_click() funktionen?

Men jeg skal ikke opdatere nogen tabel, de kunder som skal byttes ligger begge i samme tabel i forvejen. Tror bare at jeg skal lave en ny opdatering, når jeg klikker på Knappen, hvor jeg så insætter de nye poster som jeg finder via SQL-sætning

Men Hvad skriver jeg, for at indsættep posterne???
Avatar billede terry Ekspert
18. april 2002 - 14:48 #6
The data that is in the list is from the table, WHY are you trying to update the kunde in the list?

What do you mean by "indsættep posterne" if it isnt to update?

You can get the value from the list with Me.KundeListe.Column(0)
Avatar billede yilmas Nybegynder
18. april 2002 - 15:03 #7
Okay, måske udtrykte jeg mig ikke helt rigtigt. jeg skal ikke indsætte nogen poster, men derimod skal jeg hente (SELECT) de nye poster til ListBoxen. Den enste for skel på den gamle liste og den nye liste, er at der nu er en ny post som er kommet ind, isteden for den post som jeg valgte at erstate den med.

Forrestil dig at jeg har et felt(Textbox) med et kundenr, og i listboxen har jeg 4 kunder. En af disse 4 kunder markere jeg og klikker på Knappen "Bytkunde". Det der så skulle ske er at kunden fra Textboxen kommer over til ListBoxen, og posten i listbox som jeg valgte kommer over i TextBox .
Avatar billede terry Ekspert
18. april 2002 - 15:06 #8
Me.KundeListe.requery
Avatar billede yilmas Nybegynder
18. april 2002 - 15:07 #9
okay, jeg får ikke nogen problemmer med at smide smide fra Listboxen over til TextBoxen, der bare ved at skrive:

Me.kunde = Me.KundeListe.Column(0)

Men problemet er når jeg skal smide kunden fra TextBox over i ListBoxen. Jeg har dog kundenr fra textboxen som jeg kan bruge, men hvordan får jeg opdateret Listboxen, så då kunden fra Textboxen kommer over i Listboxen (Sammen med de andre 3 poster som ligger der)??
Avatar billede yilmas Nybegynder
18. april 2002 - 15:09 #10
Kan du forstå mit problem nu?
Avatar billede yilmas Nybegynder
18. april 2002 - 15:18 #11
Det med at smide det fra Listboxen over til Textboxen har jeg fået til at virke. Nu skal jeg bare kunne opdatere ListBoxen med den nye kunde fra TextBoxen (Og de andre som også lå der, minus den som blev smidt over i TextBoxen)
Avatar billede yilmas Nybegynder
18. april 2002 - 15:28 #12
Hvad skriver jeg for at opdatere ListBoxen med den nye forespørgsel?

Me.Kundeliste.requery, er ikke nok, jeg skal bruge min sql-sætning hvor jeg finder de kunder som skal smide ind i Listboxen:

strSQL ="SELECT kundenr, navn, tlfnr FROM tblKunde WHERE Kundenr = '"& Me.KundeListe.column(0,I)&"' OR navn = '"& Me.KundeListe.column(1,I)&"' OR tlfnr = '"& Me.KundeListe.column(2,I)&"' OR Kundenr = '"& nyKunde&"' "

Denne SQL-sætning skal jeg vel bruge et eller andet sted, Hvordan får jeg smidt dette ind i ListBOx??
Avatar billede terry Ekspert
18. april 2002 - 15:47 #13
me.YourListBox.RowSource = strSQL
me.YourListBox.Refresh
Avatar billede nih Novice
18. april 2002 - 21:03 #14
Du kan også i listboxens rowsouce (rækkekilde) åbne en SQLbuilder, ligesom en forespørgsel. Her kan du, som normalt, angive i designgitteret at eksempelvis feltet 'kundeId' =[Forms]![Formular1]![textBox].
I en event skal du så opdatere listen: listbox.requery

Niels
Avatar billede yilmas Nybegynder
19. april 2002 - 09:54 #15
Okay, jeg har fået det til at virke, ved at bruge samme sql-sætning som i ListBoxens sql-sætning, men hvor jeg så ikke vil have at den skal vise den som jeg har valgt:

nyKunde = Me.KundeListe.Column(0)
Me.kunde = Me.KundeListe.Column(0)

strSQL ="SELECT.........WHERE...AND Kundenr <> nyKunde...."
Me.KundeListe.RowSource = strSQL
Me.KundeListe.Requery

Men jeg vil lige spørge om en sidste ting,

Jeg bruger DoCmd.GoToRecord , , acNext som går til næste post, og disse felterne for posten bliver vist i nogle TextBoxe, hvordan får jeg disse TextBoxe til at gå til en bestemt post?

Eks: hvis jeg gerne vil går frem til posten Me.Kundenr. hvad skriver jeg så?
Avatar billede terry Ekspert
19. april 2002 - 10:11 #16
not sure jeg er med der! "hvordan får jeg disse TextBoxe til at gå til en bestemt post?" explain please!
Avatar billede yilmas Nybegynder
19. april 2002 - 10:16 #17
Jeg har 5 TextBox felter, til disse bruger jeg kontrolelementkilde, så når jeg bruger DoCmd.GoToRecord , , acNext, bliver de opdateret med den nye post.
Avatar billede yilmas Nybegynder
19. april 2002 - 10:17 #18
Kan man ikke skriver et eller andet med, eks:

DoCmd.GoToRecord , , Me.kundenr

??
Avatar billede terry Ekspert
19. april 2002 - 10:27 #19
No, the offset is  numeric value!

Yilmas what is it exactly you are trying to do? I am sure this could be done MUCH easier!
Avatar billede terry Ekspert
19. april 2002 - 10:28 #20
Can you send me the dB so I can take a QUICK look so I can make some suggestions?
Avatar billede yilmas Nybegynder
19. april 2002 - 10:33 #21
Dette er hvad jeg vil:

Private Sub BytKunde_Click()

Dim nyKunde As String
Dim gamleKunde As String
Dim strSQL As String
Dim count As Integer
Dim svar As Integer
Dim I As Integer

'gamleKunde = Me.kunde
nyKunde = Me.KundeListe.Column(0)
Me.kunde = Me.KundeListe.Column(0)

strSQL = "SELECT [SL02].[SL01001] as Kundenr,  [SL02].[SL01002] as Kundenavn,  [SL02].[SL01003] as Adresse,  [SL02].[SL01004], [SL02].[SL01005] as Postnr,  [SL02].[SL01011] as Telefon,  [SL02].[SL01013],  [SL02].[SL01050] as Fakturadato,  [SL02].[SL01051] as Betalinsdato FROM [SL02] WHERE left([SL02].[SL01002], 2)  = Left('" & Kundenavn & "', 2) AND  left([SL02].[SL01003], 3)  = Left('" & Adr1 & "', 3) AND  left([SL02].[SL01005], 4)  = Left('" & Adr3 & "', 4) AND  [SL02].[SL01001]<> '" & nyKunde & "' AND  [SL02].[SL01001] NOT IN (SELECT [KunderTilFlet].[Gamelkunder] FROM  [KunderTilFlet])"
Me.KundeListe.RowSource = strSQL
Me.KundeListe.Requery

DoCmd.GoToRecord , , acGoTo, Me.kunde

End Sub

Men problemmet er at jeg ikke kan gå til den post hvis kundenr er Me.Kunde.
I de 5 TextBox felter, står stadig den gamle kunde
Avatar billede terry Ekspert
19. april 2002 - 10:48 #22
Jilmas>that only tells me what your trying to do in THIS event, it doesnt tell me WHY! I cant see the reason for having to do this so I cant make suggestions to MAYBE look at the problem from another point of view.

I CAN NOT see why it is necessary to take information from your combo and move them over to other fields  on your form.

If you want to go to a specific record WHEN you select a record form the list then you can use the listbox wizard to help you, it, makes the code needed to do this!
Avatar billede yilmas Nybegynder
19. april 2002 - 10:56 #23
Jeg kan desvære ikke sende dig Databasen
Avatar billede yilmas Nybegynder
19. april 2002 - 10:57 #24
sorry, Det fylder også alt for meget
Avatar billede terry Ekspert
19. april 2002 - 10:59 #25
Can you export the form and the tables needed to another dB, or is this the information private?
Avatar billede yilmas Nybegynder
19. april 2002 - 11:36 #26
Okay, det gøre jeg så, Har du en mail adresse?
Avatar billede yilmas Nybegynder
19. april 2002 - 11:43 #27
Okay, jeg sender dig en mail med Databasen, men jeg har gjort Db mindre
Avatar billede yilmas Nybegynder
19. april 2002 - 11:49 #28
Jeg skal lige lave nogen ting først, kan jeg ikke sende det til dig imorgen? For jeg mangler lige nogle ting til det virker, så kan du kigge på problemmet som jeg har beskrevet for oven.
Avatar billede terry Ekspert
22. april 2002 - 22:33 #29
terry@santhell.dk
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



IT-JOB

De Nationale Geologiske Undersøgelser for Danmark og Grønland (GEUS)

IT-systemadministrator søges til GEUS

AURA A/S

Data Engineer

Politiets Efterretningstjeneste

Netværks- og/eller firewallspecialister til PET

Københavns Professionshøjskole

Nytænkende og agil IT-projektleder