Avatar billede mundt Nybegynder
17. september 2002 - 15:13 Der er 10 kommentarer og
2 løsninger

Begrænsning på linier i listbox

Jeg har behov for at få vist fra ca. 80000 rækker data og opefter på min form. På nuværende tidspunkt benytter jeg en listbox, som jeg lige har fundet ud af ikke kan vise alle 80000 rækker. Er det noget man kan regulere eller er der begrænsninger på hvor meget en listbox kan vise?
Avatar billede moses Praktikant
17. september 2002 - 15:20 #1
Hvofro bruger du en listbox til så store mængder data. Det bliver da ret uoverskueligt !!!

Brug istedet et Datagrid - Eventuelt kun med én kolonne.
Avatar billede mundt Nybegynder
17. september 2002 - 20:57 #2
Overskueligheden er sådan set OK - men du kan have ret i at et Datagrid ville have bedre effekt. Problemet er bare at edb-systemet jeg laver er til medicinalindustrien, hvor systemudvikling er langsommelig. At samme grund ville det gøre det meget lettere for mig hvis jeg i min Access-applikation kan nøjes med de standardkomponenter Access har. Dvs. ingen ekstra references i mine moduler, hvilket et Datagrid jo ville kræve.

Derfor spørger jeg igen  :o) - kan en listbox klare 80000 rækker og gerne mere?
Avatar billede nih Novice
17. september 2002 - 21:27 #3
Hvad med en underformular i dataarkvisning ???

Niels
Avatar billede mundt Nybegynder
17. september 2002 - 23:22 #4
Det er også en mulighed - men det smarte med en listbox er at man dynamisk kan ændre dens rowsource direkte med angivelse af en tekststreng. Jeg vil gerne undgå overhovedet at have nogle "fysiske" forespørgsler i min db.

Min kode hvor jeg definerer rowsource ser ud som følger:

    'Set SQL string to specify all tags fra TagData
    strSQL = "SELECT DISTINCT TagData.TagName FROM TagData;"
    'Update listbox
    lstTags.RowSource = strSQL

Jeg mener ikke at man med en underformular kan ændre objectsource med en SQL-sætning direkte. Så vidt jeg husker skal det være en "fysisk" tabel eller forespørgsel.
Hvis jeg husker forkert, eller I har andre gode forslag så skriv endelig igen.

mvh Mundt
Avatar billede nih Novice
18. september 2002 - 07:48 #5
Du kan ændre recordsouce på underform således:
Private Sub Kommandoknap1_Click()
  Me.Ufrm.Form.RecordSource = "select * from tabel1"
  Me.Ufrm.Form.Requery
End Sub

'Ufrm' er bavnet på objektet underform på hovedformen og IKKE nødvendigvis navnet på din underform.

Niels
Avatar billede nih Novice
18. september 2002 - 08:03 #6
bavnet = navnet
Avatar billede mundt Nybegynder
18. september 2002 - 08:21 #7
Er Ufrm ikke navnet på underformen? Når jeg skriver Me. er det eneste som identificerer underformen navnet.

Jeg har lavet en subform og navngivet den subfrm. Herefter gør jeg følgende:

    Me.subfrm.Form.RecordSource = strSQL
    Me.subfrm.Form.Requery

Når jeg afvikler koden får jeg følgende fejl:

The expression you entered refers to an object that is closed or doesn't exist.

Nogen forslag?
Avatar billede nih Novice
18. september 2002 - 08:29 #8
er der data i din subform før du afvikler koden ?
Avatar billede mundt Nybegynder
18. september 2002 - 08:32 #9
Nej
Avatar billede nih Novice
18. september 2002 - 08:36 #10
Skal der ikke være det ??
Din underform skal jo oprettes som en alm form, her skal der indsættes felter bundet til de felter der er i din sql.

prøv at sætte din sql direkte ind i underformens recordsource. -Altså når underformen er åbnet for sig selv.
Avatar billede mundt Nybegynder
19. september 2002 - 10:16 #11
Kontrollen med de 80000 rækker i skal man også kunne markere udvalgte rækker. Kunden systes bedst om listboksen og har accepteret at den kun kan vise rækker svarende til en integers størrelse.

Tak for hjælpen - gode forslag?
Avatar billede nih Novice
19. september 2002 - 10:26 #12
Takker for point.
Kan nu ikke forstå at du ikke fik den underformular til at virke.

mht. listboxe har jeg, for at begrænse mængden af data, brugt flg. SQL:

SELECT TOP 10 *
FROM Tabel
WHERE ID Not In (SELECT TOP 20 ID FROM TAbel order by [etAndetFelt])
ORDER BY [etAndetFelt]);

Ved dynamisk at ændre tallet '20' viser listen 10 poster ad gangen (i dette tilfælde 21 - 30)

Niels
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