[MSAccess] Insert z parametrami

0

Witam.

Przypuśćmy, że mamy tabelę tab_one z kolumnami:
id, class_id, class_name, module_id, mapping_id, description

Oraz tabelę tab_two z kolumnami:
module_id, module_name, assembly_path

Potrzebuję napisać inserta, który wstawia do tabeli tab_one wartośći, z których 1 jest pobrana z tabeli tab_two a reszta to parametry przekazane do kwerendy:

[_classId], [_className], module_id, [_mappingId], [_description]

Kwerenda którą napisałem (źle) zachowuje się dziwnie.
Wstawia do tej tabeli tylko wtedy, gdy już istnieją rekordy w tabeli tab_one z polem module_id o wartości, którą próbujemy wstawić. W dodatku wstawia tyle razy, ile jest takich rekordów.

Preview:

INSERT INTO at_reg_tests ( class_id, class_name, module_id, mapping_id, description )
SELECT [_classId] AS Wyr1, [_className] AS Wyr2, at_reg_tests.module_id, [_mappingId] AS Wyr3, [_desc] AS Wyr4
FROM at_assembly_info INNER JOIN at_reg_tests ON at_assembly_info.module_id = at_reg_tests.module_id
WHERE (((at_assembly_info.module_name)=[_moduleName]));

Czy ktoś może mi pomóc? ;p
Dodam tylko, że module_id jest pobierany z tabeli tab_two na podstawie przekazanego parametru [_mouleName].

0

twoja qurey dziala tak jak opisales - dziala dobrze wzgeldem tego jak ja napisales
inna kwestia ze napisales cos innego niz chciales

na poczatek po co ci inner join??? wiec jak dziala? odpal sobie tylko ten select i zobacz co ci zwraca, postaraj sie zrozumiec czemu zwraca to co zwraca

wskazowki jak powinno byc poprawnie

  1. chcesz wstawic cos do at_reg_test, to nie wybierasz z niej rekordow, tylko wstawiasz
  2. napisz query wybierajace z at_assembly_info module_id po module_name
  3. do wyniku tego query dodaj parametry przekazane do procedury
  4. wynik (powienien byc to jeden rekord, lub zero, jesli po name nie znajdziesz modulu) wstaw do at_reg_test

1 użytkowników online, w tym zalogowanych: 0, gości: 1