title image


Smiley Hhmm, typischer Fall von 'nassem Lappen' und 'erschlagen'
Erster nasser Lappen:

Inputbox = 'Igitt'

Da macht sich doch ein selbst erstelltes Form etwas besser, oder...??



Zweiter nasser Lappen:

Ein Workspace mit Transaktion und ohne Errorhandler und ohne Rollback...

Was soll das??

Was passiert denn im Fehlerfall? Da steht dann eine Transaktion irgendwo in der Gegend herum und träumt vor sich hin. Du findest diese nie wieder.



Für diese Sub benötigst Du keine Transaktion, ein DbFailOnError reicht da dicke aus:

(Ersetze aber mal die Inputbox durch etwas gescheites... Habe hier darauf verzichtet.)





Sub AKZSchreiben()

  Dim DB As DAO.Database, sTmp As String, s As String

  On Error GoTo Er

 

  Set DB = CurrentDb

  sTmp = tmp

  tmp = InputBox("Bezeichnung:", "AKZ-Neueintrag", "Neu")

  If Len(tmp) = 0 Then tmp = "NEU"

  s = "INSERT INTO tbl_AdrAKZ (str_akz_Index, str_akz_Bezeichnung ) SELECT '" & sTmp & "', '" & tmp & "'"

  DB.Execute s, dbFailOnError

  'zum testen, solltest Du später auskommentieren:

  MsgBox "Es wurde " & DB.RecordsAffected & " Datensatz angefügt."

 

Ex:

  On Error Resume Next

  DB.Close

  Set DB = Nothing

  Exit Sub

Er:

  Dim strErr As String

  Select Case Err.Number

    Case Else

      strErr = "Fehlermeldung/Information..." & vbCrLf

      strErr = strErr & "FehlerNummer: " & Err.Number & vbCrLf

      strErr = strErr & "Beschreibung: " & vbCrLf & Err.Description

      MsgBox strErr, vbCritical + vbOKOnly, "Sub: AKZSchreiben"

      Resume Ex

  End Select

  Resume

End Sub







Und ansonsten, schaue mal in die Hilfe zu Transaktionen. So wie Du diese hier, vermutlich auch anderswo, einsetzt ist das Quark und beschert mehr Fehlerquellen herbei als Du beseitigen willst. In der Hilfe stehen auch Beispiele zum korrekten Einsatz von BeginTrans, CommitTrans und Rollback - auch mit Errorhandler. So wird das sonst nichts richtiges.






geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: