Error code 91

masoud_sedighy

Registered User.
Local time
Today, 04:16
Joined
Dec 10, 2011
Messages
132
In TreeView_NodeClick according to below, for some nodes (main nodes) after node click I received "Error code 91"Or "object variable or with block variable not set"​
For other nodes, it is ok.​
In the Form_Load() event I have 3 or 4 main nodes that have 1 parent node "mc book" and each of these main node have child, now when I click on the child node the message is ok, but when I click on the main nodes, I receive error code 91.

Please help what is the problem?

Private Sub TreeView_NodeClick(ByVal selectedNode As Object)​
On Error GoTo Error_Trap​
Dim frm As Access.Form​
Dim frm2 As Access.Form​
Dim strNodeText As String​
Dim strTitlePlus As String​
MsgBox selectedNode.Parent.Parent.Parent​
MsgBox selectedNode.Text​
Set frm = Me![fsubItem].Form​
If selectedNode.Parent.Parent.Parent = "test packs" Then​
strNodeText = selectedNode.Text​
Me![txtSelectedDoc].Value = strNodeText​
frm![ItemList].RowSource = "qryTestPack_line"​
frm.Requery​
frm.ItemList.Requery​
frm.Visible = True​
Else​
frm![ItemList].RowSource = "qryTestPackage"​
frm.Requery​
frm.ItemList.Requery​
frm.Visible = True​
End If​
Error_Exit:​
Exit Sub​
Error_Trap:​
MsgBox ("Error Code:" & Err.Number & " Error Description:" & Err.Description)​
Resume Error_Exit​
End Sub

Private Sub Form_Load()​
On Error GoTo Error_Trap​
Dim objNode As Node, objNode2 As Node, strKey As String​
Dim rst As DAO.Recordset, rst2 As DAO.Recordset, intKey As Long, matchup As Long, matchTestPack As Long​
varHash = Array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J")​
With TreeView​
.Nodes.Clear​
TreeView.Nodes.Add , , "MC Book", "MC Book", 7​
'MC Book.Expanded = True​
TreeView.Nodes.Add "MC Book", tvwChild, "Item List by Unit/System", "Item List by Unit/System", 2, 1​
TreeView.Nodes.Add "Item List by Unit/System", tvwChild, "Item Systems", "Item Systems", 2, 1​
TreeView.Nodes.Add "Item List by Unit/System", tvwChild, "Test Packs", "Test Packs", 2, 1​
…..​
 
Hi,

Can you advise what the code is trying to do?

A copy of the database would also be helpful, Thanks
 
i try to load a treeview and then when i click on each node, it shows data at the right panel (list box) now loading treeview is ok but when click on the nodes, for some nodes right panel shows ok data but for some node it shows error 91 ([FONT=&quot]object variable or with block variable not set)

i tried to attach database but that is 8 mb zip file so i could not attach.

loading and selected node code event are as below.

Option Compare Database
Option Explicit
Private mp As [*clsMousePosition]
Private varHash As Variant

Private Sub Form_Load()
On Error GoTo Error_Trap
Dim objNode As Node, objNode2 As Node, strKey As String
Dim rst As DAO.Recordset, rst2 As DAO.Recordset, intKey As Long, matchup As Long, matchTestPack As Long
varHash = Array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J")
With TreeView
.Nodes.Clear

TreeView.Nodes.Add , , "MC Book", "MC Book", 7

'MC Book.Expanded = True
TreeView.Nodes.Add "MC Book", tvwChild, "Item List by Unit/System", "Item List by Unit/System", 2, 1
TreeView.Nodes.Add "Item List by Unit/System", tvwChild, "Item Systems", "Item Systems", 2, 1
TreeView.Nodes.Add "Item List by Unit/System", tvwChild, "Test Packs", "Test Packs", 2, 1
TreeView.Nodes.Add "MC Book", tvwChild, "Task Database", "Task Database", 2, 1
TreeView.Nodes.Add "Task Database", tvwChild, "Construction Tasks", "Construction Task", 2, 1
TreeView.Nodes.Add "Construction Tasks", tvwChild, "CCK-CON", "CCK", 2, 1
TreeView.Nodes.Add "Construction Tasks", tvwChild, "PIP-CON", "PIP", 2, 1
TreeView.Nodes.Add "Task Database", tvwChild, "Pre-Commissioning Tasks", "Pre-Commissioning Task", 2, 1
TreeView.Nodes.Add "Pre-Commissioning Tasks", tvwChild, "CCK-PRECOM", "CCK", 2, 1
TreeView.Nodes.Add "Pre-Commissioning Tasks", tvwChild, "STS-PRECOM", "STS", 2, 1
TreeView.Nodes.Add "Pre-Commissioning Tasks", tvwChild, "PIP-PRECOM", "PIP", 2, 1
TreeView.Nodes.Add "MC Book", tvwChild, "Dossier Status", "Dossier Status", 2, 1
TreeView.Nodes.Add "MC Book", tvwChild, "Punch List", "Punch List", 2, 1
TreeView.Nodes.Add "MC Book", tvwChild, "Search", "Search", 4
TreeView.Nodes.Add "Search", tvwChild, "Subsystem", "Subsystem", 4
TreeView.Nodes.Add "Search", tvwChild, "Test Pack", "Test Pack", 4
TreeView.Nodes.Add "Search", tvwChild, "Items", "Items", 4
TreeView.Nodes.Add "Search", tvwChild, "Tasks", "Tasks", 4
TreeView.Nodes.Add "Search", tvwChild, "Punch List-Search", "Punch List", 4

TreeView.Nodes("MC Book").Expanded = True
Set rst = CurrentDb.OpenRecordset("qrytreeview4")
If rst.RecordCount > 0 Then
While Not rst.EOF
intKey = rst.Fields("MenuID").Value
If rst.Fields("Parent") = 0 Then
Set objNode = .Nodes.Add("Item Systems", tvwChild, NumberToString(intKey), rst.Fields("Option"), 5)
objNode.Expanded = False
Else
Debug.Print (NumberToString(intKey))
Select Case rst.Fields("level") ' Evaluate Number.


Case "level2" ' Number between 1 and 5, inclusive.
matchup = 6
' The following is the only Case clause that evaluates to True.
Case "level3" ' Number between 6 and 8.
matchup = 7

Case "level1" ' Number between 6 and 8.
matchup = 9
'Case 9 To 10 ' Number is 9 or 10.
'Debug.Print "Greater than 8"
'Case Else ' Other values.
' Debug.Print "Not between 1 and 10"
End Select


Set objNode = .Nodes.Add(NumberToString(rst.Fields("Parent")), tvwChild, NumberToString(intKey), rst.Fields("Option2"), matchup)
End If
rst.MoveNext
Wend
End If

rst.Close
Set rst = Nothing


Set rst2 = CurrentDb.OpenRecordset("qrytreeview_TestPackage")
If rst2.RecordCount > 0 Then
While Not rst2.EOF
intKey = rst2.Fields("MenuID").Value
If rst2.Fields("Parent") = 0 Then
Set objNode2 = .Nodes.Add("Test Packs", tvwChild, NumberToString(intKey), rst2.Fields("Option"), 5)
objNode2.Expanded = False
Else
Debug.Print (NumberToString(intKey))
Select Case rst2.Fields("level") ' Evaluate Number.


Case "level2" ' Number between 1 and 5, inclusive.
matchup = 6
' The following is the only Case clause that evaluates to True.
Case "level3" ' Number between 6 and 8.
matchup = 7

Case "level1" ' Number between 6 and 8.
matchup = 9
'Case 9 To 10 ' Number is 9 or 10.
'Debug.Print "Greater than 8"
'Case Else ' Other values.
' Debug.Print "Not between 1 and 10"
End Select


Set objNode2 = .Nodes.Add(NumberToString(rst2.Fields("Parent")), tvwChild, NumberToString(intKey), rst2.Fields("Option"), matchup)
End If
rst2.MoveNext
Wend
End If
End With
rst2.Close
Set rst2 = Nothing


Error_Exit:
Exit Sub

Error_Trap:
MsgBox ("Error Code:" & Err.Number & " Error Description:" & Err.Description)
Resume Error_Exit
End Sub


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

Private Sub TreeView_NodeClick(ByVal selectedNode As Object)
On Error GoTo Error_Trap
Dim frm As Access.Form
Dim frm2 As Access.Form
Dim strNodeText As String
Dim strTitlePlus As String

MsgBox selectedNode.Parent.Parent.Parent
MsgBox selectedNode.Text

Set frm = Me![fsubItem].Form
' Set frm2 = Me![fsubTask].Form

'MsgBox selectedNode.Text
' MsgBox selectedNode.Key




If selectedNode.Parent.Parent.Parent = "test packs" Then



strNodeText = selectedNode.Text

Me![txtSelectedDoc].Value = strNodeText
'Me![fsubItem]![ItemList].RowSource = "qryitem"
frm![ItemList].RowSource = "qryTestPack_line"
frm.Requery
frm.ItemList.Requery
frm.Visible = True
Else
frm![ItemList].RowSource = "qryTestPackage"
frm.Requery
frm.ItemList.Requery
frm.Visible = True
End If



'If selectedNode.Text = "Test Packs" Then


'MsgBox "masoud"

'Me![fsubItem]![ItemList].RowSource = "qryitem"




' Dim intMenuID As Integer
' Dim strSql, strArg, strForm As String
' intMenuID = StringToNumber(selectedNode.Key)
' strSql = "Select * from tblmenu"
' strSql = strSql & " where menuID=" & intMenuID
' strArg = Nz(CurrentDb.OpenRecordset(strSql).Fields("Action").Value, "")
' strForm = Nz(CurrentDb.OpenRecordset(strSql).Fields("Form").Value, "")

' Select Case strArg
' Case "Open"
'DoCmd.OpenForm strForm, acNormal, , , , acWindowNormal
' MsgBox strForm
' Case "Exit"
' Application.Quit
' End Select

Error_Exit:
Exit Sub

Error_Trap:
MsgBox ("Error Code:" & Err.Number & " Error Description:" & Err.Description)
Resume Error_Exit
End Sub


Best Regards.


[/FONT]
 
First, please use the "code" tags when posting code to make it easier to read.
Second, what line is code getting an error on?
 
Some screen shots explaining what the code is doing would be good too. When you refer to a 'Node' what do you mean?
 
i checked the code and test, i receive error 91 for the nodes that they do not have a great grandparent.(selectedNode.Parent.Parent.Parent)

for nodes that have great grandparent there is no problem.
any way i do not know how to solve my problem , because with my code when i click on the nodes that they do not have great grandparent, i receive error.

how i have to repair my code?please.


If selectedNode.Parent.Parent.Parent = "test packs" Then



strNodeText = selectedNode.Text

Me![txtSelectedDoc].Value = strNodeText
frm![ItemList].RowSource = "qryTestPack_line"
frm.Requery
frm.ItemList.Requery
frm.Visible = True
Else
frm![ItemList].RowSource = "qryTestPackage"
frm.Requery
frm.ItemList.Requery
frm.Visible = True
End If
 
try something like debug.print selectedNode.Parent.Parent.Parent to find what the value is, then run an if statement to check for that value.
 

Users who are viewing this thread

Back
Top Bottom