webForumDet fria alternativet

Fel: Object variable or With block variable not set

2 svar · 206 visningar · startad av Vide

VideMedlem sedan dec. 19998 577 inlägg
#1

Tjenare,

Efter att ha slitit av nästan allt mitt hår vänder jag mig nu till wF för hjälp...

Jag har en ActiveX-komponent med några klasser...

Relaterade funktioner funktioner som anropas när jag får felmeddelande är dessa:

DatabaseClass:

Private strDB As String
Private objConnection As Connection

Private Sub Class_Initialize()
  SetDB = "xxx"
  openDatabase = 1
End Sub

Public Property Get GetDB() As String
  GetDB = strDB
End Property

Public Property Let SetDB(strDBString As String)
  strDB = strDBString
End Property

Public Function openDatabase() As Integer
  Set objConnection = New ADODB.Connection
  objConnection.Open strDB
  openDatabase = 1
End Function

Public Function getDatabase() As Connection
  getDatabase = objConnection
End Function

Public Function getRecordset(objCon As ADODB.Connection, strSQL As String) As ADODB.Recordset
  Set getRecordset = objCon.Execute(strSQL)
End Function

UserClass:

Private intUserId As Integer
Private rsUser As Recordset
Private rsAgUser As Recordset
Private clsDB As DatabaseClass

Private Sub Class_Initialize()
  Set clsDB = New DatabaseClass
End Sub

Public Property Get GetUserId() As Integer
  GetUserId = intUserId
End Property

Public Property Let SetUserId(ByVal intNewUserId As Integer)
  intUserId = intNewUserId
End Property

Public Function InitUser() As Integer
  If Len(intUserId) > 0 Then
    Dim strSQL As String
  
    strSQL = "select * from tblUsers where UserId = " & intUserId
    Set rsUser = clsDB.getRecordset(clsDB.getDatabase(), strSQL)
    
    strSQL = "select count( message ) as agCount from tblMessages where UserId = " & intUserId
    Set rsAgUser = clsDB.getRecordset(clsDB.getDatabase(), strSQL)
    InitUser = 1
  Else
    InitUser = 0
  End If
End Function

Och jag får alltså felmeddelandet:
Object variable or With block variable not set

När jag kör denna koden (i ASP):
set clsUser = createobject( "SweQuake.UserClass" )
clsUser.SetUserId = 3
clsUser.InitUser <-- Felmeddelande

InitUser ropar på getRecordset och getDatabase ifrån DatabaseClass

Så, har någon lust att hjälpa mig med felsökningen innan jag sliter av resten av håret...

Mvh, Vide

@ndersMedlem sedan juni 200032 969 inlägg
#2

En liten gissning:

Public Function getDatabase() As Connection
  [b]Set [/b]getDatabase = objConnection
End Function

Mvh,

VideMedlem sedan dec. 19998 577 inlägg
#3

En jäkligt bra gissning... :D

Tack @!!

Nu är det bara att gå till frizzan och göra det bästa av vad som är kvar av håret... :e

131 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)