Avatar billede puppetmaster Nybegynder
04. april 2002 - 10:17 Der er 9 kommentarer og
2 løsninger

Fra tekstbokse til liste

Dette spørgsmål er nok mest henvendt til thomasjepsen og terry...
Jeg har en formular med 8 tekstfelter, som jeg gerne vil have "omdannet" til en liste i stedet for........Jeg kan sagtens indsætte en liste baseret på den ønskede tabel, det er der ingen problemer i.........men det søgefelt jeg har på formularen, kan jeg ikke rigtig få "koblet på".....nogen ideer?
(forventer ikke et færdigt, kørende produkt, bare et par hints til hvordan det kan gøres)

Her er hele koden fra formularen:
(den gode programmeringsskik er gået lidt fløjten... :( )

Option Compare Database

Sub Form_Current()
On Error GoTo Form_Current_Err

    'If ChildFormIsOpen() Then FilterChildForm

Form_Current_Exit:
    Exit Sub

Form_Current_Err:
    MsgBox Error$
    Resume Form_Current_Exit

End Sub


Private Sub Form_Load()
txtSøgeord = ""
txtSøgeord.Value = ""
End Sub

Private Sub Form_Open(Cancel As Integer)
Me.Filter = "KOEN = 'K'"
txtSøgeord = ""
txtSøgeord.SetFocus
End Sub

Private Sub knpLogfiler_Click()
    DoCmd.OpenForm "Logfiler"

End Sub

Private Sub knpSøg_Click()
  Me.Filter = "PNR Like '*" & Me!txtSøgeord & "*' OR FORNVN Like '*" & Me!txtSøgeord & "*' OR EFTERNVN Like '*" & Me!txtSøgeord & "*'"
  Me.FilterOn = True
  Me.txtSøgeord.SetFocus
If Me.RecordsetClone.RecordCount = 0 Then
  Me.FilterOn = False
  MsgBox "Der blev ikke fundet nogle patienter.", vbInformation
  Me.txtSøgeord.SetFocus
End If
End Sub
Private Sub knpVisAlle_Click()
  Me.FilterOn = False
  Me.txtSøgeord.SetFocus
End Sub

Sub SkiftKæde_Click()
On Error GoTo SkiftKæde_Click_Err
        OpenChildForm
        FilterChildForm
SkiftKæde_Click_Exit:
    Exit Sub

SkiftKæde_Click_Err:
    MsgBox Error$
    Resume SkiftKæde_Click_Exit

End Sub
Private Sub FilterChildForm()

    If Me.NewRecord Then
        Forms![Screening].CPR.DefaultValue = """" & Me![PNR] & """"
        Forms![Screening].DataEntry = True
    Else
        Forms![Screening].CPR.DefaultValue = """" & Me![PNR] & """"
        Forms![Screening].Filter = "[CPR] = " & """" & Me![PNR] & """"
        Forms![Screening].FilterOn = True
    End If

End Sub
Private Sub OpenChildForm()

    DoCmd.OpenForm "Screening"
End Sub
Private Sub CloseChildForm()

    DoCmd.Close acForm, "Screening"
End Sub
Private Function ChildFormIsOpen()

    ChildFormIsOpen = (SysCmd(acSysCmdGetObjectState, acForm, "Screening") And acObjStateOpen) <> False

End Function
Private Sub Kommandoknap67_Click()
On Error GoTo Err_Kommandoknap67_Click


    Screen.PreviousControl.SetFocus
    DoCmd.DoMenuItem acFormBar, acEditMenu, 10, , acMenuVer70

Exit_Kommandoknap67_Click:
    Exit Sub

Err_Kommandoknap67_Click:
    MsgBox Err.Description
    Resume Exit_Kommandoknap67_Click
   
End Sub

Private Sub Kommandoknap72_Click()
On Error GoTo Err_Kommandoknap72_Click


    Screen.PreviousControl.SetFocus
    DoCmd.FindNext

Exit_Kommandoknap72_Click:
    Exit Sub

Err_Kommandoknap72_Click:
    MsgBox Err.Description
    Resume Exit_Kommandoknap72_Click
   
End Sub

Avatar billede terry Ekspert
04. april 2002 - 11:12 #1
hi puppetmaster>not easy to find much time to help at the moment :o(

I am no quite sure I undestand the problem! You have 8 fields which I assume you are using to filter the screening form with although I cant see where these 8 fields are in your code!
why do you want it over in a list? and what do you mean with "men det søgefelt jeg har på formularen, kan jeg ikke rigtig få "koblet på".." ?
Avatar billede puppetmaster Nybegynder
04. april 2002 - 12:21 #2
Well, right now I have a CPR, Fornavn, Efternavn, Adresse, Post Nr., By, Køn og Kommune kode textboxes on the form.....I'd like them represented on a list instead...............also on the form is a searchfield called txtSøgeord, which contains, of cause, the word to search for...........but I can't seem to "connect" the txtSøgeord to the list, I mean, make it act as a filter......(does this clarify things a bit...or....?)

I want to represent it using a list, cause if you search for "Lisa" and get some 200 results, it's much easier to scroll down a list, than just "go to next post" on a form with 8 textfields....
Avatar billede nih Novice
04. april 2002 - 13:38 #3
StrSQL = "Select * from Tabel Where " _ &
  "PNR Like '*" & Me!txtSøgeord & "*' OR FORNVN Like '*" & Me!txtSøgeord & "*' OR EFTERNVN Like '*" & Me!txtSøgeord & "*'"

listbox.rowsource = strSQL
lisbox.requery

Jeg kan ikke gennemskue hele din kode, men vha en SQL kan du ændre listens source.

Niels
Avatar billede nih Novice
04. april 2002 - 13:43 #4
Private Sub listbox_Click()
  If listbox.ListCount <> 0 Then
    Dim rs As Recordset
    Set rs = Me.RecordsetClone
    rs.FindFirst "[PNR] ='" & listbox & "'"
    Me.Bookmark = rs.Bookmark
    rs.Close
  End If
End Sub

En klikevent på listen som ovenfor medfører at du går til den post i recordsettet der modsvarer listen

Niels
Avatar billede puppetmaster Nybegynder
04. april 2002 - 14:00 #5
Med koden fra dit svar af: 13:38:53, viser listen ikke noget som helst, når der søges (dog populeres listen ved åbning)
Avatar billede puppetmaster Nybegynder
04. april 2002 - 14:02 #6
sorry, det var min fejl.....der er dog andre problemer....vender tilbage snart
Avatar billede fynbohans Nybegynder
04. april 2002 - 15:42 #7
Du behøver ingen liste for at opnå det du gerne vil.
Hvis du i Detailsektion lægger alle felter på en lang række og indstiller højden
på Detaisektion til ca.samme høje som felterne og til slut ændrer Standardvisning
fra Enkeltformular til Fortløbende formularer får også en liste, som blot er mange
poster vist på skærmen samtidig.
Søgefelt og eventuelle andrer feltet anbringes i Formularhoved/fod.
Avatar billede puppetmaster Nybegynder
05. april 2002 - 08:07 #8
Fynbohans, det lyder også meget godt, men hvis jeg ikke kan dobbeltklikke på et element på listen, så ........er jeg faktisk ligevidt..... :(
Avatar billede puppetmaster Nybegynder
05. april 2002 - 08:14 #9
Og dog, måske ikke alligevel...........når jeg benytter koden fra nih, tager det rimelig lang tid før listen populeres.......... :(
Vender snart tilbage........
Avatar billede nih Novice
05. april 2002 - 12:29 #10
Hstigheds problemmerne i min kode skyldes sikkert flittig brug af 'LIKE' i SQL'en - er den meget langsommere end når du bruger filter ??????

Hvis du vil optimere din søgetid, kunne du vha en gruppebox bestemme om det er PNR, EFTERNAVN eller FORNAVN du søger på....
eller FORNAVN

mht. til fynbohans's forslag om fortløbende formularer kan du indsætte en knap på detailsektionen og bruge den istedet for dobbeltklik på en liste

Niels
Avatar billede puppetmaster Nybegynder
08. april 2002 - 11:57 #11
nih, beklager det sene svar, ja, den er en HEL del langsommere end at bruge et filter............fortløbende formularer......knap på detailsektionen.......hmmmm.........det må jeg vist lige tænke over et par min........
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