Avatar billede dl Nybegynder
22. november 2004 - 10:51 Der er 28 kommentarer og
2 løsninger

Forskellige udtræk i combobox

Jeg har en tabel, navn: TBL tarmtekst .. hvori der er:

  Tarmnr: tal
  Tarmtekst: String
  fod: tal

Jeg har en formular med en combobox med rækkekildetype: Værdiliste

I denne combobox skal jeg taste et varenr på 8 tegn ( numerisk ). -> denne del er løst!
Jeg vil have at når jeg taster en del af en varenr. fx 2030 .
Så skal access 2000 med VB kode: tage et udtræk på 2030* i "TBL Tarmtekst", og add det til comboboxen. Comboboxen skal clears hver gang man sletter eller taster noget af varenr.

//dl

hvordan kan jeg lave det .... jeg er ikke newbie i access 2000, men er ikke god.
har lært alt det jeg kan i delphi ( pascal ).

jeg har en masse kode, på sql udtræk osv. men kan sku ikke få det til at virke som jeg vil.

Det skal lige siges at dette program IKKE vil blive udgiver på nogle måde. det er kun for at jeg kan lære access 2000.

spørg hvis det er.
Avatar billede dl Nybegynder
22. november 2004 - 10:52 #1
comboboxen navn er  Tarmnr
//dl
Avatar billede terry Ekspert
22. november 2004 - 13:59 #2
Normally you enter text in the text field of the combo to find an entry in the listbox part of the combo. I dont see ant reason as to why you want to change the contents of the combo when you enter a value in the text field of the combo.

Can you explain a little more please?
Avatar billede dl Nybegynder
22. november 2004 - 15:04 #3
Hvis jeg har indeholdet:

405060
41506000
50606000
60503400
40506900

Så intaster jeg, starten på et varenr.
Jeg intaster  40506      ( så mangler jeg 3 for at opmå mit varenr. på 8 cifre. )

jeg vil da have at min combobox sletter alt indehold, og KUN viser disse varenr.
40506000
41506000
50606000
40506900

Altså min combobox, skal kun vise hvad der er tilgænligt ud fra det man har tastes.
Skal jeg forklare noget mere ?
//dl
Avatar billede dl Nybegynder
22. november 2004 - 15:09 #4
ups. comboboxen skal ikke vise denne: 50606000 .. da den ikke passe med det man har intastet
Avatar billede terry Ekspert
22. november 2004 - 19:20 #5
This isnt normally how you use a combobox!

Anyway, you must have some rules which decide what varenr you want to see when you enter a part of a varenr!

40506
why are these (4150600, 40506900) valid, and these (5060600) not valid?

is it because they start with 4?
Avatar billede kabbak Professor
23. november 2004 - 00:08 #6
kan du selv rette den til

Ret Tabel3  til din tabel
ret [nr] til dit felt i tabellen din kombo skal have data fra

Private Sub Tarmnr_Change()
Dim L As Integer
If Not IsNull(Len(Tarmnr)) Then
L = Len(Tarmnr)
Tarmnr.RowSource = "SELECT [nr] FROM Tabel3 WHERE left([nr]," & L & ")= " & Tarmnr
End If
Me.Recalc
Me.Refresh
Tarmnr.SelStart = L + 1
End Sub
Avatar billede dl Nybegynder
23. november 2004 - 10:47 #7
terry >>
hvis jeg indtaster 40506
jeg skal lave opslag på 40506*  i alle værdier i min tabel og sætte dem in i comboboxen.
Hvis jeg ændre noget i combobox, så skal jeg køre hele proceduren igen.
Avatar billede terry Ekspert
23. november 2004 - 11:01 #8
Ok, but explain how 41506000 is also included!
Avatar billede terry Ekspert
23. november 2004 - 11:02 #9
40506* means that they must start with 40506!
Avatar billede dl Nybegynder
23. november 2004 - 11:05 #10
jep,  dinindtastning + * 
ellers kom med et eksempel
Avatar billede dl Nybegynder
23. november 2004 - 11:09 #11
41506000  var en fejl.. hehe ... ups
Avatar billede terry Ekspert
23. november 2004 - 11:09 #12
When I read your comment 22/11-2004 15:04:43 I see 4150600, is this an error?

jeg vil da have at min combobox sletter alt indehold, og KUN viser disse varenr.
40506000
41506000
50606000
40506900


It should be IKKE?

40506000
40506900
Avatar billede dl Nybegynder
23. november 2004 - 11:17 #13
k, jeg laver en indtastning , så skal jeg lave et opslag på minindtastning* ... fx 40506*

så søger jeg min data igemmen

405060    - Valid , fordi den MATCH'er min indtastning + * (windcard)
41506000  - NOT Valid, no MATCH! char 2 from left, does not math my input. char 2 = "1" my is 0
50606000  - NOT Valid
60503400  - NOT Valid
40506900  - Valid


Alt hvad er der Valid skal vises i combobox.

//dl

PS. jeg undskylder... jeg forklare som en gang shit.
Avatar billede dl Nybegynder
23. november 2004 - 11:19 #14
kabbak >> dit eksempel er ikke helt som det skal.
når jeg indtaster en værdi som findes ... så indtaster den i combobox  "SELECT [nr] FROM Tabel3 WHERE left([nr]," & L & ")= " & Tarmnr"  altså den køre ikke din sql sætning ... eller var det også noget jeg selv skulle rette til.
Avatar billede terry Ekspert
23. november 2004 - 12:02 #15
In the combo box On Change event palce code something like this

Me.VareNr.RowSource = "SELECT * FROM TBL tarmtekst WHERE Tarmnr LIKE '" & Me.YourCombo & "*' ORDER BY VareNr"

You also need to alter the combo's "Auto Expand" to NO otherwise the txt field gets filled out with th efirst entry it finds in the list matching what you enter.

In this example the list will change for ALL characters you enter.
Avatar billede terry Ekspert
23. november 2004 - 12:02 #16
Me.VareNr.RowSource

VareNr = the name of the combo
Avatar billede dl Nybegynder
23. november 2004 - 12:39 #17
tarmnr is a celle in the tabel.

the combobox name is also tarmnr.

is this bad.
Avatar billede terry Ekspert
23. november 2004 - 13:46 #18
No thats not at all a problem!

Me.VareNr.RowSource = "SELECT * FROM TBL tarmtekst WHERE Tarmnr LIKE '" & Me.tarmnr  & "*' ORDER BY VareNr"
Avatar billede dl Nybegynder
23. november 2004 - 14:50 #19
Jeg få en error:    complete error: Medtod or data menber not found.

jeg har prøvet med:
Dim L As Integer
If Not IsNull(Len(Tarmnr)) Then
  L = Len(Tarmnr)
  Me.Varenr.RowSource = "SELECT * FROM TBL tarmtekst WHERE Tarmnr LIKE '" & Me.Tarmnr & "*' ORDER BY VareNr"
End If
Me.Recalc
Me.Refresh
Tarmnr.SelStart = L + 1




OG denne kode:

Dim L As Integer
If Not IsNull(Len(Tarmnr)) Then
  L = Len(Tarmnr)
  Me.Varenr.RowSource = "SELECT * FROM [TBL tarmtekst] WHERE Tarmnr LIKE '" & Me.Tarmnr & "*' ORDER BY VareNr"
End If
Me.Recalc
Me.Refresh
Tarmnr.SelStart = L + 1
Avatar billede dl Nybegynder
23. november 2004 - 14:52 #20
hvis jeg debug den: er mærkere den --> Private Sub Tarmnr_Change()
Avatar billede terry Ekspert
23. november 2004 - 15:02 #21
all you need in the combo box on Change event is thsi, nothing else!

Me.Tarmnr.RowSource = "SELECT * FROM TBL tarmtekst WHERE Tarmnr LIKE '" & Me.Tarmnr & "*' ORDER BY VareNr"

If you are still having problems then I will take a look if you send me your DB

eksperten@NOSPAMsanthell.dk

remove NOSPAM

I will look at it after work when I get home
Avatar billede dl Nybegynder
23. november 2004 - 15:22 #22
terry, filen er blevet sendt.
Avatar billede terry Ekspert
23. november 2004 - 18:26 #23
hi dl
I'ver received your dB, will get back as soon as possible
Terry
Avatar billede terry Ekspert
24. november 2004 - 08:25 #24
Have you received my mail?
Avatar billede dl Nybegynder
24. november 2004 - 11:14 #25
YES, det er sådan det skal være.

hvorfor er det ikke normalt at bruge en combobox sådan?

terry >> kom med svar
Avatar billede dl Nybegynder
24. november 2004 - 11:21 #26
hvad betyder denne linie

    Me.Tarmnr.RowSource = "SELECT * FROM [TBL tarmtekst] WHERE Tarmnr LIKE '" & Me.Tarmnr.Text & "*' ORDER BY Tarmnr"
Avatar billede dl Nybegynder
24. november 2004 - 11:25 #27
er det den eneste kode du har lavet?

hvordan få du den til at skrive navnet ved siden at nr. i combobox ?

//dl
Avatar billede terry Ekspert
24. november 2004 - 11:57 #28
Hi dl
you set the column count to the number of columns you want. Then youus ethe column widths to tell how wide each column is to be 0 means not visible.

You should try using the wizard and you will get an idea.

Normally you wouldnt change the data in the combo. Once you have selected a record from the combo, then the data gets placed in the database. Now if you go changing the entries, the one in the database may not exist in the list.
It would normally be a soretd list and when you start entering data the text changes to one in the list.

hvad betyder denne linie ...
Me.Tarmnr.RowSource is where you tell the combo to get its data. In this case it is comming from a SQL "SELECT....." it could be a table or query.

Yes thats all the code I used. But you also have to change the "Auto Expand" to No.
Avatar billede dl Nybegynder
25. november 2004 - 00:47 #29
hvad med disse ord:  where, like,  order by ...

eller hvor kan jeg læse om dem  ?
Avatar billede terry Ekspert
25. november 2004 - 17:57 #30
:o)
They are part of the SQL language. You should maybe get a book on SQL as it would take me a long time to tell you
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