über VBA einen ESC Befehl simulieren
Hallo zusammen!
Wenn ich in einem Formular bin, Daten eingegeben habe und ESC drücke werden diese wider zurückgesetzt oder wenn sie noch nicht gespeichert worden sind gelöscht.
Ich möchte dies mit einem VBA simulieren. Probiert habe ich es schon mit
probiert... leider ohne Erfolg, das heisst wenn ich diesen Befehl einzeln ausführe funktioniert er aber in meiner Prozedur nicht.
Meine Prozedur:
Danke schon im vorraus für die Unterstütung!
Gruss
Severin
Wenn ich in einem Formular bin, Daten eingegeben habe und ESC drücke werden diese wider zurückgesetzt oder wenn sie noch nicht gespeichert worden sind gelöscht.
Ich möchte dies mit einem VBA simulieren. Probiert habe ich es schon mit
SendKeys "{ESC}", True
Meine Prozedur:
Private Sub Befehl76_Click()
On Error GoTo err_handler:
'Variabeln
Dim sTransportNr As String
Dim sDifferenzNr As String
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim rs2 As Object
Dim lonSatz As Long
Dim last As Integer
Set db = CurrentDb
'Färben der Transportnummer
Transportnummer.BackColor = "-2147483643"
'überprüfen ob überhaupt daten eingegeben wurden
If (IsNull(Transportnummer.Value)) Then Exit Sub
'Holen der Transportnummer
sTransportNr = Transportnummer.Value
'Abfrage ob Transportnummer schon vorhanden
Set rs = db.OpenRecordset("SELECT * FROM Differenzen WHERE (((Differenzen.Transportnummer)=" & sTransportNr & "));")
If (rs.EOF Or rs![Differenz-Nr] = Differenz_Nr.Value) Then
Exit Sub
Else
'Falls Transportnummer vorhanden fragen ob der dazugehörige Datensatz angezeigt werden soll
If (MsgBox("Die von Ihnen eingegebene Transportnummer ist schon vorhanden!" & _
vbNewLine & "Wollen sie zu diesem Datensatz wechseln?", vbInformation + vbYesNo) = vbYes) Then
'Datensatz anzeigen
SendKeys "{ESC}", True
If (Transportnummer.Value <> "") Then
Transportnummer.BackColor = "255"
Exit Sub
End If
Set rs = db.OpenRecordset("SELECT Count(Differenzen.[Differenz-Nr]) AS Anzahl FROM Differenzen;")
last = rs!Anzahl
Set rs = db.OpenRecordset("SELECT * FROM Differenzen")
rs.MoveFirst
For i = 1 To last
If (IsNull(rs!Transportnummer) = False) Then
If (CStr(rs!Transportnummer) = sTransportNr) Then
lonSatz = CLng(i)
Exit For
End If
End If
rs.MoveNext
Next i
DoCmd.GoToRecord acDataForm, "Form Differenzen", acGoTo, lonSatz
Else
'Soll Datensatz gelöscht werden? wenn nein wird der Werd des Transpornrfeldes gelöscht
If (MsgBox("Soll der Datensatz gelöscht werden?", vbQuestion + vbYesNo) = vbYes) Then
'Datensatz löschen
SendKeys "{ESC}", True
Else
'Feld zurücksetzen
Transportnummer.Value = ""
End If
End If
End If
exit_handler:
Exit Sub
err_handler:
If (Err = 2105) Then
Transportnummer.BackColor = "1420799"
GoTo exit_handler
End If
MsgBox Err.Description
Resume exit_handler
End Sub
Danke schon im vorraus für die Unterstütung!
Gruss
Severin
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 59512
Url: https://administrator.de/contentid/59512
Ausgedruckt am: 22.11.2024 um 18:11 Uhr
2 Kommentare
Neuester Kommentar