collapse

* Benutzer Info

 
 
Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?

* Wer ist Online

  • Punkt Gäste: 69
  • Punkt Versteckte: 0
  • Punkt Mitglieder: 0

Es sind keine Mitglieder online.

* Forenstatistik

  • stats Mitglieder insgesamt: 14053
  • stats Beiträge insgesamt: 67475
  • stats Themen insgesamt: 9092
  • stats Kategorien insgesamt: 5
  • stats Boards insgesamt: 17
  • stats Am meisten online: 415

Autor Thema: CurrentDb.Execute mit Zahl  (Gelesen 721 mal)

Offline Carl

  • Access-Profi
  • **
  • Beiträge: 395
CurrentDb.Execute mit Zahl
« am: April 25, 2018, 14:05:10 »
Hallo

ich suche einen Button, der den Datensatz aus einem Endlosformular heraus löscht. Ich habs so gemacht. Ich verstehe nicht, was die Zahl "128" bedeutet.

Private Sub Befehl143_Click()
Dim strsql As String
     strsql = "DELETE * FROM tblworkorder WHERE ID =" & Me!ID
     CurrentDb.Execute strsql, 128
     Me.Requery
End Sub

Was könnte das bedeuten? Carl
 

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 7415
Re: CurrentDb.Execute mit Zahl
« Antwort #1 am: April 25, 2018, 14:09:51 »
Hallo,
die Zahl 128 ist die Zahl für den Parameter "dbFailOnError".
Der Parameter sorgt für Fehlermeldungen wenn mit der Abfrage was schief läuft.
Nicht mit der Syntax sondern wenn die Abfrage datenbezogen einen Fehler liefern würde.
CurrentDb.Execute strsql, dbFailOnErrorist als das Gleiche.
Gruß
Klaus
 

Offline DF6GL

  • Global Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 23443
Re: CurrentDb.Execute mit Zahl
« Antwort #2 am: April 25, 2018, 14:17:06 »
Hallo,

wobei solches einfacher ginge:

Private Sub btnDelRec_Click()
Runcommand accmdDeleteRecord
End Sub


In allen Fällen ist dahingehend Obacht geboten, als dass der bei einem Endlosform markierte (der DS , der den Fokus besitzt)   gelöscht wird.
« Letzte Änderung: April 25, 2018, 14:28:55 von DF6GL »
 
Folgende Mitglieder bedankten sich: Carl

Offline Carl

  • Access-Profi
  • **
  • Beiträge: 395
Re: CurrentDb.Execute mit Zahl
« Antwort #3 am: April 25, 2018, 14:26:18 »
Ah, danke. Auch bei meiner Lösung von oben?
 

Offline DF6GL

  • Global Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 23443
Re: CurrentDb.Execute mit Zahl
« Antwort #4 am: April 25, 2018, 14:29:54 »
Hallo,

ich sage "allen Fällen",  was Deine Version mit einschließt.

Offline Carl

  • Access-Profi
  • **
  • Beiträge: 395
Re: CurrentDb.Execute mit Zahl
« Antwort #5 am: April 25, 2018, 14:38:37 »
Ich habe noch eine andere Frage:

beim Anlegen eines Datensatzes erstelle ich einen zugehörigen Ordner, dessen Pfad aus einem Pfad und einem Feld [[WOOrdnername]] ermittelt wird.

MkDir "S:\katalog\" & Me!WOOrdnername

Mit dem o.g. Button möchte ich aber auch diesen Ordner wieder mit löschen. Soll man dazu auch einen strg dimensionieren oder besser einfach einen direkten delete-Befehl machen?

Carl
« Letzte Änderung: April 25, 2018, 15:22:01 von Carl »
 

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 7415
Re: CurrentDb.Execute mit Zahl
« Antwort #6 am: April 25, 2018, 15:02:34 »
Hallo,
den Ordner löschen hat ja mit SQL nichts zu tun, das erfordert VBA so wie Du MkDir verwendest.
Löschen ist glaube ich Del, bin aber nicht sicher.
Gruß
Klaus
 

Offline DF6GL

  • Global Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 23443
Re: CurrentDb.Execute mit Zahl
« Antwort #7 am: April 25, 2018, 15:05:18 »
Hallo,

das ist eine Frage des Programmierstils  und hat mit der Funktionalität nichts zu tun.
Übersichtlicher ist es aber, eine (oder mehrere) String-Variable(n) zu deklarieren und den Pfad bzw. Dateinamen zusammenzusetzen.


btw:  Ein gleichzeitiges Löschen des Pfades und der darin enthaltenen Dateien gelingt nicht den VBA-Befehlen (Rmdir, Kill), dafür ist z. B. das FileScripting-Objekt erforderlich.

Offline Carl

  • Access-Profi
  • **
  • Beiträge: 395
Re: CurrentDb.Execute mit Zahl
« Antwort #8 am: April 25, 2018, 15:25:43 »
Also kann man mit VBA gar keine Verzeichnisse mitsamt des Inhalts (ohne nachfragen) löschen?

Wie würdet Ihr denn den Ordner

"S:\katalog\" & Me!WOOrdnername"

löschen, wobei alle nachfragen unterbunden werden sollen?
 

Offline Beaker s.a.

  • Access Guru
  • ****
  • Beiträge: 1882
Re: CurrentDb.Execute mit Zahl
« Antwort #9 am: April 25, 2018, 16:14:17 »
Zitat
dafür ist z. B. das FileScripting-Objekt erforderlich.
Nicht gelesen ?
--
Beaker s.a., der lieber an seinem eigenen Projekt arbeiten würde/sollte, aber irgendwie immer gerne seinen Senf dazu gibt ;-)
S.M.I².L.E.
 

Offline ebs17

  • Access-Meister
  • ***
  • Beiträge: 921
Re: CurrentDb.Execute mit Zahl
« Antwort #10 am: April 25, 2018, 19:02:49 »
Mit freundlichem Glück Auf!

Eberhard
 

Offline Joss

  • Access-User
  • *
  • Beiträge: 80
Re: CurrentDb.Execute mit Zahl
« Antwort #11 am: April 25, 2018, 19:57:12 »
Meine Suchmaschine: www.fireball.de | Access-Wiki: www.dbwiki.de
 

Offline Carl

  • Access-Profi
  • **
  • Beiträge: 395
Re: CurrentDb.Execute mit Zahl
« Antwort #12 am: April 25, 2018, 20:49:38 »
okay, danke. Ich setz mich dran. Ist ganzschön aufwendig, weil man rekursive Schleifen vom Löschen von Dateien und Unterverzeichnissen einbauen muss.

Wäre es nicht einfacher, einfach den windows-Befehl zum Löschen eines Verzeichnisses aufzurufen? Als "entf" des angebenen Pfades mit dem Entsprechenden Windows-Dialoges? Geht sowas?
 

Offline DF6GL

  • Global Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 23443
Re: CurrentDb.Execute mit Zahl
« Antwort #13 am: April 26, 2018, 09:33:40 »
Hallo,


kopier den folgenden Code in ein Standardmodul:

Public Function delDir(strPath As String)
Dim fso As Object
   On Error GoTo delDir_Error
If Right(strPath, 1) = "\" Then strPath = Left(strPath, Len(strPath) - 1)
Set fso = CreateObject("Scripting.FileSystemObject")
fso.DeleteFolder (strPath)
Set fso = Nothing

MyExit:
Exit Function

delDir_Error:

    MsgBox "Error " & Err.Number & " (" & Err.Description & ")"
    Resume MyExit
End Function

und ruf die Funktion dort auf, wo das Löschen angesagt ist:

Dim strverz as String
strVerz= "C:\Temp"
.
delDir(strVerz)
.
.
« Letzte Änderung: April 26, 2018, 09:41:29 von DF6GL »
 
Folgende Mitglieder bedankten sich: Carl

Offline Carl

  • Access-Profi
  • **
  • Beiträge: 395
Re: CurrentDb.Execute mit Zahl
« Antwort #14 am: April 26, 2018, 13:39:03 »
Wahnsinn, danke, das isses. :-)

Carl