Zur Zeit versuche ich, meine auf Access basierende DB auf SQL umzuschreiben, die VB-Funktionen sollen dabei zur 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:
Im Update-Statement zuletzt das & ID soll also beinhalten, wenn eine (U)ID übergeben wurde:
and Item.ReportID = [die (U)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:
Gruß intiii
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:
Code:
Alter PROCEDURE "sp_set_IIDs"
@UID int
AS
begin
-------------------------------------------
-- IIDvergabe über Tabelle IIDs
-------------------------------------------
IF UID <> '''' THEN SET ID = 'and Item.ReportID=' @UID
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 & ID soll also beinhalten, wenn eine (U)ID übergeben wurde:
and Item.ReportID = [die (U)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:
Code:
...
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ß intiii
Zuletzt bearbeitet: