Jag har nu i flera dagar försökt ändra i mitt program utan att lyckas. Jag har tidigare använt en ADODC som källa till en MSHFlexgrid. Nu vill jag istället anvnda en av Andreas H rekommenderad metod. Den går ut på att med hjälp av TextMatrix stega sig fram i griden och fylla med data som hämtas från en Accessdatabas. Kan det var null som strular? Tack Andreas! Efter att jag gjort justeringen för att hantera Null fungerade den här delen precis som jag hade tänkt mig. Oooo vad jag har fundeat på detta, men nu är det löst. Jag kom på det på egen hand. När man dimmar I måste man göra I till Long och inte som jag gjort, till Integer. Använder man Integer kan bara I-värden på upp till drygt 32500 användas. Dimmar man som Long kan I-värden på mer än 2 miljoner användas.Problem med inläsning av data med TextMatrix
Märkligt nog kan jag bara fylla vissa fält av de sammanlagt 13 jag har. Det är fyra stycken fält, som så fort jag har dem med, leder till fel OCH jag kan inte förstå vad det är som är fel.
Är det någon som kan se något ffel på koden nedan, eller tipsa om åtgärder.... är jag mycket tacksam (De fält som inte fungerar är: NormEfternamn, NormPlats, Norm_församling, Mål_nr)
I General definierar jag variablerna:
Dim fldLöpnr As ADODB.Field
Dim fldFEnamnTitel As ADODB.Field
Dim fldPlatsFörsamling As ADODB.Field
Dim fldNorm_förnamn As ADODB.Field
Dim fldNormEfternamn As ADODB.Field
Dim fldNorm_titel As ADODB.Field
Dim fldNormPlats As ADODB.Field
Dim fldNorm_församling As ADODB.Field
Dim fldTing_dag As ADODB.Field
Dim fldTing_typ As ADODB.Field
Dim fldMål_nr As ADODB.Field
Dim fldMål_typ As ADODB.Field
Dim fldMål_referat As ADODB.Field
I Form_Load event har jag följande kod:
Set cn = New ADODB.Connection
If Right$(strAp, 1) = "\" Then
cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strAp & "Medelstd.mdb;Persist Security Info=False"
Else
cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strAp & "\Medelstd.mdb;Persist Security Info=False"
End If
cn.Open
Set RS = New ADODB.Recordset
RS.CursorLocation = adUseClient
strSQL(13) = "SELECT * FROM Domboken_L0 ORDER BY Ting_dag"
RS.Open strSQL(13), cn
Set fldLöpnr = RS("Löpnr")
Set fldFEnamnTitel = RS("FEnamnTitel")
Set fldPlatsFörsamling = RS("PlatsFörsamling")
Set fldNorm_förnamn = RS("Norm_förnamn")
Set fldNormEfternamn = RS("NormEfternamn")
Set fldNorm_titel = RS("Norm_titel")
Set fldNormPlats = RS("NormPlats")
Set fldNorm_församling = RS("Norm_församling")
Set fldTing_dag = RS("Ting_dag")
Set fldTing_typ = RS("Ting_typ")
Set fldMål_nr = RS("Mål_nr")
Set fldMål_typ = RS("Mål_typ")
Set fldMål_referat = RS("Mål_referat")
MSHFlexGrid1.Cols = 13
MSHFlexGrid1.Rows = RS.RecordCount
MSHFlexGrid1.Col = 0
MSHFlexGrid1.Row = 0
For I = 0 To 5
MSHFlexGrid1.TextMatrix(I, 0) = fldLöpnr.Value
MSHFlexGrid1.TextMatrix(I, 1) = fldFEnamnTitel.Value
MSHFlexGrid1.TextMatrix(I, 2) = fldPlatsFörsamling.Value
MSHFlexGrid1.TextMatrix(I, 3) = fldNorm_förnamn.Value
MSHFlexGrid1.TextMatrix(I, 4) = fldNormEfternamn.Value
MSHFlexGrid1.TextMatrix(I, 5) = fldNorm_titel.Value
MSHFlexGrid1.TextMatrix(I, 6) = fldNormPlats.Value
MSHFlexGrid1.TextMatrix(I, 7) = fldNorm_församling.Value
MSHFlexGrid1.TextMatrix(I, 8) = fldTing_dag.Value
MSHFlexGrid1.TextMatrix(I, 9) = fldTing_typ.Value
MSHFlexGrid1.TextMatrix(I, 10) = fldMål_nr.Value
MSHFlexGrid1.TextMatrix(I, 11) = fldMål_typ.Value
MSHFlexGrid1.TextMatrix(I, 12) = fldMål_referat.Value
RS.MoveNext
Next
Set fldLöpnr = Nothing
Set fldFEnamnTitel = Nothing
Set fldPlatsFörsamling = Nothing
Set fldNorm_förnamn = Nothing
Set fldNormEfternamn = Nothing
Set fldNorm_titel = Nothing
Set fldNormPlats = Nothing
Set fldNorm_församling = Nothing
Set fldTing_dag = Nothing
Set fldMål_nr = Nothing
Set fldTing_typ = Nothing
Set fldMål_typ = Nothing
Set fldMål_referat = Nothing
RS.Close
Set RS = Nothing
MSHFlexGrid1.ColWidth(0) = 0
MSHFlexGrid1.ColWidth(1) = 4000
MSHFlexGrid1.ColWidth(2) = 3000
MSHFlexGrid1.ColWidth(3) = 0
MSHFlexGrid1.ColWidth(4) = 0
MSHFlexGrid1.ColWidth(5) = 0
MSHFlexGrid1.ColWidth(6) = 0
MSHFlexGrid1.ColWidth(7) = 0
MSHFlexGrid1.ColWidth(8) = 1000
MSHFlexGrid1.ColWidth(9) = 500
MSHFlexGrid1.ColWidth(10) = 500
MSHFlexGrid1.ColWidth(11) = 1500
MSHFlexGrid1.ColWidth(12) = 0Sv: Problem med inläsning av data med TextMatrix
<code>
Set cn = New ADODB.Connection
If Right$(strAp, 1) = "\" Then
cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strAp & "Medelstd.mdb;Persist Security Info=False"
Else
cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strAp & "\Medelstd.mdb;Persist Security Info=False"
End If
cn.Open
Set RS = New ADODB.Recordset
RS.CursorLocation = adUseClient
strSQL(13) = "SELECT * FROM Domboken_L0 ORDER BY Ting_dag"
RS.Open strSQL(13), cn
Set fldLöpnr = RS("Löpnr")
Set fldFEnamnTitel = RS("FEnamnTitel")
Set fldPlatsFörsamling = RS("PlatsFörsamling")
Set fldNorm_förnamn = RS("Norm_förnamn")
Set fldNormEfternamn = RS("NormEfternamn")
Set fldNorm_titel = RS("Norm_titel")
Set fldNormPlats = RS("NormPlats")
Set fldNorm_församling = RS("Norm_församling")
Set fldTing_dag = RS("Ting_dag")
Set fldTing_typ = RS("Ting_typ")
Set fldMål_nr = RS("Mål_nr")
Set fldMål_typ = RS("Mål_typ")
Set fldMål_referat = RS("Mål_referat")
MSHFlexGrid1.Cols = 13
MSHFlexGrid1.Rows = RS.RecordCount
MSHFlexGrid1.Col = 0
MSHFlexGrid1.Row = 0
For I = 0 To RS.RecordCount
MSHFlexGrid1.TextMatrix(I, 0) = "" & fldLöpnr.Value
MSHFlexGrid1.TextMatrix(I, 1) = "" & fldFEnamnTitel.Value
MSHFlexGrid1.TextMatrix(I, 2) = "" & fldPlatsFörsamling.Value
MSHFlexGrid1.TextMatrix(I, 3) = "" & fldNorm_förnamn.Value
MSHFlexGrid1.TextMatrix(I, 4) = "" & fldNormEfternamn.Value
MSHFlexGrid1.TextMatrix(I, 5) = "" & fldNorm_titel.Value
MSHFlexGrid1.TextMatrix(I, 6) = "" & fldNormPlats.Value
MSHFlexGrid1.TextMatrix(I, 7) = "" & fldNorm_församling.Value
MSHFlexGrid1.TextMatrix(I, 8) = "" & fldTing_dag.Value
MSHFlexGrid1.TextMatrix(I, 9) = "" & fldTing_typ.Value
MSHFlexGrid1.TextMatrix(I, 10) = "" & fldMål_nr.Value
MSHFlexGrid1.TextMatrix(I, 11) = "" & fldMål_typ.Value
MSHFlexGrid1.TextMatrix(I, 12) = "" & fldMål_referat.Value
RS.MoveNext
Next
Set fldLöpnr = Nothing
Set fldFEnamnTitel = Nothing
Set fldPlatsFörsamling = Nothing
Set fldNorm_förnamn = Nothing
Set fldNormEfternamn = Nothing
Set fldNorm_titel = Nothing
Set fldNormPlats = Nothing
Set fldNorm_församling = Nothing
Set fldTing_dag = Nothing
Set fldMål_nr = Nothing
Set fldTing_typ = Nothing
Set fldMål_typ = Nothing
Set fldMål_referat = Nothing
RS.Close
Set RS = Nothing
MSHFlexGrid1.ColWidth(0) = 0
MSHFlexGrid1.ColWidth(1) = 4000
MSHFlexGrid1.ColWidth(2) = 3000
MSHFlexGrid1.ColWidth(3) = 0
MSHFlexGrid1.ColWidth(4) = 0
MSHFlexGrid1.ColWidth(5) = 0
MSHFlexGrid1.ColWidth(6) = 0
MSHFlexGrid1.ColWidth(7) = 0
MSHFlexGrid1.ColWidth(8) = 1000
MSHFlexGrid1.ColWidth(9) = 500
MSHFlexGrid1.ColWidth(10) = 500
MSHFlexGrid1.ColWidth(11) = 1500
MSHFlexGrid1.ColWidth(12) = 0
</code>Sv: Problem med inläsning av data med TextMatrix
Emellertid dyker det som alltid upp ett nytt problem. Nu kan jag bara ladda ner ca 32500 poster. Försöker jag ladda ner fler uppstår ett fel. Jag har ca 90000 poster som ska laddas ner.
Det är loopens första rad som felmarkeras.
For I=0 to 32500 går bra men
For I=0 to RS.Recordcount felar direkt liksom t ex
For I=0 to 33000
Vad kan detta bero på?Sv: Problem med inläsning av data med TextMatrix
Så enkelt var det!