Meine Idee ist das ich ein Fehlermodul schreibe das Fehler Protokolliert,
und ich möchte dann zurückgeben:
Fehlernummer, Fehlerbeschreibung, aktueller User, aktueller PC, Datum,
aktuelles Formular, aktuelles Sub/ aktuelle Funktion, aktuelle DB
einzige Probleme für mich sind: aktuelles Formular und aktuelle
Prozedur/aktuelles Sub ermitteln und die dann an die Errorfunktion
übergeben.
Danke im Vorraus, MfG Johannes
> wenn ihr am anfang jeder Prozedur eine globale Variable setzt die den
> Prozedurnamen speichert, was macht man damit eine Prozedur die eine
> andere Prozedur aufruft immer noch den richtigen Namen zurückgibt, bei
> einer Fehlermeldung?
Eine _lokale_ Variable/Konstante nehmen und Deiner Error-Handler-Funktion
als Parameter übergeben.
Wenn Du den gesamten Aufruf-Stack haben willst, musst Du Dir einen solchen
(Stack) selbst bauen - am besten in einem Klassenmodul. Kann man evtl. auch
mit google finden...
Gruss,
Juergen
Johannes Karl <kill.all.spam@jkarl@lumino.de> schrieb:
da aktuelle Formular kannst Du mit "Me.Name" ermitteln.
Ich habe auch eine solche Routine im Einsatz. Den Namen der Sub/Function
übergebe ich dem Error-Handler beim Aufruf "von Hand". Ob ich jetzt zuerst
eine Variable mit dem Namen der Function/Sub belege und diese dann
übergebe - oder ob ich den Namen im Funktionsaufruf direkt übergebe - einmal
mußt Du den Namen codieren.
HTH
--
Tho...@Team-Moeller.de
Homepage: www.team-moeller.de
TM-FixObjectNames: Update auf Version 2.18 (seit 30.10.03)
Addin: Steuerelemente gemäß Namenskonvention umbenennen
On Fri, 31 Oct 2003 13:51:09 +0100, Rainer Lemke wrote:
> Johannes Karl wrote:
> [schnippel]
>> Meine Idee ist das ich ein Fehlermodul schreibe das Fehler Protokolliert,
>> und ich möchte dann zurückgeben:
>> Fehlernummer, Fehlerbeschreibung, aktueller User, aktueller PC, Datum,
>> aktuelles Formular, aktuelles Sub/ aktuelle Funktion, aktuelle DB
> [schnippel]
> Hallo Johannes,
> ich hatte in der microsoft.public.de.vb Newsgroup
> auf den Thread "Fehlerbehandlung..." vom 25.07.2003 10:20,
> meine Antwort 25.07.2003 11:52
> mal meinen Fehlerbehandlungsansatz skizziert
> der die komplette Aufrufkette im Errorform zeigt,
> nach dem Schema Modul1::Function1::Modul2::Function2....
Danke für die Antwort, leider kann man im M$ Newsarchiev nicht so weit
zurück suchen
(http://search.communities.microsoft.com/newsgroups/Srchdefault.asp?ICP=GSS
3&sLCID=DE&NewsGroup=microsoft.public.de.vb)
... dämliche Sache wollte mir alle Postings von dem Tag anzeigen
lassen...und das bakommen: Die Suche hat keine Ergebnisse zurückgegeben
Na Ja, kann ich wohl nix machen!
MfG Johannes
On Sat, 1 Nov 2003 09:20:41 +0100, Thomas Möller wrote:
> Hallo Johannes,
> Johannes Karl <kill.all.spam@jkarl@lumino.de> schrieb:
>> ich habe schon gelesen das das nicht geht, deswegen frage ich euch:
>> wenn ihr am anfang jeder Prozedur eine globale Variable setzt die den
>> Prozedurnamen speichert, was macht man damit eine Prozedur die eine
>> andere Prozedur aufruft immer noch den richtigen Namen zurückgibt,
>> bei einer Fehlermeldung?
>> Meine Idee ist das ich ein Fehlermodul schreibe das Fehler
>> Protokolliert, und ich möchte dann zurückgeben:
>> Fehlernummer, Fehlerbeschreibung, aktueller User, aktueller PC, Datum,
>> aktuelles Formular, aktuelles Sub/ aktuelle Funktion, aktuelle DB
>> einzige Probleme für mich sind: aktuelles Formular und aktuelle
>> Prozedur/aktuelles Sub ermitteln und die dann an die Errorfunktion
>> übergeben.
> da aktuelle Formular kannst Du mit "Me.Name" ermitteln.
> Ich habe auch eine solche Routine im Einsatz. Den Namen der Sub/Function
> übergebe ich dem Error-Handler beim Aufruf "von Hand". Ob ich jetzt zuerst
> eine Variable mit dem Namen der Function/Sub belege und diese dann
> übergebe - oder ob ich den Namen im Funktionsaufruf direkt übergebe - einmal
> mußt Du den Namen codieren.
> HTH
Das mit dem Me.Name habe ich auch mitlerweile gefunden...hat auch lange
genug gedauert. Trozdem Danke.
Und das ich das von Hand eingeben muss...na ja, was will man machen...
Danke für die Antwort,
MfG Johannes
> Hallo Johannes
> Gruss,
> Juergen
Was meinst du mit Aufrufstack? Ich habe mir nen Modul geschrieben das immer
wieder als error-Handling aufgerufen wird und die Daten dann in eine
Tabelle schiebt.
MfG Johannes
Johannes Karl schrieb folgendes:
[snip..]
> Danke für die Antwort, leider kann man im M$ Newsarchiev nicht so
> weit zurück suchen
>
(http://search.communities.microsoft.com/newsgroups/Srchdefault.asp?ICP=GSS
> 3&sLCID=DE&NewsGroup=microsoft.public.de.vb)
>
> ... dämliche Sache wollte mir alle Postings von dem Tag anzeigen
> lassen...und das bakommen: Die Suche hat keine Ergebnisse
> zurückgegeben
>
> Na Ja, kann ich wohl nix machen!
Such über Google
http://www.google.de/groups?q=Fehlerbehandlung+group:microsoft.public.de.vb+
author:Rainer+author:Lemke&hl=de&lr=&ie=UTF-8&oe=UTF-8&as_drrb=b&as_mind=23&
as_minm=7&as_miny=2003&as_maxd=30&as_maxm=7&as_maxy=2003&selm=1vcswmi73e8h1.
1rihpxv83m43u.dlg%4040tude.net&rnum=1
(Link in einer Zeile)
--
Gruß
Gunter
_________________________________________________
Access - FAQ: http://www.donkarl.com
home: http://www.avenius.com
On Mon, 3 Nov 2003 10:16:36 +0100, Gunter Avenius wrote:
[snip..]
> Such über Google
> http://www.google.de/groups?q=Fehlerbehandlung+group:microsoft.public.de.vb+
> author:Rainer+author:Lemke&hl=de&lr=&ie=UTF-8&oe=UTF-8&as_drrb=b&as_mind=23&
> as_minm=7&as_miny=2003&as_maxd=30&as_maxm=7&as_maxy=2003&selm=1vcswmi73e8h1.
> 1rihpxv83m43u.dlg%4040tude.net&rnum=1
> (Link in einer Zeile)
Danke....
> Johannes Karl wrote:
> [schnippel]
>> Meine Idee ist das ich ein Fehlermodul schreibe das Fehler Protokolliert,
>> und ich möchte dann zurückgeben:
>> Fehlernummer, Fehlerbeschreibung, aktueller User, aktueller PC, Datum,
>> aktuelles Formular, aktuelles Sub/ aktuelle Funktion, aktuelle DB
> [schnippel]
> Hallo Johannes,
> ich hatte in der microsoft.public.de.vb Newsgroup
> auf den Thread "Fehlerbehandlung..." vom 25.07.2003 10:20,
> meine Antwort 25.07.2003 11:52
> mal meinen Fehlerbehandlungsansatz skizziert
> der die komplette Aufrufkette im Errorform zeigt,
> nach dem Schema Modul1::Function1::Modul2::Function2....
Okay...nachdem ich es dank Gunter dochlesen konnte:
Ich wollte eigentlich ein einfaches Handling haben. Nix gegen deine
Methode, aber die ist mir ehrlich gesagt zu hoch. Ich will das nur der
Admin die Fehlermeldung sieht, und deswegen lasse ich diese in eine DB
eintragen:
Hier mein Modul:
+++++++++++++++++++++code start+++++++++++++++++++++++++++
Option Compare Database
'Funktionen für UserName
Private Declare Function api_GetUserName _
Lib "advapi32.dll" Alias "GetUserNameA" _
(ByVal lpBuffer As String, nSize As Long) As Long
'Funktionen für PC-Name
Private Const MAX_COMPUTERNAME_LENGTH As Long = 31
Private Declare Function GetComputerName Lib "kernel32" Alias
"GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long
Public Function PCName() As String
Dim dwLen As Long
Dim strString As String
'Create a buffer
dwLen = MAX_COMPUTERNAME_LENGTH + 1
strString = String(dwLen, "X")
'Get the computer name
GetComputerName strString, dwLen
'get only the actual data
PCName = Left(strString, dwLen)
End Function
Public Function UserName() As String
On Error Resume Next
Dim NBuffer As String
Dim Buffsize As Long
Dim Dummy As Long
Buffsize = 256
NBuffer = Space$(Buffsize)
Dummy = api_GetUserName(NBuffer, Buffsize)
UserName = Trim$(NBuffer)
If Right(UserName, 1) = Chr(0) Then
UserName = Left(UserName, Len(UserName) - 1)
End If
End Function
Public Function ErrorReport(intErrNr As Integer, strErrDescr As String,
strErrFormName As String, _
strErrFunktion As String, intErrStatus As Integer)
Dim SQL As String
Dim db As Database
Set db = CurrentDb
SQL = "Insert into tblErrorLog(errNr, errDescription, errUser,
errDatabase, errForm, errFunction" & _
", errDate, errPCName, errStatus) Select " & intErrNr & ", '" &
strErrDescr & "', '" & UserName & "'" & _
", '" & DBName & "', '" & strErrFormName & "', '" & strErrFunktion &
"', '" & Date & "', '" & PCName & "'" & _
", " & intErrStatus & ";"
db.Execute SQL
End Function
Public Function DBName() As String
DBName = Dir(CurrentDb.Name)
End Function
++++++++++++++++++++++code end++++++++++++++++++++++++++++++
(Zeilenumbrüche bitte ich zu verzeihen)
Für Verbesserungen bin ich immer dankbar...
MfG Johannes
Ich habe nur ein Problem, ich bin noch ein totaler Neuling, und sehe keinen
Vorteil in deiner Vorgehensweise. Wenn du diesen mir noch näherbringen
könntest wärde ich dankbar.
Was den GhostTyperXML angeht, das hört sich cool an, werde das Proggi ma
probieren...
MfG Johannes
Das hört sich sehr gut an....werde mir das bei gelegenheit nochmal zum
Geiste führen und überdenken ob ich es nutze :) Bisher sind aber nur simple
Vorgänge in meinem VBA, daher ist das alles noch einfach....aber für die
Zukunft....
Vielen Dank .... auch für die gute Erklärung
Ach Ja...der GhostTyperXML ist klasse...gefällt mir! Mein Admin fand das
Dingen auch direkt toll. Danke auch dafür!
MfG Johannes