Jag försöker att fylla en MsFlexgrid dynamiskt, men stött på patrull. Hej Andreas. Varför visar den inte alla poster? Innehåller dit recordset ett Memo/PM/Text fält? Det kan det göra. Det kan ha att göra med vilken cursor du har när du öppnar recordsetet. Nja, jag fick error. De beror på att du inte använder min kod. JAg öpnar tabellen som recordset med namnet. Inte med en fråga.Fylla en MsFlexgride dynamiskt
<code>
SQL = " Select * From " & Node.text & " "
If TreeView1.SelectedItem.Index <> 0 And _
TreeView1.SelectedItem.Children <> 0 Then
Set Rst = Con.Execute(SQL)
'***********************
Do
While Not Rst.EOF
For Each fld In Rst.Fields
' Debug.Print fld.Name & _
' ": " & fld.Value
MSFlexGrid1.AddItem fld.Name & vbTab
Next i
Next fld
Rst.MoveNext
Wend
Loop Until Rst.EOF '(Rst.NextRecordset() = False)
End If
</code>
Jag får inte till det, jag ville först få in dom olika fältnamnen därefter dom olika posterna.
Någonstans så inser jag att jag är lösningen på spåret, men jag får inte till det.Sv: Fylla en MsFlexgride dynamiskt
Använd Istället "Microsoft Hierarchical FlexGrid Control 6.0". Så kan du binda det mot recordsetet:
<code>
If TreeView1.SelectedItem Is Nothing Then
ElseIf TreeView1.SelectedItem.Children <> 0 Then
SQL = " SELECT * FROM " & Node.text
Set MSHFlexGrid1.DataSource = Con.Execute(SQL)
End If
</code>Sv: Fylla en MsFlexgride dynamiskt
En god hjälp på vägen.
Felet är att den visar inte alla posterna, visst måste det ligga en lopp här?Sv: Fylla en MsFlexgride dynamiskt
Sv: Fylla en MsFlexgride dynamiskt
Vad jag bygger är en app. som jag kan leta igenom datorn efter alla mdb-filer, öppna upp dom, kolla upp egenskaperna på databasen/fälten samt öppna upp och kolla vilka poster som finns i databasen.
Alt fungerar nu, men jag var tvungen att lägga till en Adodc för att få alla posterna, annars så visades bara den sista posten.
Jag hade hopats att jag skulle klara mig utan Adodc, men icke.
Tack för din medverkan.Sv: Fylla en MsFlexgride dynamiskt
Försök istället med:
<code>
Dim rs As ADODB.Recordset
If TreeView1.SelectedItem Is Nothing Then
ElseIf TreeView1.SelectedItem.Children <> 0 Then
Set rs = New ADODB.Recordset
rs.Open Node.text, Con, adOpenStatic, adLockReadOnly, adCmdTable
Set MSHFlexGrid1.DataSource = rs
End If
</code>Sv: Fylla en MsFlexgride dynamiskt
Så här gjorde jag:
<code>
SQL = " SELECT * FROM " & Node.text
MSHFlexGrid1.Clear
Set Rs = New ADODB.Recordset
Rs.Open SQL, Con, adOpenStatic, adLockReadOnly, adCmdTable
Set MSHFlexGrid1.DataSource = Rs
</code>
Error, syntaxfel i SQL i FROM-instruktionen.
Vad tror du?Sv: Fylla en MsFlexgride dynamiskt
Prova mitt alternativ:
<code>
MSHFlexGrid1.Clear
Set Rs = New ADODB.Recordset
Rs.Open Node.text, Con, adOpenStatic, adLockReadOnly, adCmdTable
Set MSHFlexGrid1.DataSource = Rs
</code>
Eller med SQL fråga:
<code>
SQL = " SELECT * FROM " & Node.text
MSHFlexGrid1.Clear
Set Rs = New ADODB.Recordset
Rs.Open SQL, Con, adOpenStatic, adLockReadOnly
Set MSHFlexGrid1.DataSource = Rs
</code>
Du måste då ta bort adCmdTable.