Alexander Feduleev
Guest
|
Hi,
I need update shapes from recordset in Visio 2007.
Record macro in Visio and get code like this :
Application.ActiveWindow.SelectAll
Dim ColumnNames2(1) As String
Dim FieldTypes2(1) As Long
Dim FieldNames2(1) As String
Dim IDsofLinkedShapes2() As Long
ColumnNames2(0) = "Person Number"
FieldTypes2(0) = 3 ' visAutoLinkUserRowName
FieldNames2(0) = "PersonNumber"
Application.ActiveWindow.Selection.AutomaticLink 3, ColumnNames2, FieldTypes2, FieldNames2, 8, IDsofLinkedShapes2 'visAutoLinkReplaceExistingLinks
Problem is when I make the same code in VB.NET
Dim visSelection As Visio.Selection
Dim ColumnNames1(0) As String
Dim FieldTypes1(0) As Long
Dim FieldNames1(0) As String
Dim linkedShapeIDs As System.Array = Array.CreateInstance(GetType(Long), 0)
Try
VisioApp.Application.ActiveWindow.SelectAll()
visSelection = VisioApp.Application.ActiveWindow.Selection
ColumnNames1(0) = "Person Number"
FieldTypes1(0) = 3 'visAutoLinkUserRowName
FieldNames1(0) = "PersonNumber"
visSelection.AutomaticLink(3, ColumnNames1, FieldTypes1, FieldNames1, 8, linkedShapeIDs) 'visAutoLinkReplaceExistingLinks
Catch ex As Exception
MsgBox("Error link data to shapes " + vbCrLf + ex.Message.ToString, MsgBoxStyle.Critical)
End Try
I get an error
Exception in HRESULTS 0x80020005 DISP_E_TYPEMISMATCH
I'm tested with different variants, but the same error.
Error starts when I'm apply 3rd parameter to AutomaticLink.
Can you help me ?
How correct define variables to call this Visio selection method ?
Best Regards,
Alexander Feduleev |
|
Andrei Smolin
Add-in Express team
Posts: 18821
Joined: 2006-05-11
|
Hi Alexander,
Try using "Dim FieldTypes1(0) As Integer".
Andrei Smolin
Add-in Express Team Leader |
|
Alexander Feduleev
Guest
|
Hi Andrei,
I'm tried, the same error :(
Alex |
|
Andrei Smolin
Add-in Express team
Posts: 18821
Joined: 2006-05-11
|
Hi Alexander,
Try also using "Dim linkedShapeIDs As System.Array = Array.CreateInstance(GetType(Integer), 0)".
Andrei Smolin
Add-in Express Team Leader |
|