Office: (Office 2007) Wiederholungen im VBA leichter?

Helfe beim Thema Wiederholungen im VBA leichter? in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hallo, bin hier an einem Formular wo ich diverse Funktionen immer wieder neu aufrufen möchte. Jetzt wird mir der gesamte Code allerdings ein wenig... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von Gerd1712, 22. September 2010.

  1. Wiederholungen im VBA leichter?


    Hallo,

    bin hier an einem Formular wo ich diverse Funktionen immer wieder neu aufrufen möchte. Jetzt wird mir der gesamte Code allerdings ein wenig unübersichtlich. Gleich dabei gesagt, bin Anfänger.

    Wie kann ich das leichter und übersichtlicher machen?
    Ich weiß das ich das irgendwie mit den Modulen hinbekommen kann, allerdings sind bisher alle Versuche in dieser Richtung gescheitert.

    Hier der Code:

    Option Compare Database


    Private Sub ek_anz_Click()

    If Me!ek_anz = -1 Then
    Me!EK.Visible = True
    If Me!Inkl_vorsteuer = 0 Then
    Me!Inkl_vorsteuer.Visible = False
    Else
    Me!Inkl_vorsteuer.Visible = True
    End If
    Else
    Me!EK.Visible = False
    Me!Inkl_vorsteuer.Visible = False
    End If

    End Sub

    Private Sub Form_Load()

    Me!ID_KFZ.Visible = False
    DoCmd.MoveSize , , 8500, 3500
    Me!EK.Visible = False
    Me!Inkl_vorsteuer.Visible = False

    If Me!Inkl_Umsatzsteuer = 0 Then
    Me!Inkl_Umsatzsteuer.Visible = False
    Else
    Me!Inkl_Umsatzsteuer.Visible = True
    End If


    End Sub

    Private Sub txtsuche_AfterUpdate()

    DoCmd.MoveSize , , 17742, 12923

    If Me!txtsuche = "" Then
    Me!ID_KFZ.Visible = False
    Else
    Me!ID_KFZ.Visible = True
    End If

    Dim strSuchen As String
    strSuchen = Me!txtsuche
    Me![ID_KFZ].SetFocus
    DoCmd.FindRecord strSuchen, acStart
    Me!txtsuche.SetFocus


    If Me!ID_KFZ strSuchen Then
    MsgBox " KFZ mit der Nummer - " & strSuchen & " - nicht gefunden!"
    Me!txtsuche.SetFocus
    Me!txtsuche = ""
    Me!ID_KFZ.Visible = False
    End If



    End Sub
    Private Sub cmdnext_Click()
    On Error GoTo Err_cmdnext_Click

    Me!ID_KFZ.Visible = True
    DoCmd.GoToRecord , , acNext
    DoCmd.MoveSize , , 17742, 9923

    If Me.NewRecord Then
    MsgBox "Letzter Datensatz erreicht!"
    DoCmd.GoToRecord , , acLast
    Me!txtsuche = ""
    End If

    Me!ek_anz = 0
    Me!EK.Visible = False
    Me!Inkl_vorsteuer.Visible = False

    If Me!Inkl_Umsatzsteuer = 0 Then
    Me!Inkl_Umsatzsteuer.Visible = False
    Else
    Me!Inkl_Umsatzsteuer.Visible = True
    End If


    Exit_cmdnext_Click:
    Exit Sub

    Err_cmdnext_Click:
    MsgBox Err.Description
    Resume Exit_cmdnext_Click

    End Sub
    Private Sub cmdprevious_Click()
    On Error GoTo Err_cmdprevious_Click

    Me!ID_KFZ.Visible = True
    DoCmd.GoToRecord , , acPrevious
    DoCmd.MoveSize , , 17742, 9923

    Me!ek_anz = 0
    Me!EK.Visible = False
    Me!Inkl_vorsteuer.Visible = False

    If Me!Inkl_Umsatzsteuer = 0 Then
    Me!Inkl_Umsatzsteuer.Visible = False
    Else
    Me!Inkl_Umsatzsteuer.Visible = True
    End If

    Exit_cmdprevious_Click:
    Exit Sub

    Err_cmdprevious_Click:
    MsgBox "Sie haben den ersten Datensatz erreicht!"
    Me!txtsuche = ""
    Resume Exit_cmdprevious_Click

    End Sub
    Private Sub cmdfirst_Click()
    On Error GoTo Err_cmdfirst_Click

    Me!ID_KFZ.Visible = True
    DoCmd.GoToRecord , , acFirst
    DoCmd.MoveSize , , 17742, 9923

    Me!ek_anz = 0
    Me!EK.Visible = False
    Me!Inkl_vorsteuer.Visible = False

    If Me!Inkl_Umsatzsteuer = 0 Then
    Me!Inkl_Umsatzsteuer.Visible = False
    Else
    Me!Inkl_Umsatzsteuer.Visible = True
    End If

    Exit_cmdfirst_Click:
    Exit Sub

    Err_cmdfirst_Click:
    MsgBox Err.Description
    Resume Exit_cmdfirst_Click

    End Sub
    Private Sub cmdlast_Click()
    On Error GoTo Err_cmdlast_Click

    Me!ID_KFZ.Visible = True
    DoCmd.GoToRecord , , acLast
    DoCmd.MoveSize , , 17742, 9923

    Me!ek_anz = 0
    Me!EK.Visible = False
    Me!Inkl_vorsteuer.Visible = False

    If Me!Inkl_Umsatzsteuer = 0 Then
    Me!Inkl_Umsatzsteuer.Visible = False
    Else
    Me!Inkl_Umsatzsteuer.Visible = True
    End If

    Exit_cmdlast_Click:
    Exit Sub

    Err_cmdlast_Click:
    MsgBox Err.Description
    Resume Exit_cmdlast_Click

    End Sub
    Private Sub cmdclose_Click()
    On Error GoTo Err_cmdclose_Click


    If Me.Dirty Then Me.Dirty = False
    DoCmd.Close

    Exit_cmdclose_Click:
    Exit Sub

    Err_cmdclose_Click:
    MsgBox Err.Description
    Resume Exit_cmdclose_Click

    End Sub


    Super lieben Dank schon mal für die Hilfe.

    :)
     
  2. Hallo
    Ich habe dir mal die ersten beiden Teile etwas vereinfacht
    Code:
    Dein Code wimmelt nur so von deinen unnötigen if then
    Bereinige das zunächst mal.
    Warum muß ständig sichtbar/unsichtbar gemacht werden?
    Denke mal über angepasste Formulare nach.
    Zum Thema Function um es einfacher zu gestalten.
    Deine klickergebnisse geben da nichts her und für Afterupdate, Load macht das keinen Sinn

    Bitte in Zukunft deinen Code in codetags setzen
    ""
     
  3. Nu das hab ich jetzt garnicht verstanden. Sagte doch bin blutiger Anfänger und ich freu mir hier schon nen Keks ans Bein das ich das was ich will auch so erreiche.

    Ist halt nur doof das ich da immer alles an diversen Stellen wiederholen muss das es auch klappt.

    Anzeigen und nicht anzeigen dienst einfach nur dazu dem Kunden den Einkaufspreis nicht zu zeigen wenn ich nen Datensatz aufrufe oder zum nächsten gehe. Wenn Kunde nciht guckt dann kann ich mir den kurz ansehen - mehr wollte ich da eigentlich nicht mit erreichen.

    Dann z.B. das Vorsteuerfeld oder Umsatzsteuerfeld braucht nur angezeigt werden wenn auch entsprechende Umstatzsteuer in den Preisen enthalten sind. Bei EInkauf von Privatleuten sind die Autos (handelt sich um Autos) nach $25 UStG Umsatzsteuerfrei. Also dann soll das Umsatzsteuerfeld nciht angezeigt werden. Andersherum kann ein Auto aber auch mit USt eingekauft werden und an einen EU Bürger nach dem selben § netto verkauft werden.

    Mir ging es einfach nur darum ob ich zum beispiel die ständigen Wiederholungen der If funktion für das Anzeigen oder nicht anzeigen irgendwie leichter gestalten kann.........

    Sorry aber das was du mir da jetzt geantwortet hast verwirrt mich *eek.gif*

    Bin halt in den ersten Schritten bei Access.......
     
  4. Wiederholungen im VBA leichter?

    Genau das hat Dir doch kama beispielhaft demonstriert!?!

    Übrigens ergänze mal Deinen Sub-Kopf:

    Code:
    Das zwingt Dich zur Deklaration von Variablen und hilft Fehler aufzuspüren.
     
  5. Ja klar und dennoch mus ich das dann immer wieder unter jeder funktion erneut komplett eingeben.
    Dachte nur das es ne Möglichkeit gibt das einmal in nem Modul zu hinterlegen und ich die Funktion dann nur entsprechend wieder aufrufen kann!

    Aber dennoch Danke!
     
  6. Code:
    Also habe das nun auch mal Probiert, doch an dem Ergebnis was ich wollte schiesst das voll vorbei. Denn mit dem Umschaltbutton wird mir jetzt entweder der EK oder die darin enthaltene VOrsteuer angezeigt.

    Ziel war es aber das ich beides entweder sehe oder aber auch nicht!

    Code:
    Hier ziegt er mir trotz 0 Wert im Feld "inkl_umsatzsteuer" der Tabelle das Feld an - in diesem Fall mit dem Wert -1,00!

    Auch das ist nicht gewünscht gewesen, sondern wenn in der entsprechenden Tabelle unter "inkl_umsatzsteuer" der Wert 0 steht sollte das Feld im Formular ausgeblendet werden. Angezeigt werden soll das nur wenn dort ein positiver Wert existiert.

    Also frag ich mich warum mein code unnötige if - then enthält - wenn ich mein Ziel doch auf diese Art erreiche aber nicht mit der beispielhaften Demonstration? *eek.gif* *wink.gif*
     
  7. Hallo Gerd
    Lass uns mal eine Nacht drüber schlafen. Morgen gehts dann weiter.
     
  8. Wiederholungen im VBA leichter?

    Code:
    Na klar, weil Dein Code einen boolschen Wert (TRUE = -1) liefert. Es muss heißen
    Code:
    Im Übrigen kannst Du Dir die Unsichtbarmachung von Steuerelementen beim Laden sparen, wenn Du sie bereits im Entwurf auf unsichtbar setzt.
     
  9. Ja klar wenn ich die im Entwurf als unsichbar setze dann sind die aber auch unsichtbar wenn der Wert nicht 0 ist. Und dann soll das Feld ja schließlich angezeigt werden.

    Zur besseren Verständnis habe ich die DB mal hochgeladen. Vielleicht ist es dann besser zu verstehen was ich meine *g*

    Datenbank

    Und wenn ich dann schon mal am Fragen bin......

    in den Formularen sind die Extras als Auflistung im UFO enthalten.....

    WEnn ich nun einen Bericht (Kaufvertrag) erstellen will, dann möchte ich das die Extras zu dem entspechenen KFZ in folgendender Form in diesem Bericht erscheinen

    Extra1, Extra2, Extra3, Extra4,........

    Da aber jedes Extra ein eigener Datensatz ist bin ich bis jetzt noch nicht darauf gekommen wie ich das entsprechend hinbekomme!

    @kama: Die Antwort gestern sollte weder dich noch jemand anderen angreifen, bin nur mal dem Beispiel gefolgt und hab dann halt dieses ergebnis erhalten!
     
  10. Hm, so richtig testen kann ich die DB nicht, da der Verweis fehlt auf
    K2 Design Listing 1.0 Type Library
     
  11. Hallo
    Ich habe mich zu keinem Zeitpunkt angegegriffen gefühlt.
    Hier dein Code
    Beispiel, es werden die gewünschten daten als Tooltip angezeigz wenn man über VK geht
    Alles bereinigt
    Wiederkehrende zeilen Beispielhaft in eine Function zusammenfast
    Code:
     
  12. K2 design listing ist nen Verweis auf den TurboLister von Ebay - warum auch immer der aktiv ist. Bei mir funktioniert das alles auch wenn ich den Verweis deaktivere!

    Also sollte das doch nix machen oder?
     
  13. Wiederholungen im VBA leichter?

    OK.

    Füge zunächst mal das von mir in #4 empfohlene Option Explicit ein und debugge anschließend. Da werden Dir Programmierfehler angezeigt.

    Unklar ist mir die Verwendung der Formularereignisse Beim Anzeigen und Vor Eingabe.

    Unklar ist auch, warum Du beim Abwählen von Extras alle Extras per Code abwählst. *eek.gif*
     
  14. Option Explicit eingefügt - Fehlermeldung gab es nur bei ner Deklaration von der Variable k6 und verkauf unter vk_eintr_Click. Hätte da gleich auf long gehen sollen wenn ich lange Zahlen eintippe *G*

    Die beide dinge beim ANzeigen und beim Laden - das habe ich so erhalten.

    Wenn ich die rausnehme hat es den Effekt das die Extras nicht mehr so Funktionieren wie sie sollen.

    Und warum das abwählen der Extras per Code passiert - nun schau dir mal das ganze genau an. Erklären kann ich es dir nicht, da ich das UFO als Beispiel erhalten habe und nur entsprechend umfunktioniert habe.

    Wie gesagt ich bin Blutiger Anfänger!!!!!! Und such mir das meiste aus drei verschiedenen Büchern zusammen und probiere solange aus bis das genau das passiert was ich mir vorstelle!
     
  15. Hm, Gerd, unter diesen Umständen würde ich an Deiner Stelle sämtlichen Code entfernen und selbst konzipieren, was wann geschehen soll - zunächst mit Papier und Bleistift.

    Code zu übernehmen, ohne ihn zu verstehen, ist von Übel. *frown.gif*
     
Thema:

Wiederholungen im VBA leichter?

Die Seite wird geladen...
  1. Wiederholungen im VBA leichter? - Similar Threads - Wiederholungen VBA leichter

  2. Bedingte Formatierung / Wiederholungen "ausblenden"

    in Microsoft Excel Hilfe
    Bedingte Formatierung / Wiederholungen "ausblenden": Einen schönen guten Tag, Bräuchte mal hilfe bei der Bedingen Formatierung. Ich würde gerne wiederholungen "ausblenden" (schriftfarbe) , so das immer nur der erste werd klar gezeigt wird sowohl...
  3. Spaltenwerte wiederholen

    in Microsoft Excel Hilfe
    Spaltenwerte wiederholen: Hallo Zusammen Ich habe folgende Probleme Ich habe eine Bereitschaftsliste mit Datumswert mit allen Sonntag und den Feiertagen und in einer weiteren Liste die Namen der Personen. Problem 1 Wie...
  4. Ausblenden von Inhalten per Checkbox / wiederholen von Inhalten

    in Microsoft Word Hilfe
    Ausblenden von Inhalten per Checkbox / wiederholen von Inhalten: Hallo! Ich bin neu in der Community und hoffe auf Eure Unterstützung! Für meine Kollegen entwickle ich derzeit ein Formular, welches diverse Inhaltssteuerungselemente zum Ausfüllen enthält....
  5. Wiederholende Erste Spalte autom. "Gruppieren"?

    in Microsoft Excel Hilfe
    Wiederholende Erste Spalte autom. "Gruppieren"?: Ich bearbeite gerade eine Excel-Tabelle die man auf Arbeit mal so nacheinander erstellt hat. Darin sind Lieferantenpreise aufgestachelt (wollte ich eigentlich in eine Access-Datenbank packen, aber...
  6. Excel Zellenwert aus vorgegebenen Bereich ohne Wiederholung wiedergeben

    in Microsoft Excel Hilfe
    Excel Zellenwert aus vorgegebenen Bereich ohne Wiederholung wiedergeben: Guten Tag, ich bin derzeit dabei mir ein Tabellenblatt aufzubauen, wo ich anhand von Fußballergebnissen mir ein simples Auslosungstool anhand einfacher Formeln baue. Nun bin ich aber beim...
  7. Textbausteine in unterschiedlichen Formatierungen wiederholen

    in Microsoft Word Hilfe
    Textbausteine in unterschiedlichen Formatierungen wiederholen: Hallo zusammen, ich arbeite gerade an der Erstellung einer neuen Word-Vorlage im Büro und stehe vor folgendem Problem: Mein Plan ist, dass der Nutzer beim Öffnen der Vorlagedatei in...
  8. Code Wiederholen / VBA

    in Microsoft Access Hilfe
    Code Wiederholen / VBA: Guten Morgen zusammen, erstmal vorweg , bin kein experte mit Access, ich würde sagen noch ein kleiner anfänger aber schon etwas fortgeschritten...... Und sehr lernfähig ;-) So nun zu meinen...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden