webForumDet fria alternativet

Felkod 438 (recordset)

.NET

8 svar · 446 visningar · startad av cefalk

Medlem sedan juni 2000278 inlägg
Frågan#1

Hej!

Jag försöker köra följande kod:

<font size="1" face="Verdana, Arial, Helvetica, sans-serif">Kod:<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#666600">

Set objConn = CreateObject("ADODB.Connection")
objConn.Open ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Windows2000\Joakim\VisualBasic\db.mdb")
Set dbs = CreateObject("ADODB.Recordset")
Set dbs.ActiveConnection = objConn

Dim rst As Recordset

Set rst = dbs.OpenRecordset("Select * From MinTabell;")

rst.Close

objConn.Close

Run-time error: 438
Object dosen´t support this property or method

Vad har jag gjort för fel?????

Hur lägger jag in App.Path i sökvägen till db´n?

Medlem sedan maj 2000194 inlägg
#2

Du har nog inte satt någon referens till ADO.
Gå in i References i Projectmenyn och bocka för Microsoft ActiveX Data Objects 2.1 Library så skall det nog funka sedan.

Mvh
/SB

Medlem sedan juni 2000278 inlägg
#3

Den är förbockad, det är version
"Microsoft ActiveX Data Objects 2.6 Library" som jag har. Jag har försökt allt, men inget fungerar....

Medlem sedan maj 2000194 inlägg
#4

Jag tror inte att version 2.6 har stöd för Jet. Prova med att använda en tidigare version (2.5 eller 2.1) om det finns en sådan i din lista. Annars så måste du skriva en annan kopplingssträng. Tyvärr vet jag inte i detta nu hur en sådan skall se ut...

Medlem sedan dec. 19991 072 inlägg
#5

Eftersom du instansierar objektet med "late-binding" så behöver du ingen referens till ADO över huvudtaget, det är bara när du använder "early-binding". Skillnaden är alltså:

Early:
<font size="1" face="Verdana, Arial, Helvetica, sans-serif">Kod:<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#666600">
dim rsObj as adodb.recordset
set rsObj = new adodb.recordset

Late:
<font size="1" face="Verdana, Arial, Helvetica, sans-serif">Kod:<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#666600">
dim rsObj as object
set rsObj = createobject("adodb.recordset")

Earlybinding är det som är snabbast och enklast att arbeta med. Den inkluderar då typbibliotek från den referens du sätter.

Latebinding fungerar så att VB letar i registret efter "ADODB.recordset" och hittar där en hänvisning till vilken DLL som ska användas.

Stödet för Jet ligger inte i ADO utan i vilken provider du använder för att koppla dig mot databasen, i detta fallet OLEDB, som stödjer JET.

Eftersom du använder OLEDB med ADO ska du använda "open" för att köra ett recordset. (om du använder early-binding så får du alltid upp en lista på tillgängliga objekt)
<font size="1" face="Verdana, Arial, Helvetica, sans-serif">Kod:<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#666600">
set rst = dbs.open("select * from MinTabell")

Jag rekommenderar dig dock att använda early-binding med dina objekt (om du inte ska återanvända samma objekt-variabel till flera olika objet förstås).

Hoppas det hjälper!

------------------
Fredrik Klarqvist
f.klarqvist@spray.se
http://server.webwerkstaden.se/fredde/

[Redigerat av fredrik den 07 sep 2001]

Medlem sedan juni 2000278 inlägg
#6

Tack för ditt svar, men nu är det så att jag rörde till allting....

Kan du inte lägga ut en liten kodsnutt till mig där hela rasket är med. Då enda från början med connect och allt annat som ska vara med. Så kanske det blir lättare för mig att se helheten i det hela.

Medlem sedan dec. 19996 721 inlägg
#7

<font size="1" face="Verdana, Arial, Helvetica, sans-serif">Kod:<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#666600">
Set objConn = CreateObject("ADODB.Connection")
objConn.Open ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Windows2000\Joakim\VisualBasic\db.mdb")
Set rst = CreateObject("ADODB.Recordset")
Set rst.ActiveConnection = objConn
rst.Open "Select * From MinTabell;"
rst.Close

objConn.Close

------------------
/emission
If you see someone without a smiley, give them your colon.

Medlem sedan juni 2000278 inlägg
#8

Tack för hjälpen nu fungerar det skitbra.

En annan liten fråga. Vad behöver den datorn installerat för att man ska kunna köra ett program med databaskopplingar?

Medlem sedan dec. 19996 721 inlägg
#9

Den behöver ADO, som installeras med mdac_typ.exe. www.microsoft.com/data

280 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
142 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
145 ms — ändringar (db)