Avatar billede fqthjoe Nybegynder
11. september 2002 - 14:46 Der er 13 kommentarer og
1 løsning

DataGrid, vise indholdet af poster med bestemt nr.

Hej eksperter
Jeg har en lavet base med connection til en access-base.
Har følgende felter: Kassenr, indhold, kategori.
Der er så flere poster på et Kassenr. altså f.eks.
disse to poster:
Kassenr: 1  Indhold: Skruetrækker  Kategori: Værktøj
Kassenr: 1  Indhold: Søm            Kategori: Div
Når jeg så bladrer i mine poster skal DataGrid indholdet vise hvad der ligger i den aktuelle post's kassenr. og ikke alle poster.
Kan det lade sig gøre ?
Avatar billede fqthjoe Nybegynder
11. september 2002 - 14:57 #1
Det er i VB6.0
Avatar billede moses Praktikant
12. september 2002 - 08:59 #2
Du laver en form, med en combobox og et datagrid.
Rullegardinet på comboboxen kan du give kolonnen med Kassenr. fra din tabel i Access.
Datagrid'et får så alle data fra denne tabel og skal så have tændt for sin filter funktion med kassenr fra comboboxen.
Så viser datagrid'et kun den ene kasses indhold.
Avatar billede fqthjoe Nybegynder
12. september 2002 - 11:44 #3
Kan du forklare lidt mere om hvordan jeg kan filtrere, så det kun er kassen indhold der vises ?, Jeg kan kun se alle min kasser listet op og deres inhold. Men så gentages kasserne jo desværre...
Avatar billede moses Praktikant
12. september 2002 - 15:25 #4
ja

Før alt dette har du sat:

Dim MyRecordset as ADODB.Recordset
+åbnet en tabel eller query

Datagrid1.DataSource = MyRecordset


I change event'et for din combobox, ændrer du sourcens filter på følgende måde:

MyRecordset.Filter "Kassenr = " & Combo1.Text

hvor
MyRecordset er et recordset med henvisning til den tabel eller query du skal bruge
Combo1 er Combobox'en
Avatar billede fqthjoe Nybegynder
13. september 2002 - 19:42 #5
Sorry, men kan desværre ikke finde ud af det. Mit Kassenr. felt er ikke en ComboBox kun et "text-felt" hvor jeg selv skriver kassenr. Skal jeg lave det om til en comboboks ?
Jeg bruger Adodc1.Recordset. Er det så noget andet ?
Ville blive meget glad hvis det kan lykkes.
Avatar billede fqthjoe Nybegynder
13. september 2002 - 19:44 #6
Eller skal jeg lave det i en "Listbox" ?
Avatar billede moses Praktikant
16. september 2002 - 09:36 #7
Nej!
Vi taler om Visual Basic, så det er ligemeget, hvad du har defineret dit Kassefelt som ovre i Access.
Du tager en Combobox og placerer på en form ved siden af et datagrid.
hvis du ser efter på properties for denne combobox, så kan du der definere, hvor data, der vises i rullegardinet skal komme fra - og de skal komme fra din tabel og skal medtage Kassenr. feltet.
Derefter skal du gøre, som ovenfor.
Avatar billede fqthjoe Nybegynder
16. september 2002 - 12:37 #8
Ok. Har nu lavet mit DataGrid, og en ComboBox, hvor den tager Kassenr fra min tabel. Herefter: Dim MyRecordset as ADODB.Recordset - ingen fejl.
Men så skriver jeg DataGrid2.DataSource = MyRecordset
Og her kommer så fejlen:
Compile Error - Method og Data Member Not found
Og markøren for fejlen stiller sig i DataSource....
Kan du hjælpe mig videre :-) - Vil meget gerne have til at virke :-)
Avatar billede moses Praktikant
16. september 2002 - 13:57 #9
Har du åbnet for recordset'et først !

   

    MyRecordset.CursorLocation = adUseClient
    MyRecordset.CursorType = adOpenDynamic
    MyRecordset.LockType = adLockOptimistic
    MyRecordset.Open "mintabel", MyConn, , , adCmdTable
Avatar billede fqthjoe Nybegynder
16. september 2002 - 14:35 #10
Jeps, har en forbindelse aktiv i min formload, og i mit datagrid1 viser den også alle posterne (for at tjekke det køre)
Har  ændret:
Datagrid1.DataSource = MyRecordset til
SET Datagrid1.DataSource = MyRecordset
Og :
Private Sub Combo2_Change()
MyRecordset.Filter = "Kassenr" & Combo2.Text
End Sub
Men nu kommer fejlen i Myrecordset.Filter
Avatar billede moses Praktikant
16. september 2002 - 14:41 #11
MyRecordset.Filter = "Kassenr = " & Combo2.Text
Avatar billede fqthjoe Nybegynder
16. september 2002 - 14:51 #12
Okki, ændret det lige, men følgende fejl:
RunTimeError '91'
Object variable or With block variable Not Set
Avatar billede moses Praktikant
16. september 2002 - 15:05 #13
Det er fordi du ikke har brugt SET kommandoen i en af linierne, hvor du arbejder med Objekter.

Med objekter:
SET Datagrid1.DataSource = ....

Uden objekter:
MyRecordset.Open ....
MyRecordset.Filter ......


ELLER fordi du ikke har defineret NEW i oprettelsen af objektet eller ved første benyttelse af objekt variablen:

Dim MyRecordset as NEW ADODB.Recordset
ligesom ved
..... ADODB.Connection
Avatar billede fqthjoe Nybegynder
24. september 2002 - 19:48 #14
Tak for svaret :-)
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
Kurser inden for grundlæggende programmering

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

KMD A/S

Projektleder

Riskpoint A/S (Riskpoint Solutions Limited)

Senior Developer

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Solution Manager til Cyberdivisionen