bei folgenden Code kommt es zu dieser Fehlermeldung:
Private Sub btnSchichtMi_Click()
Dim strSQL As String
Dim db As DAO.Database
Set db = CurrentDb
Dim msg As Long
msg = MsgBox("Sind Sie sicher, dass diese Schicht mit allen
dazugehᅵrigen Daten gelᅵscht werden soll?", vbYesNo,
"Lᅵschbestᅵtigung")
Select Case msg
Case 6
strSQL = "UPDATE tblSchichten INNER JOIN (tblProduktion INNER
JOIN tblImport ON tblProduktion.ID = tblImport.IDStᅵck) ON
tblSchichten.ID = tblProduktion.IDSchichten SET tblImport.IDStᅵck =
Null " & _
"WHERE tblSchichten.ID = " & Me.lstSchichten
db.Execute strSQL
strSQL "DELETE FROM tblProduktion WHERE IDSchichten = " &
Me.lstSchichten
db.Execute strSQL
strSQL = "DELETE FROM tblSchichten WHERE ID = " &
Me.lstSchichten
db.Execute strSQL
Set db = Nothing
Case 7
Exit Sub
Case Else
MsgBox "Fehler!"
End Select
Me.lstSchichten.Requery
Me.lstProdMafᅵ.Requery
Me.lstZSP.Requery
End Sub
Markiert wird in der Zeile ---strSQL "DELETE FROM tblProduktion WHERE
IDSchichten = " & Me.lstSchichten--- der Teil ".lstSchichten"
Der Name des Steuerelementes ist korrekt, was kᅵnnte das fᅵr Ursachen
haben?
Gruᅵ
Peter
Viele Gruesse
Klaus
die Lᅵsung fᅵr Dein Problem hast Du ja schon erhalten. Mir fᅵllt noch
auf, dass Du in Deinem Code so genannte "magische Zahlen" verwendest.
Im Select-Case-Statement reagierst Du auf den Rᅵckgabewert der
MsgBox-Funktion. Dabei fragst Du auf die Werte 6 und 7 ab. Wofᅵr stehen
jetzt 6 und 7?
Besser ist es, statt der Zahlen entsprechende Konstanten zu verwenden,
die ᅵber Ihren Namen deutlich machen, was der Wert bedeutet. In diesem
Fall sind die Konstanten schon vorhanden. Sie heiᅵen "vbYes" und "vbNo".
Dein Code wᅵrde dann so aussehen:
Select Case msg
Case vbYes
' ..
Case vbNo
' ..
Case Else
' ..
End Select
Dein Code ist jetzt besser lesbar und damit leichter verstᅵndlich.
Spᅵtestens wenn Du den Code einmal anpassen musst wirst Du das zu
schᅵtzen wissen.
CU
--
Thomas
Homepage: www.Team-Moeller.de
Zu dem was Klaus + Thomas bereits sagten ist noch zusätzlich anzumerken:
es ist keine gute Idee es dem Compiler zu überlassen zu entscheiden ob
mit Me.lstSchichten das Objekt gemeint ist oder seine default property.
Das geht zwar in 95 oder mehr Prozent der Fälle gut, aber halt nicht immer.
Helmut.
> Hallo Peter,
> Also wenn ich das richtig sehe, dann fehlt hier das = Zeichen fuer die
> Zuweisung.
>
Hallo Klaus,
vielen Dank für deinen gestochen scharfen Blick. OmG, dass man so was
blödes übersieht.
@ Thomas & Helmut:
Vielen Dank für eure Tipps, werde ich brücksichtigen!
Gruß
Peter
Siehe auch www.donkarl.com?FAQ6.3
Gruss - Peter
--
Mitglied im http://www.dbdev.org
FAQ: http://www.donkarl.com