Hejsan! Det löste sig :) jag hade helt enkelt glömt att deklarera conn och rs globalt.. Får jag komma med lite förslag?vad nu då?
Har ett problem med denna kod.
<code>
ListView1.ColumnHeaders.Clear
ListView1.ListItems.Clear
InitADO
SQLSats = "Select * From RegBarn"
RS.Open SQLSats, Conn
If Not RS.EOF Or RS.BOF Then
maxcols = RS.Fields.Count - 1
For a = 0 To maxcols
ListView1.ColumnHeaders.Add , , RS(a).Name, ListView1.Width / 5
Next
Do While Not RS.EOF
b = b + 1
Key = Chr(b + 64)
ListView1.ListItems.Add b, Key & CStr(a), RS(0)
For a = 1 To maxcols
If Not IsNull(RS(a)) Then
ListView1.ListItems.Item(b).ListSubItems.Add , , RS(a)
Else
ListView1.ListItems.Item(b).ListSubItems.Add , , "<null>"
End If
Next
RS.MoveNext
Loop
End If
RS.Close
ClearADO
</code>
allt kommer istortsätt här ifrån, pellesoft asså, och jag använder den i andra program också där det funkar perfekt men nu funkar det inte att öppna recordset:et tydligen :(
får fel på raden:
RS.Open SQLSats, Conn
Den ansluter till databasen (InitADO) utan problem..
Nån som vet vad som kan vara fel?Sv: vad nu då?
så nu funkar det :)
tack ändå!Sv: vad nu då?
* Använd For Each
* Använd vlistItem du får från add metoden
* Ska det inte var genom /maxcols istället för /5?
* Until är snyggare än While Not
* Mycket snyggare med ett prefix och primärnyckeln i tabellen som nyckel(Ersätt ID mäd rätt fältnamn)
<code>
Dim Item as listItem
Dim fldField as ADODB.Field
ListView1.ColumnHeaders.Clear
ListView1.ListItems.Clear
InitADO
SQLSats = "Select * From RegBarn"
RS.Open SQLSats, Conn
If Not RS.EOF Then
For Each fldField In RS.Fields
ListView1.ColumnHeaders.Add , , fldField.Name, ListView1.Width / maxcols
Next
maxcols = RS.Fields.Count - 1
Do Until RS.EOF
Set Item = ListView1.ListItems.Add( ,"#" & RS("ID") , RS(0) )
For a = 1 To maxcols
If IsNull(RS(a)) Then
Item.ListSubItems.Add , , RS(a)
Else
Item.ListSubItems.Add , , "<null>"
End If
Next
RS.MoveNext
Loop
End If
RS.Close
ClearADO
</code>