Vraag : oproepen uitvoeren niet functie die - waarom?

Wanneer de gebruikerspersen F8, een macro wordt teweeggebracht die de gebruiker in deze functie HotKeySaveRecord werpt. Zijn doel is een functie te roepen SaveRecord.    Sinds bevordering aan Toegang 2007, niet meer werkt deze functionaliteit.   Wanneer ik door deze functie stap, gaat het enkel net door varTemp = () lijn frm.SaveRecord zonder de functie ooit in te gaan SaveRecord. Het niet fout.

Any helpt u kan verstrekken veel zou gewaardeerd worden.  Dank!

" codeBody "
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
Public Functie HotKeySaveRecord ()
'Doel:
'Deze functie wordt geroepen door de F8 hete sleutel, via de macro AutoKeys.
'Het is doel is beide „normale“, verbindende vormen te steunen die globaal gebruiken
'() Functie SaveRecord (in basApplUtilities) om sparen de verrichting van het Verslag uit te voeren;
'en andere vormen (zoals unbound vormen zoals Prioriteit) die aan vereisen
'hebben een () functie SaveRecord voor speciale doeleinden die op de vorm zelf wordt bepaald.
'Het zal eerst proberen om een () functie SaveRecord op momenteel uit te voeren - actieve vorm.
'Als dit een fout 2465 terugkeert, dan zal het globaal gaan uitvoeren
'() Functie SaveRecord.
'


   Op Fout GoTo ErrorHandler
   'Verklaringen
   Const strProcedureName = „HotKeySaveRecord“
   Schemerige varTemp
   Schemerige frm als Vorm
   
   'Zorg ervoor er een actieve vorm is.
   'Als de gebruiker om SaveRecord in één of andere oneven omstandigheid verzocht,
   'wij zullen enkel niets doen.
   Op Fout hervat daarna
   Plaats frm = Screen.ActiveForm
   Als Err.Number <> 0 toen
      GoTo ExitRoutine
   Eind als
   Op Fout GoTo ErrorHandler
   
   'Zie of kunnen wij een () functie SaveRecord op de huidige vorm uitvoeren.
   Op Fout hervat daarna
   varTemp = frm.SaveRecord ()
   gobjLastError.Save vergis me, strProcedureName
   Op Fout GoTo ErrorHandler
   'Inspecteer nu gobjLastError om te zien al dan niet wij een vorm-specifieke SaveRecord vonden ().
   Selecteer Geval gobjLastError.Number
      Geval 0 'Geen fout.  De huidige vorm had een () functie SaveRecord.
         'Doe niets
      Geval 2465 'Huidige vorm had geen () functie SaveRecord.
         'Voer de globale () uit functie SaveRecord.
         varTemp = SaveRecord ()
      Het geval anders 'Één of andere andere fout gebeurde.
         gobjLastError.Raise gobjLastError.Number & „: “ & gobjLastError.Description
   Uitgezocht eind
   
ExitRoutine:
   De Functie van de uitgang
ErrorHandler:
   gobjLastError.Save vergis me, strProcedureName
   Selecteer Geval gobjLastError.Number
      Geval anders
         gobjLastError.Show
         Hervat ExitRoutine
   Beëindig Uitgezocht
Beëindig Functie

Antwoord : oproepen uitvoeren niet functie die - waarom?

Niet zeker waarom al dat code noodzakelijk is.  De eenvoudigste manier om een verslag te bewaren is de volgende.

Op een vorm met sparen knoop:

Me.Dirty = Vals

ALS… u „globaal“ nodig hebt sparen (?) … toen in een vbamodule:

Forms.YourFormName.Dirty = Vals

Of

Screen.ActiveForm.Dirty = Vals

mx
Andere oplossingen  
 
programming4us programming4us