Hallo
Nach der Erneuerung unseres Maschinenparks haben wir mehrere Stationen, die nicht mehr verwendet werden, aber immer noch in der Liste der MyPDMTools-Task-Hosts erscheinen. Ich möchte diese Hosts löschen, um die bereits vollständige Liste nicht zu verschmutzen, und führe dazu eine SQL-Abfrage in einem VBA-Skript aus.
Die Abfrage lautet: StrSQL = "DELETE FROM dbo. Hosts, WO dbo. Hosts.HostID = " & N_Host (mit N_Host der Nummer des PCs, den ich löschen möchte)
Diese Anfrage funktioniert jedoch nicht, da andere Tabellen diese "HostIDs" erwähnen. Also füge ich weitere Abfragen in die Präambel dieser Abfrage ein, die am Ende ergibt (ich kopiere einfach die Abfragezeilen)
StrSQL="AUS dbo LÖSCHEN. TaskInstances WHERE dbo. TaskInstances.InitHostID =" & N_Host
StrSQL="AUS dbo LÖSCHEN. TaskHosts WHERE dbo. TaskHosts.HostID =" & N_Host
StrSQL="AUS dbo LÖSCHEN. Hosts, WO dbo. Hosts.HostID =" & N_Host
Aber eine Fehlermeldung sagt mir, dass die erste Abfrage nicht ausgeführt werden kann: "Die DELETE-Anweisung steht in Konflikt mit der REFERENCE-Einschränkung "FK_TaskSelection_TaskInstances". Der Konflikt trat in der Datenbank "XXXX", Tabelle "dbo. TaskSelection", Spalte 'TaskInstanceID' .
Ich verstehe, dass ich zuerst die TaskSelection-Tabelle bereinigen müsste, aber ich weiß nicht, wie ich die richtigen Einträge auswählen soll (diejenigen, die die TaskInstanceID erwähnen, die ich zu löschen versuche?).
Kurz gesagt, wenn jemand eine Idee oder sogar eine vollständige Frage hat, würde es mir sehr helfen.
Eine andere Lösung: Vielleicht gibt es etwas Einfacheres, als die Einträge zu löschen? Ersetzen Sie beispielsweise den Wert der HostID durch eine "leere" ID?
Danke für Ihre Hilfe.