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