6 vba codes onder een knop zetten

Status
Niet open voor verdere reacties.

allard1977

Gebruiker
Lid geworden
7 feb 2011
Berichten
215
Code:
hallo allemaal,

Kan iemand mij helpen met het volgende probleem,
Ik heb 6 button's met ieder een andere vba code er onder. Nu moeten ze stap voor stap ingedrukt worden voor het proces maar ik zou het graag onder een button zetten. Maar lukt mij niet goed, 

groet allard.

dit is de code:
[CODE]Private Sub stap1show_Click()
On Error GoTo Err_btn_MTDeelnemers_Click

DoCmd.SetWarnings False

    Dim stDocName As String

    stDocName = "MT_002_MaakTabelOmHondenrsToeTeKennen"
    DoCmd.OpenQuery stDocName, acNormal, acEdit
    
    
    
    stDocName = "MT_002_MaakTabelOmHondenrsToeTeKennen_APP2"
    DoCmd.OpenQuery stDocName, acNormal, acEdit
    
    
        
    stDocName = "MT_002_MaakTabelOmHondenrsToeTeKennen_APP3"
    DoCmd.OpenQuery stDocName, acNormal, acEdit
    
    

    
DoCmd.SetWarnings True

MsgBox "Tabel is klaar !!!"

Exit_btn_MTDeelnemers_Click:
    Exit Sub

Err_btn_MTDeelnemers_Click:
    MsgBox Err.Description
    Resume Exit_btn_MTDeelnemers_Click
    
End Sub
Private Sub stap2show_Click()
On Error GoTo Err_btn_NummersToekennen_Click

Dim oRst As DAO.Recordset
Dim oDb As DAO.Database
Dim L As Integer

Set oDb = CurrentDb
Set oRst = oDb.OpenRecordset("T007_HondenummerstekennenMT", dbOpenTable)

While Not oRst.EOF

    L = L + 1
    oRst.Edit
  
  'If l < 10 Then
  
  oRst.Fields("hondnr").Value = L
  
  'End If
  
  oRst.Update
  oRst.MoveNext

Wend

oRst.Close
oDb.Close
Set oRst = Nothing
Set oDb = Nothing

MsgBox "Tabel is klaar !!!"

Exit_btn_NummersToekennen_Click:
    Exit Sub

Err_btn_NummersToekennen_Click:
    MsgBox Err.Description
    Resume Exit_btn_NummersToekennen_Click
    
End Sub
Private Sub stap3show_Click()
On Error GoTo Err_btn__TblHondenUpdaten_Click

DoCmd.SetWarnings False

    Dim stDocName As String

    stDocName = "UPD_002_HondnummersUpdatenInTBLHonden"
    DoCmd.OpenQuery stDocName, acNormal, acEdit
    
DoCmd.SetWarnings True

MsgBox "Update is afgewerkt !!!"

Exit_btn__TblHondenUpdaten_Click:
    Exit Sub

Err_btn__TblHondenUpdaten_Click:
    MsgBox Err.Description
    Resume Exit_btn__TblHondenUpdaten_Click
    
End Sub
Private Sub stap4show_Click()
On Error GoTo Err_btn_maaktblvoorbereidlinenrs_Click

DoCmd.SetWarnings False

    Dim stDocName As String

    stDocName = "MT_003_MaakTabelOmHorizTeZetten"
    DoCmd.OpenQuery stDocName, acNormal, acEdit

DoCmd.SetWarnings True

MsgBox "Tabel is klaar !!!"

Exit_btn_maaktblvoorbereidlinenrs_Click:
    Exit Sub

Err_btn_maaktblvoorbereidlinenrs_Click:
    MsgBox Err.Description
    Resume Exit_btn_maaktblvoorbereidlinenrs_Click
    
End Sub
Private Sub stap5show_Click()
On Error GoTo Err_btn_linennrsgevenintbl_Click

Dim oRst As DAO.Recordset
Dim oDb As DAO.Database
Dim L As Integer
Dim previous_val As String

L = 0

previous_val = ""

Set oDb = CurrentDb
Set oRst = oDb.OpenRecordset("T008_NummerHorizTeZettenMT", dbOpenTable)


While Not oRst.EOF

    L = L + 1
    
    oRst.Edit
    
    If oRst.Fields("persoonsnr").Value = previous_val Then
    
        oRst.Fields("line_nr").Value = L
        
    Else
    
        L = 1
        
        oRst.Fields("line_nr").Value = L
        
    End If
    
    previous_val = oRst.Fields("persoonsnr").Value
  
  oRst.Update
  oRst.MoveNext
  
  

Wend

oRst.Close
oDb.Close
Set oRst = Nothing
Set oDb = Nothing

MsgBox "Tabel is klaar !!!"

Exit_btn_linennrsgevenintbl_Click:
    Exit Sub

Err_btn_linennrsgevenintbl_Click:
    MsgBox Err.Description
    Resume Exit_btn_linennrsgevenintbl_Click
    
End Sub
Private Sub stap6show_Click()
On Error GoTo Err_btn_horizontaalinquery_Click

DoCmd.SetWarnings False

    Dim stDocName As String

    stDocName = "Cross_001_HondnummersHorizontaalzetten"
    DoCmd.OpenQuery stDocName, acNormal, acEdit
    
DoCmd.SetWarnings True

Exit_btn_horizontaalinquery_Click:
    Exit Sub

Err_btn_horizontaalinquery_Click:
    MsgBox Err.Description
    Resume Exit_btn_horizontaalinquery_Click
    
End Sub
Private Sub stap7show_Click()
On Error GoTo Err_btn_NummersHorzontInTabel_Click

DoCmd.SetWarnings False

    Dim stDocName As String

    stDocName = "MT_004_TabelHondnummersHorizontaal"
    DoCmd.OpenQuery stDocName, acNormal, acEdit
    
    
    
DoCmd.SetWarnings True

MsgBox "Tabel is klaar !!!"

Exit_btn_NummersHorzontInTabel_Click:
    Exit Sub

Err_btn_NummersHorzontInTabel_Click:
    MsgBox Err.Description
    Resume Exit_btn_NummersHorzontInTabel_Click
    
End Sub
 
Heb jij aandelen in muisfabrikanten? Of ben je een liefhebber van (veel en nodeloos) scrollen? Ik niet; probeer je code netjes en compact te houden.
Dit:
Code:
Private Sub stap1show_Click()
On Error GoTo Err_btn_MTDeelnemers_Click

DoCmd.SetWarnings False

    Dim stDocName As String

    stDocName = "MT_002_MaakTabelOmHondenrsToeTeKennen"
    DoCmd.OpenQuery stDocName, acNormal, acEdit
    
    
    
    stDocName = "MT_002_MaakTabelOmHondenrsToeTeKennen_APP2"
    DoCmd.OpenQuery stDocName, acNormal, acEdit
    
    
        
    stDocName = "MT_002_MaakTabelOmHondenrsToeTeKennen_APP3"
    DoCmd.OpenQuery stDocName, acNormal, acEdit
    
    

    
DoCmd.SetWarnings True

MsgBox "Tabel is klaar !!!"

Exit_btn_MTDeelnemers_Click:
    Exit Sub

Err_btn_MTDeelnemers_Click:
    MsgBox Err.Description
    Resume Exit_btn_MTDeelnemers_Click
    
End Sub
is hetzelfde als:
Code:
Private Sub stap1show_Click()
On Error GoTo Err_btn_MTDeelnemers_Click

    DoCmd.SetWarnings False
    DoCmd.OpenQuery "MT_002_MaakTabelOmHondenrsToeTeKennen", acNormal, acEdit
    DoCmd.OpenQuery "MT_002_MaakTabelOmHondenrsToeTeKennen_APP2", acNormal, acEdit
    DoCmd.OpenQuery "MT_002_MaakTabelOmHondenrsToeTeKennen_APP3", acNormal, acEdit
    DoCmd.SetWarnings True
    MsgBox "Tabel is klaar !!!"
    Exit Sub

Err_btn_MTDeelnemers_Click:
    MsgBox Err.Description
    
End Sub
En zo kan ik nog wel even doorgaan. Slordig programmeren begint met slordig opmaken :)
Je kunt een knop maken waarin je alle knoppen achter elkaar aanroept.

Code:
Private Sub KnopAlles_Click()
     stap1show_Click
     stap2show_Click
     stap3show_Click
     stap4show_Click
     stap5show_Click
     stap6show_Click
     stap7show_Click
Quick and dirty dus. Wil je het netjes, dan zet je alle procedure code onder de verzamelknop.
 
Beste Octafish,
dat ziet er veel beter uit. ga direct aan het werk. Heb de database overgenomen van iemand. dit is voor onze hondenvereniging.
Maar zou toch de nette manier willen onder een knop.
is dit dan alles onder de kop zetten en dan alle click en err stappen verwijderen?

Groet Allard
 
De onderste code roept de code van alle losse knoppen op. Dus dat werkt sowieso goed, mits de knoppen zelf goed werken natuurlijk. Die kun je dan ofwel verbergen, ofwel weggooien. De code blijft namelijk (heb je eindelijk eens nut van een 'bug' in Access) altijd staan, ook al gooi je het bijbehorende object weg.
 
Beste OctaFish,

Heel erg bedankt. met je snelle en goeie antwoord. Ik ga aan het werk.

groeten Allard
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan