[Sql] stored procedure - Problem

Zur Zeit versuche ich, meine auf Access basierende DB auf SQL umzuschreiben, die VB-Funktionen sollen z. T. dabei zu stored procedures werden.

Eine Funktion (vb) wird soll 2x angesprochen werden - einmal für alle Datensätze, und einmal nur für einen Datensatz (ID)

Nun habe ich folgendes Problem:
Via Click aus der Access-DB heraus möchte ich die ID an die stored procedure übergeben, bzw. die Funktion komplett nutzen können

Es soll ein Update passieren:

Alter PROCEDURE „sp_set_IIDs“
@ID int
AS
begin


– IIDvergabe über Tabelle IIDs

–Das ist wohl fehlerhaft

IF ID IS NOT null then
SET ID= ‚„and Item.ReportID=“‘@ID
END IF

UPDATE Item
SET Item.IID = IIDs.IID, Item.IIcon = IIDs.IIcon
FROM Item
INNER JOIN IIDs ON Item.IPage = IIDs.IPage and Item.IField = IIDs.IField
WHERE IIDs.Upd=1 & ID

end

Im Update-Statement zuletzt das [color=red]& ID[/color] soll also beinhalten, wenn eine ID übergeben wurde:

„and Item.ReportID = [die ID aus der Übergabe]“ - ansonsten, soll das ganze ohne ablaufen, also das Update-Statement endet dann mit „Upd=1“

Wie kriege ich das am besten gelöst?

in vbcode (funktioniert, wie gesagt) sieht das so aus:


Dim upd1 As String

If ID „“ Then ID = „and ReportID=“ & ID

upd1 = "UPDATE Item INNER JOIN IIDs ON (Item.IPage = IIDs.IPage) AND (Item.IField = IIDs.IField) " _
& "SET Item.IID = [IIDs].[IID], Item.IIcon = [IIDs].[IIcon] " _
& "WHERE (((IIDs.Upd)=1)) " & ID

CurrentProject.Connection.Execute upd1

Gruß Harry