Tach allerseits.
Ich habe seit Ewigkeiten nichts mehr mit SQL gemacht und stehe nun etwas auf dem Schlauch. Sicher hat da draussen irgendjemand die total simple Antwort parat. Folgendes:
Ich bin gerade dabei die installierte Software auf unseren Clients auf etwas abenteuerliche Weise zu erfassen. Dabei legt jeder Client mittels Skript einmal eine CSV mit seiner installierten Software und Version auf einem Share ab. Soweit so gut. Nun muss das Ganze auch zusammen geführt werden und da ich gerade "mal wieder was mit Access machen wollte", dachte ich mir, ich bastel da mal eine kleine "DB".
Nun habe ich eine Datenbank mit 3 Tabellen, die ich automatisiert füllen möchte:
Client (*ID, Name)
Software (*ID, Name, Version)
Client_SW (*Host_ID, *SW_ID)
Die ersten Tabelle lassen sich Problemlos befüllen. Probleme bereitet es mir gerade die entsprechende Abfrage, den Insert, für die dritte Tabelle zu bauen.
Mein Skript liefert mir bei Ausführung von:
str_db_command = "INSERT INTO Client_SW ( [Host_ID], [SW_ID] ) VALUES (" _
& " ( SELECT ID FROM Clients WHERE [Hostname] = '" & str_hostname & "' )," _
& " ( SELECT ID FROM Software WHERE [Software] = '" & str_software & "' AND [Version] = '" & str_version & "'));"
obj_ADOCon.Execute (str_db_command)
diese Fehlermeldung:
Wenn ich das ganze "aufstrippe" und als SQL Query in Access laufen lassen:
INSERT INTO Client_SW ( [Host_ID], [SW_ID] ) VALUES ( ( SELECT ID FROM Clients WHERE [Hostname] = 'xxx' ), ( SELECT ID FROM Software WHERE [Software] = 'xxx' AND [Version] = '123'));
So bekomme ich die Meldung:
...
Wer kann mir hier einen Hinweis geben, wo ich 'nen Klemmer habe (oder vlt. hab' ich auch einen völlig sinnbefreiten Ansatz)?
Schonmal danke für's durchlesen (die Antwort ist garantiert kürzer als meine Ausführung, aber ich merke gerade, dass ich mit "dem Kram" sowas von raus bin)
Gruß Eratum