Supportnet Computer
Planet of Tech

Supportnet / Forum / Datenbanken

Meldung unterdrücken beim Einfügen von Records





Frage

Hi all, wisst Ihr wie ich die Meldung von Access 2000 unterdrücken kann ("Wollen Sie einen Datensatz einfügen ...?"), die entsteht wenn ich per DoCmd.RunSQL ("INSERT INTO...") einen Datensatz einfüge ? 1000Dank - Armin

Antwort 1 von PotzBlitz

Hallo Armin,

probier es mal so:
CurrentDb.Execute "INSERT INTO..."

Falls du bereits Variablen für das Database-Objekt verwendest, kannst du sie genauso heranziehen:
Dim dbCurrent As Database
Set dbCurrent = CurrentDb
dbCurrent.Execute "INSERT INTO..."

Gruss
PotzBlitz

Antwort 2 von Marie

Nein Potzblitz, er wird auch dann eine Warnmeldung bekommen, er muss schon die Warnmeldungen ausschalten. Aber Achtung, die bleiben ausgeschaltet, wenn Du sie nicht sofort wieder einschlatest. Also auch in der Fehlerroutine wieder einschalten oder mit
on error resume next arbeiten an der Stelle.

DoCmd.SetWarnings False
DoCmd.RunSQL ("INSERT INTO...")
DoCmd.SetWarnings True


Antwort 3 von PotzBlitz

Nein Marie, es kommen keine Warnmeldungen. Das Verwenden von DoCmd.SetWarnings ist daher völlig überflüssig.

Wollen wir schon wieder darüber diskutieren? ;-)

Gruss
PotzBlitz

Antwort 4 von Marie

lol Potzblitz, ham wir das schonmal?

Alzheimer lässt grüßen.

Was meint er denn dann? Klär mich halt nochmal auf. Die Meldung: wollen sie wirklich blabla wird doch mit warnings false auch unterdrückt. Versteh Dich nicht und weiss nimmer wo wann wir darüber diskutiert haben, sorry.

und lieber Gruß

Marie

Antwort 5 von PotzBlitz

Hallo Marie,

wir hatten schon im September vergangenen Jahres eine ausführliche Diskussion darüber, ob man zum Ausführen von Abfragen aus dem Code heraus explizit die Warnmeldung unterdrücken muss oder nicht. Diese Warnmeldung "Wollen Sie wirklich..." tritt dann auf, wenn man eine Abfrage über ein Makro ausführt. Ganz genau die gleiche Aktion führt auch DoCmd.RunSQL aus - es ist quasi das Makro aus VB heraus angestossen. Dagegen löst die Execute-Methode des Database-Objekts keine Warnmeldung aus, sämtliche Abfragen werden stumm und ohne Rückfragen ausgeführt. Demnach ist bei der Verwendung von CurrentDb.Execute auch das Unterdrücken von Warnmeldungen nicht nötig.

Gruss
PotzBlitz

Antwort 6 von Marie

Hi Potzblitz,

das is ja schon sooooooooooo lange her, das wusst ich jetzt wirklich nicht mehr. :-)

Also Potzblitz, ich verstehe Deine Aussage ganz und gar nicht, ich ruf alle Abfragen mit execute auf und muss immer die Warnmeldungen unterdrücken, was hast Du denn für eine Accessversion?? Vielleicht wurde das geändert oder Du hast eh die Warnmeldungen abgeschaltet, ich weiss nicht wie Du zu der Behauptung kommst. Bei mir kommen definitiv Meldungen mit Execute, sorry, aber vielleicht ist das ja in anderen Accessversionen geändert.

Vielleicht kann sich ja mal ein anderer dazu äußern? Wär nett.

Gruß Marie

Antwort 7 von PotzBlitz

Hallo Marie,

diese Warnmeldungen sind niemals, niemals, niemals bei mir aufgetreten in diesen Access-Versionen:

Access 2.0, Access 95, Access 97, Access 2000, Access 2002.

Ich habe niemals bei irgendeiner Access-Version diese Systemmeldungen abgeschaltet, sie waren schon seit je her aktiv. :-)

Jetzt denke mal bitte gut nach. Hast du jemals irgendwelche "Optimierungen" an Access durchgeführt, von denen du die Auswirkungen nicht richtig abschätzen konntest? Bitte verstehe das nicht falsch, aber ich bin überzeugt davon, dass deine Access-Installation in dieser Hinsicht ein Problem hat.

Ich habe mal folgenden Beispielcode verfasst, der eine Tabelle anlegt, sie mit Daten füllt, den Inhalt anzeigt und die Tabelle hinterher wieder löscht. Hier wird dreimal die Execute-Methode verwendet, in meinem Fall (Access 2000) ohne Systemmeldungen. Wer will, kann ihn gerne mal kopieren und ausführen und seine Erfahrungen dazu hier schildern.

′----------------------------------
Public Sub ExecuteDemo()
   Dim dbCurrent As Database
   Dim strSQL As String
  
   Set dbCurrent = CurrentDb
   strSQL = "CREATE TABLE tblExecuteDemo (Feld1 TEXT(50));"
   dbCurrent.Execute strSQL
  
   strSQL = "INSERT INTO tblExecuteDemo (Feld1) VALUES (′Hello World′);"
   dbCurrent.Execute strSQL
  
   MsgBox "Inhalt von tblExecuteDemo: " & vbCrLf & DLookup("Feld1", "tblExecuteDemo")
  
   strSQL = "DROP TABLE tblExecuteDemo;"
   dbCurrent.Execute strSQL
End Sub
′----------------------------------

Gruss
PotzBlitz

Antwort 8 von Marie

Geduld, Geduld, PotzBlitz, Mail ist unterwegs :-)))

Posting wurde vom SN nicht angenommen, weiss nicht was ich für Zeichen da drin hab. Aber lies mal den artikel vom September, ich denke dass das die Lösung ist.

Du schaltest doch Deine Warnmeldungen mit Response = acDataErrContinue aus, weisste das schon nicht mehr weil Du es überall drin hast????

Aber kommentier doch Du mal Response = acDataErrContinue aus,ob Du dann nicht Deine Warnmeldungen bekommst :-))

Wenn nicht probier ich Deinen Code oben aus, aber lass mir bitte Zeit bis morgen, hab heut noch zu tun.

Gruß Marie

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: