Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Laufzeitfehler 91 - Objektvariable oder With-Blockvariable nicht festgelegt

365 views
Skip to first unread message

Stefan Siemoneit

unread,
Jul 4, 2001, 8:44:27 AM7/4/01
to
hi !

ich habe ein kleines programm in vb 6.0 pro geschrieben, welches mit dem
datensteuerelement auf eine dbase-datenbank zugreifen soll. soweit sogut.
jeglicher versuch, in der datenbank zu positionieren mittels
data1.recordset.movefirst, -movenext usw. erzeugen folgende fehlermeldung :

------------------------

Laufzeitfehler 91 -
Objektvariable oder With-Blockvariable nicht festgelegt

------------------------

ich suche schon seit tagen dieses problem - finde es aber nicht.

kann mir hierzu jemand einen tipp geben ??

besten dank.

gruß, stefan siemoneit

Christian Moser

unread,
Jul 4, 2001, 9:22:16 AM7/4/01
to
Hi

Da stimmte was mit dem Recordset net.
etwas mehr code und ein paar angaben zur datenbank wären hilfreich...

grüsse chris

Stefan Siemoneit

unread,
Jul 4, 2001, 9:46:29 AM7/4/01
to
ich habe auf dem haupt-formular (frmMain) ein Datensteuerelement abgelegt.
in den properties habe ich festgelegt :
(Name) = KUST
Connect = dBase 4
DatabaseName = Pfad zur Datei
DefaultCursorTyp = 1 ODBC
DefaultTyp = 2 JET verwenden
RecordSource = KUST

unter Form - Load habe ich folgendes stehen :

Private Sub Form_Load()

Dim RecordLen As Integer
Dim ULastRecord As Integer
Dim UCurrentRecord As Integer
Dim KLastRecord As Integer
Dim KCurrentRecord As Integer
Dim VENR As String

VENR = KUST.Recordset.Fields("VENR").Value 'Variable VENR soll mit Inhalt
des Feldes VENR gefüllt werden'

KUST.Recordset.MoveLast
KLastRecord = KUST.Recordset.RecordCount
KUST.Recordset.MoveFirst
KCurrentRecord = 1

If KCurrentRecord < KLastRecord Then
....
....
KUST.Recordset.MoveNext

End If

Close #1, #2
End Sub


ich habe den code etwas gekürzt.
an den stellen, wo ich recordset-befehle verwende, erhalte ich die
fehlermeldungen.

was mache ich falsch ??

danke für eure hilfe.

"Christian Moser" <christi...@softtech.ch> schrieb im Newsbeitrag
news:#lDnR1IBBHA.1000@tkmsftngp02...

Peter Fleischer

unread,
Jul 4, 2001, 9:48:10 AM7/4/01
to
Stefan,
Dein Data1 ist nicht initialisiert, da Du bestimmt keine Control's daran
gebunden hast, die ein implizites Öffnen veranlassen und das Recordset
bereitstellen. Hänge mal ein DataGrid zur Kontrolle bereits zur
Entwurfszeit an das Data1 oder probier mal anstelle data1.recordset ein
einfaches Recordset:

Dim rs as new adodb.Recordset

rs.open "Tabelle ... s. recordsource im Data1", _
"provider= .. s. Dein Data1;data source= .. s. Dein Data1"

rs.movefirst

Peter

"Stefan Siemoneit" <stefan.s...@zzmueggekg.de> schrieb im
Newsbeitrag news:uBmikbIBBHA.1936@tkmsftngp07...

Stefan Siemoneit

unread,
Jul 4, 2001, 10:17:14 AM7/4/01
to
sorry, damit komme ich nicht weiter.

"benutzerdefinierter typ nicht definiert !"

ich habe mich mit adodb noch nicht beschäftigt. schein mir für meine
zwecke etwas überdimensioniert zu sein.

ich möchte nur auf eine dbase-datei zugreifen, positionieren un deren felder
auslesen.
mehr nicht.

hat sonst noch jemand einen rat für mich ??

danke.

"Peter Fleischer" <peter_fleis...@mail.ru> schrieb im Newsbeitrag
news:9hv6lu$15g$06$1...@news.t-online.com...

Annelie Ansel

unread,
Jul 4, 2001, 10:09:50 AM7/4/01
to
"Stefan Siemoneit" schrieb:

> ich habe den code etwas gekürzt.
> an den stellen, wo ich recordset-befehle verwende, erhalte
ich die
> fehlermeldungen.

Hallo Stefan,

überprüf mal Deine Verweise.

Bei mir taucht der Fehler auf, wenn die DAO nicht
registriert ist. :-(

Gruß Annelie

Donald Peter

unread,
Jul 4, 2001, 5:04:23 PM7/4/01
to
Stefan Siemoneit schrieb:
[gekürzt...]

> Laufzeitfehler 91 -
> Objektvariable oder With-Blockvariable nicht festgelegt
>
> ich suche schon seit tagen dieses problem - finde es aber nicht.
>
> kann mir hierzu jemand einen tipp geben ??

Hallo Stefan:
Soweit ich sehe, hast du dem Datensteuerelement (Ich nehme einmal an ein
Adodc), bisher nur die Eigenschaften festgelegt.
DataSource, ConnectionString, Cursorlocation, etc...

Wenn du aber Daten aus dem Recordset abrufen möchtest, muss erst einmal eine
Abfrage ausgeführt werden.

Private Sub Form_Load()
Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=C:\Windows.mdb;" &
_
"Persist Security Info=False"
Adodc1.RecordSource = "SELECT * FROM [System]"
'Nun wird das Recodset initialisiert, bzw aufgefrischt,
'ausgewertet, ausgeführt oder wie auch immer
Adodc1.Refresh '!!!
MsgBox Adodc1.Recordset.Fields("DLL-Müll")
End Sub

Wenn Refresh nicht wäre, hätte das Adodc1.Recordset noch immer den Wert
Nothing
Deshalb auch die Meldung Objektvariable...nicht initialisiert.

Auch möglich wäre wenn du ein offenes Recodset dem Recordset des
Datensteuerelemt zuweist:

Dim rs As new Recodset...
rs = conn.open ....
Set Adodc.Recordset = rs
'Jetzt kann mit dem Recordset gearbeitet werden
Adodc.Recordset.MoveFirst
'etc...

Ich hoffe dass ich dir so etwas helfen konnte

mfg: Donald


Peter Fleischer

unread,
Jul 5, 2001, 1:44:44 AM7/5/01
to
Stefan,
eigentlich gehören derartige Fragen in die NG
microsoft.public.de.vb.datenbank. Nachfolgend ein Codeauszug mit
Objektreferenz auf ADO2.6 und installierter Jet40SP5 zum Anzeigen der
dBase-Datei test.dbf aus dem App.Verzeichnis in einem DataGrid:

Dim cnn As ADODB.Connection
Dim rs1 As ADODB.Recordset
Dim DBPfad As String
...
DBPfad = App.Path
Set cnn = New ADODB.Connection
cnn.ConnectionString = "Provider=microsoft.jet.oledb.4.0;" & _
"data source=" & DBPfad & ";" & _
"Extended Properties=dBASE III;"
cnn.CursorLocation = adUseClient
cnn.Open
Set rs1 = New ADODB.Recordset
SQL = "SELECT * FROM [test#dbf] ;"
rs1.Open SQL, cnn, adOpenStatic, adLockOptimistic
Set DataGrid1.DataSource = rs1
...

Peter

"Stefan Siemoneit" <stefan.s...@zzmueggekg.de> schrieb im

Newsbeitrag news:#WuPVPJBBHA.2328@tkmsftngp02...
...


> ich möchte nur auf eine dbase-datei zugreifen, positionieren un deren
felder
> auslesen.
> mehr nicht.

...


0 new messages