Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: hijack61 am September 04, 2010, 18:40:06

Titel: nächste zeile unsichtbar machen
Beitrag von: hijack61 am September 04, 2010, 18:40:06
hallöchen, könnte mir jemand sagen wie ich bei einem formular in Tabellarischer ansicht, die nächste zeile unsichtbar machen kann mit einem makro (habe keine erfahrung mit vba)????. Wenn ich aber dann eine schaltfläche zum abschluss des vorganges drücke, sollte die neue zeile wieder sichtbar werden. falls eine solche lösung existiert wo soll ich dieses makro dann einbauen. danke für hilfe. helmut
Titel: Re: nächste zeile unsichtbar machen
Beitrag von: database am September 04, 2010, 18:53:30
Hallo,

bin mir nicht ganz im Klaren, was du meinst ---> nächste Zeile ...

Meinst du damit die Zeile, in die du neue Daten eingeben kannst?
Mittels einem Makro lässt sich die neue Zeile nicht ausblenden, damit kann nur der Navigationsbereich gesperrt werden.

Ist dein Datenblatt ein Unterformular in einem Hauptformular?
Gehe davon aus, dass es so sein wird - sonst hast du nämlich keine Möglichkeit eine Schaltfläche zu erstellen.
Also KÖNNTEST du folgendes machen:

Erstelle auf dem Hauptformular eine UMSCHALTFLÄCHE und benenne diese 'tglDataAdd'
Als Beschriftung gibst du "Aus" ein.
Dann kopierst du den folgenden Code ins Klick-Ereignis dieses Buttons


Private Sub tglDataAdd_Click()

   If Me.tglDataAdd.Caption = "Ein" Then
       Me.frmHauptFormUfo.Form.AllowAdditions = True
       Me.tglDataAdd.Caption = "Aus"
   Else
       Me.frmHauptFormUfo.Form.AllowAdditions = False
       Me.tglDataAdd.Caption = "Ein"
   End If
   
End Sub


den Namen 'frmHauptFormUfo' änderst du in den Namen DEINES Unterformularobjekts!

Klickst du nun auf den Button ändert sich die Beschriftung auf 'Ein' und die neue Zeile im Datenblatt ist verborgen.
Ein weiterer Klick auf die Umschaltfläche ändert die Beschriftung auf 'Aus' und die Eingabezeile ist sichtbar.
Statt 'Aus' und 'Ein' kannst du natürlich jede beliebige Beschriftung nehmen.
Der Name des Buttons ist von mir in der Form vorgegeben und auch den kannst du ändern - im Formularentwurf und dann natürlich auch im Code!!!!

HTH
Peter

p.s. Das DBWiki ist leider nicht mehr erreichbar daher ein kleiner Auszug in Kopie...

Zitat
Access Anfänger: Die Zehn Gebote
aus DBWiki, dem Datenbank-Entwickler-Wiki


 1. Du sollst normalisierte Tabellen verwenden und das Konzept relationaler Datenbanken verstehen, bevor du mit irgend etwas anderem beginnst.

 2. Du sollst deine Benutzer niemals Tabellen oder Abfragen direkt sehen lassen, sondern immer nur in der Form von
     Formulare oder Berichten und du sollst keine "Nachschlagefelder" verwenden, denn solches ist von Übel.

 3. Du sollst einer Namenskonvention folgen und niemals Leer- oder Sonderzeichen in Namen verwenden.

 4. Du sollst keine Makros verwenden, sondern VBA-Prozeduren, und diese sollst du hinreichend kommentieren.

 5. Du sollst verstehen, was ein Fehlerbehandler macht und in allen deinen Prozeduren einen solchen einbauen.

 6. Du sollst deine Datenbanken aufteilen und die Benutzer mit einer lokalen Kopie des Frontends arbeiten lassen.

 7. Du sollst keine Autowert-Felder verwenden, wenn das Feld eine Bedeutung für deine Benutzer hat
     oder wenn du Kontrolle über dieses Feld haben willst.

 8. Du sollst keinen Code anderer Leute kopieren, bevor du wenigstens versucht hast, herauszufinden, was dieser Code macht.

 9. Du sollst kein "SendKeys", kein "DoMenuItem" und kein "ApplyFilter" verwenden und "GoTo" nur in der Fehlerbehandlung,
     denn alles andere wird dich vom rechten Pfad abbringen.

10. Du sollst deine Datenbank regelmäßig sichern und nicht auf der Produktionsdatenbank, sondern auf einer
     Entwicklungsversion arbeiten, und du wirst sehen, es ist wohlgetan.


;) ;) ;)
Titel: Re: nächste zeile unsichtbar machen
Beitrag von: hijack61 am September 04, 2010, 23:15:28
ok, hi peter, danke für meldung, habe hier nicht erwähnt das ich leider noch nicht soweit bin mit vb, also meine ganze datenbank ist mit makros geschrieben, aber dank deiner info habe ich mir bereits alles heruntergeladen was ich über vb gefunden habe und werde wenn ich wieder zuhause bin auch sofort mit dem studium anfangen da die beschränkten möglichkeiten mit makros mir schoen zugesetzt haben. bin jetzt seit 5 tagen 200km weit weg beim kunden.
ok zum genau definiertem problem, ich habe ein kassen ein/aus formular geschrieben mit 3 verschiedenen währungen ein und aus, also alleine 6 spalten nur mit währungen, danach noch 4 spalten mit der MWST und dem nettobetrag bei ein peso und aus peso (je 2). Als erstes habe ich ein kombinationsfeld mit dem kassenvorgängen:  peso ein, peso aus, dollar ein, dollar aus, euro ein, euro aus. in der zeile der ereignisse "bei geändert" habe ich makro eingebaut das jeweils die übrigen felder sperrt damit bei diesen vielen spalten nicht irrtümlich falsch eingegeben wird. das problem liegt nun daran, das wenn ein benutzer irrtümlich von einer Zeile (das formular ist nicht mit unterformular sondern in tabellarischer ansicht) in die obere oder untere springt und nicht das anfangsfeld (kassenvorgängen) als erstes benutzt, alle daten geändert werden können in den darüber oder darunter liegenden zeilen. also ist mein problem nicht unbedingt das man die nächste zeile unsichtbar macht, sondern wie die zeilen nach abschluss des vorganges blockiert werden können. ich habe leider keine andere moeglichkeit da der kunde das form so haben will. vielen dank im voraus, aber bitte bedenken das mir eine makro lösung im augenblick mehr hilft

helmut
Titel: Re: nächste zeile unsichtbar machen
Beitrag von: database am September 05, 2010, 07:42:38
Hallo Helmut, guten Morgen!

...und genau das sind die Probleme, die sich mit Formularen ergeben, die in der Datenblattansicht geöffnet werden.
Mir ist keine Möglichkeit bekannt, wie in so einer Ansicht eine beliebige Zeile für die Dateneingabe 'geöffnet' und alle darüber oder darunterliegenden Zeilen gesperrt werden können.

Wenn du Access 2007 benutzt, dann wäre eine Alternative jene, dass du ein sauberes Erfassungsformular erstellst in dem AUSSCHLIESSLICH die Felder beschreibbar sind, die du benötigst.
Hier kann dann mittels Makro (soweit es möglich ist) und VBA (hier sind die Möglichkeiten 'fast' unbegrenzt) jede gewünschte Konstellation abgebildet und so abgesichert werden, dass keine Verwechslungen stattfinden können. Das Formular soll als 'geteiltes' Formular ausgeführt werden, wodurch die zugrundeliegenden Datensätze in Tabellenform zusätzlich angezeigt werden KÖNNEN. Eingaben und Auwahlen finden nur in den von dir bestimmten Feldern (z.B. im oberen Teil des Formulars statt).
Recherchiere mal im Netz und / oder sieh mal hier rein:
http://office.microsoft.com/de-at/access-help/erstellen-eines-geteilten-formulars-HA010075994.aspx (http://office.microsoft.com/de-at/access-help/erstellen-eines-geteilten-formulars-HA010075994.aspx)
http://office.microsoft.com/de-at/access-help/demo-gleichzeitiges-anzeigen-eines-formulars-und-des-zugehorigen-datenblatts-HA010254900.aspx?CTT=1 (http://office.microsoft.com/de-at/access-help/demo-gleichzeitiges-anzeigen-eines-formulars-und-des-zugehorigen-datenblatts-HA010254900.aspx?CTT=1)
Diese Art von Formularen gibt es erst seit Access 2007, davor gab es keine geteilten Formulare.

Zudem zweifle ich ein bisschen an der Richtigkeit des Tabllenaufbaues, denn wenn du in einer Tabelle mehrere Währungen führst stimmt da was nicht ganz - OK das steht aber auf einem anderen Blatt.

p.s.
Kann mich jetzt wieder erinnern - du bist der Mensch in der Karibik ... und ich sitz hier im kalten Nebel *aaarggghhh*
Gebe dir noch eine Buchempfehlung mit ...  ISBN: 978-3-8158-3001-7 (Verlag Data Becker & Co KG, Düsseldorf)
                                                                   Manuela Kulpa, Stefan Kulpa,  ACCESS 2007

HTH
Peter