PDA

Vollständige Version anzeigen : Select Count before Delete


mylov3
26.04.2011, 08:19
Morgen Liebe Accessspezialisten!
Ich habe ein problem und zwar möchte ich über SQL
das löschen von Partner,Unterpartner steuern leider weiss ich nicht wie ich es anstellen soll.
Der Partner darf nur dan gelöscht werden wen es keine Unterpartner gibt!

http://www7.pic-upload.de/26.04.11/nq9zn9ccduwq.gif

ist das vieleicht die lösung?

Ereigniss beim löschen !
Select Count(*) unterpartner
If null Delete
else msgBox Bitte Unterpartner löschen

Bin für jeden Tip dankbar

Mfg mY :)

Josef P.
26.04.2011, 08:26
Hallo!

Luftcode:
delete from Tabelle1
where not exists (select * from Tabelle2 where Tabelle2.fiT1 = Tabelle1.ID)

Ich würde das übrigens auch noch über referentielle Integrität (Beziehung zw. den Tabellen) absichern.

mfg
Josef

mylov3
26.04.2011, 08:37
Referentielle Integrität is gewährleistet.
foreign keys :)

wie könnte ich die msgBox aufruffen ??

Wen Unterpartner nicht null sind !! :/

ebs17
26.04.2011, 09:10
wie könnte ich die msgBox aufruffen ??
Wen Unterpartner nicht null sind !! :/
Das Löschen von einem Partner wäre nur zu ermöglichen, wenn die Anzahl der Unterpartner gleich 0 ist.

Jetzt musst Du aber noch erfassen, auf welchem Wege ein Partner gelöscht werden kann (Löschabfrage auf Tabelle, Maßnahmen im Formular, Aktionen in ungeschützten Abfragen). Überall müsste ja eine entsprechende Absicherung vorgenommen und Deine MsgBox eingebaut werden.

mylov3
26.04.2011, 10:06
Danke für die tips :) werde hier den Code posten wen ich es fertig habe :)

mylov3
26.04.2011, 12:57
Private Sub Form_BeforeDelConfirm(Cancel As Integer, Response As Integer)
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim vWa_Id As Integer
Dim SQLCount As String
Dim vUP_ID
Set cn = CurrentProject.Connection
Set rs = New ADODB.Recordset


vUP_ID = Me.IWP_PA_ID

vWa_Id = Forms!F_Handzettel!SFRM_WERBEAKTION!WA_ID

SQLCount = "select count(*) from is_wa_pa where is_unterpartner is not null and iwp_wa_id = " & vWa_Id & " and iwp_pa_id = " & vUP_ID

rs.Open SQLCount, cn

If rs(0) > "0" Then
MsgBox "Es sind Unterpartner vorhanden "
Debug.Print SQLCount
Cancel = True
Else
Exit Sub
End If
End Sub


und nochmals danke :)