Also folgendes Script öffnet in der Large Solution tadellos die „Firmen“ Ansicht und hat „vorgefiltert“, dass nur A-Firmen (ABC=‚A‘) enthalten sind:
Dim sViewName : sViewName = "Firmen"
Dim sComparisonValue : sComparisonValue = "A"
Dim sFilter : sFilter = "SetFilterDirectSQL: SELECT ""Companies"".""ID"" FROM ""Companies"" WHERE ""ABC"" = '" & sComparisonValue & "'"
Set oView = cRM.CurrentProject.OpenNewViewByName(sViewName, sFilter)
Ich hatte mit „BIR_DIS“ den Namen der Ansicht, nicht den der zugrundeliegenden Tabelle verwendet…
So funktioniert es nun!
Absturz heißt (wenn die Information noch relevant ist): der cRM zeigt über lange Zeit (>60 Minuten) die Windows-Sanduhr (bzw. den neuen, rotierenden Kreis), bei einem Klick meldet Windows, dass das Programm nicht antwortet. Am Ende des Prozesses erhalte ich vom cRM die Meldung, dass cRM nicht mehr funktioniert und beendet werden muss.
Allerdings: Ich hatte beim Test zuerst ‚Copmanies‘ statt ‚Companies‘ geschrieben, und berechtigterweise direkt eine SQL Server Fehlermeldung kassiert. Das wäre eigtl Ihr Szenario. Sie haben nicht zufällig doch (auch) eine Tabelle mit dem Namen, die sehr langsam ist? Bin also sehr skeptisch, wie wir es reproduzieren können. Wir kümmern uns…
Die zugrundeliegende View (vielleicht ist diese Info wichtig) heißt [dbo].[v_archiv_BIR_DIS]
Der Zugriff erfolgt über einen Linked Server, beide Server (und beide betroffenen Datenbanken) waren zum „Unfallzeitpunkt“ live, der direkte Abruf von Daten über SELECT * FROM [dbo].[v_archiv_BIR_DIS]
aus der CRM-Datenbank im SQL-Server Management Studio hat tadellos funktioniert.
Happy Hunting! (Wenn diese Bugs nicht so schnell und geschickt wären!)
Wolfgang