En Access2002-databas med en tabell "tblCD" innehållande några fält, t ex "Titel" och "SrNr" Den stanar helt enkelt för att connection objektet ej stödjer gränssnittet ADODB.Recordset. Bara ett enkelt slarvfel. Ändra till recordset. Tack Tack... men det är redan löst!Visa poster i listbox
Dessa två fält ska radas upp i en två olika listbox's på formen "lstTitel" och "lstSrNr"
koden:
Sub lstShow()
Dim constr As String
Dim con As ADODB.Connection
Dim rs1 As ADODB.Recordset
Dim rs2 As ADODB.Recordset
constr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\testmuppe\reg\cd.mdb;Persist Security Info=False" 'koppling
Set con = VBA.CreateObject("adodb.connection")
con.Open constr
Set rs1 = VBA.CreateObject("ADODB.Connection")
'stannar här! VARFÖR!!??
Set rs2 = VBA.CreateObject("ADODB.Connection")
rs1.Open "SELECT Titel FROM tblcd"
rs2.Open "SELECT SrNr FROM tblcd"
lstTitel.Clear 'rs1
lstSrNr.Clear 'rs2
While Not rs1.EOF
lstTitel.AddItem rs1("titel")
rs1.MoveNext
Wend
While Not rs1.EOF
lstCrack.AddItem rs2("srnr")
rs2.MoveNext
Wend
rs1.Close
rs2.Close
conn.Close
Set rs1 = Nothing
Set rs2 = Nothing
Set conn = Nothing
End Sub
Progget stannar alltså vid raden
Set rs1 = VBA.CreateObject("ADODB.Connection")
VARFÖR??
finns det kanske något lättare sätt att visa ett fälts poster i en listbox!?Sv: Visa poster i listbox
Men varför använder du CreateObject och inte New?
Jag skulle skrivit:
<code>
Sub lstShow()
Dim constr As String
Dim con As ADODB.Connection
Dim rsTemp As ADODB.Recordset
constr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\testmuppe\reg\cd.mdb;Persist Security Info=False" 'koppling
Set con = New ADODB.Connection
con.Open constr
Set rsTemp = New ADODB.Recordset
rsTemp.Open "SELECT SrNr, Titel FROM tblcd", con
lstTitel.Clear
lstSrNr.Clear
Do Until rsTemp.EOF
lstTitel.AddItem rs1("titel")
lstCrack.AddItem rs2("srnr")
rsTemp.MoveNext
Loop
rsTemp.Close
Set rsTemp = Nothing
conn.Close
Set conn = Nothing
End Sub
</code>Sv: Visa poster i listbox
Nu ska jag se vilken lösning som är bäst!
Tack!
mvh Filly