Avatar billede digitalan Nybegynder
27. maj 2002 - 11:23 Der er 16 kommentarer og
1 løsning

FlereMarkering i listbox

Hej

Jeg har brug for at kunne markere flere måneder i en listboks i en formular og få dem gemt. Ligeledes skal markeringerne vises igen, når posten hentes igen i formularen.

Aktuelt er der tale om at kunne markere flere blomstringsmåneder i en blomsterdatabase. Jeg har ikke lavet relationer af hensyn til en senere fritekstsøgning i basen.

Hvordan laver jeg lige dette?
Avatar billede nih Novice
27. maj 2002 - 12:28 #1
Det kommer meget an åpå din tabelstruktur.

Jeg har et eks. (et eller andet sted) der går på en mange til mange relation

Du skal have en tabel over blomster (blomstId, osv)
En over måneder (MndId, Navn)
En over relationen BlomstringsMnd: (blomstId, MndId)

Herefter skal din listbox reagere på et ændret BlomstId i din form, og markere de måneder i listen der er i tabelen blomstringsMnd.

Skal jeg prøve at finde et eks. eller er dette nok ???
Niels
Avatar billede digitalan Nybegynder
27. maj 2002 - 12:32 #2
Prøv evt. lige at sende et eksempel.
Alan
Avatar billede nih Novice
27. maj 2002 - 12:44 #3
Sub opdaterLstMnd()
    Dim i As Integer
    Dim lstMnd As Integer, BlomstId As Integer
    BlomstId = Me.[BlomstId]
    For i = 1 To lstMnd.ListCount
'første række i listen = 1 Hvis du anvender overskrifter
      lstId = lstMnd.Column(0, i)
        If malId <> DLookup("[BlomstId]", _
                "BlomstringsMnd", _
                "[MndId] = " & lstId & _
                " AND [BlomstId] = " & BlomstId) Then
            lstMnd.Selected(i) = False
        Else
          lstMnd.Selected(i) = True
        End If
    Next i
End Sub

I formen onCurrent ligger så :
Private Sub Form_Current()
  opdaterLstMnd
End Sub

Niels
Avatar billede nih Novice
27. maj 2002 - 12:49 #4
lstMnd = lstMnd.Column(0, i)
        If blomstId <> DLookup("[BlomstId]",

Der er lige nogle variable jeg ikke fik omdøbt

Niels
Avatar billede nih Novice
27. maj 2002 - 13:53 #5
Her er én kode:
3 tabeler :
  tblBlomst(blomstId, navn)
  tblBlomsting (blomstId, MndId)
  tblMnd (MndId, MndNavn)
1 form med:
bygger på tblBlomst
listbox (lstMnd, flerMarkering = simpel)
textbox med blomstNavn

Option Compare Database
Option Explicit

Sub opdaterLstMnd()
    Dim i As Integer
    Dim IntmndID As Integer

    For i = 1 To lstMnd.ListCount - 1
'første række i listen = 1 Hvis du anvender overskrifter
      IntmndID = lstMnd.Column(0, i)
        If Me!BlomstId <> Nz(DLookup("[BlomstId]", _
                "tblBlomstring", _
                "[MndId] = " & IntmndID & _
                " AND [BlomstId] = " & Me!BlomstId), -1) Then
            lstMnd.Selected(i) = False
        Else
          lstMnd.Selected(i) = True
        End If
    Next i
End Sub


Private Sub Form_Current()
  opdaterLstMnd
End Sub

Private Sub lstMnd_Click()
  DoCmd.RunSQL "DELete * FROM tblBlomstring WHERE BlomstId = " & _
  Me!BlomstId
 
  Dim StrSql As String
  Dim i As Integer
 
  StrSql = "INSERT INTO tblBlomstring (blomstId, mndId) Values (" & Me!BlomstId & ", "
 
  For i = 1 To lstMnd.ListCount - 1
    If lstMnd.Selected(i) = True Then
      DoCmd.RunSQL StrSql & lstMnd.Column(0, i) & ")"
    End If
  Next i
 
  opdaterLstMnd

End Sub

mvh Niels
(det duer ikke lige at oversætte fra ét projekt til et andet)
Avatar billede nih Novice
27. maj 2002 - 13:57 #6
Hvis du har en mail, kan jeg sende dig db'en
Avatar billede digitalan Nybegynder
27. maj 2002 - 14:17 #7
Hej Niels

Du skal nok få dine points, men kan du ikke lige lægge basen her: alan@pmc.odense.dk

mvh.

Alan
Avatar billede nih Novice
27. maj 2002 - 21:21 #8
Takker får pts.

Kan du få det til at virke

Niels
Avatar billede digitalan Nybegynder
28. maj 2002 - 07:55 #9
Hej Niels
Det virker fint. Jeg kan ikke helt overskue konsekvensen for mit projekt, men nu er jeg ihvertfald godt på vej.
Tak for hjælpen.
Alan
Avatar billede skpoder Nybegynder
29. august 2002 - 17:37 #10
Hej Niels,
Jeg har med stor interesse siddet et stykke tid og kæmpet med et problem der ligner Alans vedr. MulitiSelect fra en Listboks til en anden. Hvis muligt vil jeg meget gerne se den eksempel-db du sendte til Alan. du skal nok blive betalt i points. adresse: sk.poder@mail1.stofanet.dk

Med venlig hilsen

Søren
Avatar billede nih Novice
30. august 2002 - 08:26 #11
sendt.
Avatar billede skpoder Nybegynder
30. august 2002 - 08:30 #12
Hej Niels,

Mange tak! Nu vil jeg lige se om jeg kan få det til at virke så
jeg kan komme videre med mit projekt!
Avatar billede skpoder Nybegynder
30. august 2002 - 20:32 #13
Hej Niels,

Endnu en gang tak for eksempel-db'en. Det virker jo perfekt. Jeg har dog ændret den en smule så de valge poster kommer frem i en anden listboks, men jeg har lige et spørgsmål som du måske selv har overvejet. Når man sletter en post(I dit eksempel en måned i mit et musikinstrument) så sletter man alle poster! Ved en overskuelig mængde data er dette ikke det helt store problem, men ved store mængde data eller i det tilfælde hvor de indtastede værdier skal bruges senerehen er det nok ikke så hensigtsmæssigt i længden. Problemet ligger i (tror jeg):
DoCmd.RunSQL "DELETE * FROM TBLORKESTERMUSIKERINSTRUMENT WHERE ORKESTERMUSIKERID = " & Me!lstSpiller & ""

Kan den modifiseres så den KUN sletter den aktuelle post på listen?

MvH

SK. Poder
Avatar billede skpoder Nybegynder
06. september 2002 - 08:47 #14
Hej Niels
Mht.  mit lille problem med de to listboke er det ikke så lille endda. Jeg kan simpelthen ikke få den til at slette en post. Jeg ved ikke om du har fundet en løsning på problemet, men under alle omstændighder hr jeg oprettet et spørgsmål med  titlen "Slette mange til mange relation fra en listboks". Jeg håber du har tid til at kigge forbi og evt. hente nogle points.

MvH

SK Poder
Avatar billede nih Novice
06. september 2002 - 11:59 #15
Sorry - Jeg havde helt glemt dig.

prøv at sende en testdb til mig: nih@mail1.stofanet.dk

Niels
Avatar billede skpoder Nybegynder
31. oktober 2002 - 19:11 #16
Hej Niels,

Det er mig der undskylder - jeg havde ikke lige set at du har besvaret mit indlæg. Jeg har sendt dig en mail med nogle oplysninger. Jeg håber at det kan være til en hjælp.


Søren
Avatar billede skpoder Nybegynder
17. november 2002 - 11:24 #17
Hej Niels,

JEg fandt en løsning på problemet, men mange tak for din hjælp!
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