webForumDet fria alternativet

Fylla en MSFlexGrid

9 svar · 218 visningar · startad av saw

sawMedlem sedan mars 20011 880 inlägg
#1

Jag försöker att fyll en MSFlexGrid1, men jag hittar inga kodexempel.

Set mittRS2 = minDB.OpenRecordset("SELECT t_Datum.datum_Id, t_Datum.Datum, t_Datum.PlaceringSv, t_Datum.PlaceringEu, t_Datum.PlaceringVärlden, t_Datum.Sång_ID From t_Datum ORDER BY t_Datum.Sång_ID ", dbOpenDynaset)
Set MSFlexGrid1.DataSource = mittRS2

Detta lyckas inte, hur skall jag göra?
Bör man inte loppa?
Om jag vill namnsätta kolumnerna?
Tacksam för svar.

InsiderMedlem sedan jan. 2000978 inlägg
#2

Om du vill fylla varje rad i flexgriden med ett recordset:

Set mittRS2 = minDB.OpenRecordset("SELECT _ t_Datum.datum_Id, t_Datum.Datum, _
 t_Datum.PlaceringSv, t_Datum.PlaceringEu, _ t_Datum.PlaceringVärlden, t_Datum.Sång_ID _
From t_Datum ORDER BY t_Datum.Sång_ID ", dbOpenDynaset)

While mittRS2.EOF = false

MSFlexGrid1.AddItem mittRS2.Fields(0) & _
vbTab & mittRS2.Fields(1) & vbTab & mittRS2.Fields(2) _
& vbTab & mittRS2.Fields(3) & vbTab & mittRS2.Fields(4) _
& vbTab & mittRS2.Fields(5)

mittRS2.MoveNext
Wend
sawMedlem sedan mars 20011 880 inlägg
#3

Tack, det fungerade, inte riktigt. den fyller inte ut alla raderna.
Den tar bara med två fält??

Private Sub Text2_Change(Index As Integer)
Set mittRS2 = minDB.OpenRecordset("SELECT  t_Datum.datum_Id, t_Datum.Datum, t_Datum.PlaceringSv, t_Datum.PlaceringEu,  t_Datum.PlaceringVärlden, t_Datum.Sång_ID From t_Datum WHERE t_Datum.Sång_ID = " & mittRS.Fields(0) & "   ORDER BY t_Datum.Sång_ID ", dbOpenDynaset)

While mittRS2.EOF = False

MSFlexGrid1.AddItem mittRS2.Fields(0) & _
vbTab & mittRS2.Fields(1) & vbTab & mittRS2.Fields(2) _
& vbTab & mittRS2.Fields(3) & vbTab & mittRS2.Fields(4) _
& vbTab & mittRS2.Fields(5)

mittRS2.MoveNext
Wend

End Sub

Jag hade tänkt att den skulle fungera så här:
Jag fyller en listbox med namnen på ett antal låtar.
när jag klickar på ett namn, så ställer sig ett antal textrutor in sig på rätt låt(fungerar), och jag får fram id osv.
När jag har fått fram det så skulle jag vilja ha MSFlexGrid att ta fram placeringarna för den låten.
Som du ser så försöker jag att gämmföra med mittRS(0), jag skall naturligtvis gämmföra med Text2(0) (textrutorna ingår i ett index), men det hjälper inte, jag får inte fram resultaten i alla fall.
Hur gör jag? :(

InsiderMedlem sedan jan. 2000978 inlägg
#4

I SQL-satsen: ...WHERE t_Datum.Sång_ID = " & mittRS.Fields(0) & " ORDER...

Skriv istället:

...WHERE t_Datum.Sång_ID ='" & Text2.Text & "'   ORDER...

Kolla oxå att du stavat rätt på fältnamnen du har i SQL-satsen.

sawMedlem sedan mars 20011 880 inlägg
#5

Tack för att du svara, men det fungerar tyvärr inte bra.
Så här har jag gjort:

Sub Fyll_Grid()
    Set mittRS2 = minDB.OpenRecordset("SELECT  t_Datum.datum_Id, t_Datum.Datum, t_Datum.PlaceringSv, t_Datum.PlaceringEu,  t_Datum.PlaceringVärlden, t_Datum.Sång_ID From t_Datum WHERE t_Datum.Sång_ID =" & Text2(0) & "   ORDER BY t_Datum.Sång_ID ", dbOpenDynaset)

While mittRS2.EOF = False

MSFlexGrid1.AddItem mittRS2.Fields(0) & _
vbTab & mittRS2.Fields(1) & vbTab & mittRS2.Fields(2) _
& vbTab & mittRS2.Fields(3) & vbTab & mittRS2.Fields(4) _
& vbTab & mittRS2.Fields(5)

mittRS2.MoveNext
Wend
Label1.Caption = "IdNr:" & Text2(0)

End Sub

Jag har lagt in en "kallning" på den under List1_Click (Fyll_Grid)
Jag vet att den får med sig IDnr. Vad som händer är att griden fylls när jag starta upp(dock enbart med datumID och datum, ingenting mera), men den reagerar inte för om man klickar i listrutan.
Vad tror du... :(

sawMedlem sedan mars 20011 880 inlägg
#6

Nu fick jag med alla fälten, men den skriver inte ut fältnamnen, hur gör man det?

Jag har också på alla sätt försökt att få griden att uppdatera sig, men den vägrar.
När jag startar applikationen så fyller den upp posten på en låt, men det går inte att få den att uppdatera en annan låt.
Mysko???

InsiderMedlem sedan jan. 2000978 inlägg
#7
Sub Fyll_Grid(song_id as String)
    Set mittRS2 = minDB.OpenRecordset("SELECT _ 
 t_Datum.datum_Id, t_Datum.Datum, t_Datum.PlaceringSv, _ 
t_Datum.PlaceringEu,  t_Datum.PlaceringVärlden, _ 
t_Datum.Sång_ID From t_Datum WHERE t_Datum.Sång_ID ='" _
&  song_id & "'   ORDER BY t_Datum.Sång_ID ", dbOpenDynaset)
::::
::::
End Sub

Private Sub List1_Click()
' Anropa subben Fyll_Grid, skicka med den valda texten i listboxen
Fyll_Grid(List1.List(List1.ListIndex))
End sub
sawMedlem sedan mars 20011 880 inlägg
#8

Tack för all hjälp.

InsiderMedlem sedan jan. 2000978 inlägg
#9

För att få namnet på ett fält skriver man, inte helt oväntat:

mittRS2.Fields(fältets_siffra).Name

sawMedlem sedan mars 20011 880 inlägg
#10

Tack, jag hade redan räknat ut det :e

125 ms totalt · 3 externa anrop · v20260731065814-full.beb2e261
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
123 ms — hämta tråd, inlägg och bilagor (db)