4 tabbellen legen

Status
Niet open voor verdere reacties.

jelleruben

Gebruiker
Lid geworden
11 nov 2006
Berichten
443
Hallo allemaal,

Ik heb een Access applicatie, waar elk jaar 4 tabbellen geleegd moet worden.

Ik weet dat dit wel met een verwijder query kan, en dan de 4 query's in een macro kan stoppen, alleen krijg je voor elke query 2 vragen. de eerst over dat ik een bijwerk query activeer, en de 2de vraag of ik zeker door wil gaan.

Als ik dit in een Macro stop, krijg ik dus 8 keer een vraag. Is er een manier om de 4 query's te laten werken, met 1 vraag van "Weet u zeker dat u de tabbellen wil legen?"

Of dat er een VB code is die dit mogelijk maakt?

En als de tabbellen zijn geleegd, dat hij zegt "De tabbellen zijn geleegd." En dat je alleen op Ok kan klikken.
 
met docmd.setwarnings false schakel je de waarschuwingen uit.

Jan
 
Met een instelling kun je de vragen uitzetten. In <Opties> heb je in 2003 op het tabblad <<Bewerken/Zoeken> een groep <Bevestigen> met de opties <Verwijderen uit documenten> en <Actiequeries>. Als je die opties uitzet krijg je de vragen niet meer, en worden de queries direct uitgevoerd. In 2007/2010 zitten de opties op een iets andere plek, maar ze heten ongeveer hetzelfde, dus je moet ze wel kunnen vinden.
In VBA kun je met het commando DoCmd.Setwarnings False de instellingen in je opties overrulen. Dus daarmee dwing je ook af dat er geen meldingen komen. Je moet, als je een VBA oplossing gebruikt, daarna als laatste de optie weer aanzetten met DoCmd.Setwarnings True.
 
Okay, bedankt voor de informatie, en die instelling, is dat op het niveau van de database, of op het niveau van Access zelf. Dus moet die instelling bij elke Access aangepast worden? Waar de applicatie wordt gebruikt.
 
Laatst bewerkt:
De instellingen leg je vast in Access zelf; elke pc die met de db werkt kan dus andere instellingen hebben. Vandaar dat vaak wordt gekozen om met DoCmd.Setwarnings die instelling te negeren.
 
Wederom bedankt voor de informatie,

Ik zal een kijken of ik die DoCmd.Setwarnings zo in kan zetten.
Ik heb zelf nog moeite mee met de plaatbepaling waar ik deze functie moet
neer zetten.
 
Aan het begin en aan het eind van de procedure, maar in ieder geval boven de regels die de query starten, en er onder. Je zet dus eerst SetWarnings uit, dan voer je de queries uit en daarna kun je Setwarnings weer aanzetten.
 
Op deze manier?

Code:
Private Sub btn_legen_Click()
On Error GoTo Err_btn_legen_Click

DoCmd.SetWarnings False
    Dim stDocName As String

    stDocName = "mac_legen_totaal"
    DoCmd.RunMacro stDocName

Exit_btn_legen_Click:
    Exit Sub

Err_btn_legen_Click:
    MsgBox Err.Description
    Resume Exit_btn_legen_Click

DoCmd.SetWarnings True
End Sub
 
Vergeet niet direct na 'docmd.runmacro stdocname' 'docmd.setwarnings false ' te plaatsen.
Anders wordt deze alleen bij een foutmelding op false gezet



Jan
 
Laatst bewerkt:
Okay dus krijg je hem zo:

Code:
Private Sub btn_legen_Click()
On Error GoTo Err_btn_legen_Click

DoCmd.SetWarnings False
    Dim stDocName As String

    stDocName = "mac_legen_totaal"
    DoCmd.RunMacro stDocName DoCmd.SetWarnings False 

Exit_btn_legen_Click:
    Exit Sub

Err_btn_legen_Click:
    MsgBox Err.Description
    Resume Exit_btn_legen_Click

DoCmd.SetWarnings True
End Sub
 
Laatst bewerkt:
Maak het niet te lastig...

Code:
Private Sub btn_legen_Click()

    DoCmd.SetWarnings False
    DoCmd.RunMacro "mac_legen_totaal"
    DoCmd.SetWarnings True

End Sub
Je had de regel DoCmd.SetWarnings True helemaal onderin staan, maar vanwege de routing in je code komt de procedure daar nooit terecht. En het commando wordt dus nooit uitgevoerd...
 
Het stond er inderdaad wat krom, maar de oplettende lezertjes, snappen het wel of krijgt een foutmelding waardoor .... als u begrijpt wat ik bedoel. ;-)
 
Laatst bewerkt:
@perpon:
Mijn opmerking sloeg ook niet op jouw opmerking (de code draait uiteraard niet in die laatste versie) maar meer op de totale code: d'r kunnen wat regeltjes weg :)
 
@octafish

Nu zie ik het pas je hebt de foutafhandeling weggehaald, maar dat zou ik toch niemand willen aanraden.

Jan
 
Laatst bewerkt:
Hallo mannen,

Excusses voor een late reactie. Het probleem bij mij is altijd dat ik bang ben dat ik veel dingen omzeep help, en weet wel dat je veel
ongedaan kan maken, maar dan zie ik vaak door de bomen het bos niet meer. Helemaal als het om bepaalde codes gaat.

Nu heb ik dus ook geleerd dat sommige regels gewoon niet nodig zijn. Waar ik dan denk zal wel erbij horen.
En mag niet weg, vandaar dat ik dat laat staan dan.

EDIT: Joepie dit werkt. Wat kan je soms moeilijk denken, terwijl het maar drie regeltjes zijn...
Wederom heel erg bedank voor jullie's hulp.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan