Access-Formulare mit VBA [] (Access-Formulare mit VBA), Lektion, Seite 722619
https://www.purl.org/stefan_ram/pub/access_formulare_vba (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram
VBA-Kurs

VBA  in Access -Formularen

Die Erklärungen in dieser vorläufigen Lektion sind knapp und könnten sogar teilweise noch fehlerhaft sein!

Die Access -Formularen können mit VBA  genauso verwendet werden wie in Excel, allerdings gibt es noch zusätzliche Möglichkeiten, um ein Formular oder ein Steuerelement mit einer Datenquelle zu verbinden. Außerdem werden viele Funktionen über »DoCmd« realisiert.

Namen, die mit »0« enden, stehen beispielhaft für Namen von Datenbankobjekten, die an ihrer Statt dort einzusetzen sind.

Datenquelle eines Formulars

Ein Formular kann mit einer Tabelle verbunden werden, und dann kann in jener navigiert werden.

Hierzu dient die Eigenschaft »RecordSource«.

Eigenschaften eines Formulars

Hier behandeln wir besonders diejenigen Eigenschaften eines Formulars, welche mit der Bindung an eine Datenquelle zu tun haben.

DoCmd.CurrentRecord Die 1-basierte Kennzahl des aktuellen Datensatzes.

DoCmd.NewRecord Ob dies ein neu eingefügter Datensatz ist

Ausdrücke in einem Formulars

Hier behandeln wir einige Ausdrücke, die in Prozeduren eines Formulars nützlich sein könnten.

DoCmd.DCount( "*", RecordSource ) Zählt die Datensätze der Datenquelle

Navigation eines Formulars

Zum Datensatz 7 des Formulars »FormularPerson« gehen.
DoCmd.GoToRecord acDataForm, "FormularPerson", acGoTo, 7
»acDataForm« gibt den Typ des Objektes an, das navigiert werden soll (acActiveDataObject (Fehlwert), acDataForm, acDataQuery oder acDataTable)
»"FormularPerson"« gibt den Namen des Objektes an, das navigiert werden soll.
»acGoTo« gibt an, daß zu einer Position gesprungen werden soll.
»7« Zielposition (acGoTo) oder Versatz (acNext, acPrevious)
Einige typische Zeilen
DoCmd.GoToRecord,, acFirst

DoCmd.GoToRecord,, acLast

DoCmd.GoToRecord,, acNext

DoCmd.GoToRecord,, acPrevious

DoCmd.GoToRecord,, acNewRec

DoCmd.GoToPage zu Seite gehen

DoCmd.FindRecord Suchtext[, Vergleichstyp] [, Groß-/Kleinschreibung][, Suchen][, Formatierung] [, aktuelles Feld durchsuchen][, Von Anfang an]

Einige typische Zeilen
DoCmd.FindRecord o.v( w ), , True, , True

DoCmd.FindRecord x, , True, , True

Daten und Formulare

DoCmd.Requery Daten auffrischen

DoCmd.RepaintObject Bildschirmaktualisierungen eines Formulars ausführen

Steuerelemente

Von einem Formular aus werden Steuerelemente mit Ausdrücken wie »Me!control0« erreicht.

Einige Steuerelemente können ebenfalls direkt mit Datenquellen verbunden werden.

Die Datenquelle eines Steuerelements heißt »SourceObject«.

Beispiel
Me.control0.SourceObject = "Abfrage.t"

Steuerelemente-Eigenschaften:

Enabled Kann dieses Steuerelement für Eingaben verwendet werden?

Visible Ist dieses Steuerelement sichtbar?

DoCmd.GoToControl Fokus auf Steuerelement setzen

DoCmd.GoToControl "x"

Unterformulare

Von einem Formular aus werden Unterformulare mit Ausdrücken wie »Me!subform0.Form« erreicht.

Um in einem Unterformular navigieren zu können, muß dies erst den Fokus erhalten: »Me![subform0].SetFocus«

Das übergeordnete Formular eines Unterformulars heißt »Parent«.

Schließen eines Objekts

DoCmd.Close [Objekttyp, Objektname], [Speichern]

Suchen

DoCmd.GoToRecord (siehe oben)

DoCmd.FindRecord (siehe oben)

DoCmd.FindNext Dialog zum Suchen öffnen

Anwendungssteuerung

DoCmd.Quit Access-Anwendung schließen

DoCmd.SetWarnings Warnungsanzeige festlegen

DoCmd.RunMacro Makro ausführen

DoCmd.RunSQL SQL-Abfrage vornehmen

DoCmd.Echo Bildschirmaktualisierung ein- oder ausschalten

Filter

DoCmd.ApplyFilter Anwendung eines Filters

DoCmd.ShowAllRecords Filter deaktivieren

Verschiedenes

DoCmd.Beep Piepsen

DoCmd.Hourglass Sanduhr an/aus

Ereignisse

DoCmd.CancelEvent Ereignis abbrechen

Objektbehandlung

DoCmd.CopyObject Access-Objekt kopieren

DoCmd.DeleteObject Objekt löschen

DoCmd.Rename Objekt umbenennen

DoCmd.SelectObject Access-Objekt fokussieren

DoCmd.Save Access-Objekt speichern

DoCmd.SendObject Objekt in Mail versenden

Öffnungen

DoCmd.OpenDataAccessPage Datenzugriffsseite öffnen

DoCmd.OpenDiagram Diagramm öffnen

DoCmd.OpenModule Modul öffnen

DoCmd.OpenQuery Abfrage öffnen

DoCmd.OpenReport Bericht öffnen

DoCmd.OpenStoredProcedure Prozedur öffnen

DoCmd.OpenTable Tabelle öffnen

DoCmd.OpenView Sicht öffnen

DoCmd.OpenForm Name [, Ansicht][, Filtername] [, Bedingung][, Datenmodus][, Fenstermodus] [, Öffnungsargumente]

DoCmd.OpenForm "x"

Fenstersteuerung

DoCmd.Maximize Fenster maximieren

DoCmd.Minimize Fenster minimieren

DoCmd.MoveSize Fenster verschieben

DoCmd.MoveSize 0, 0

DoCmd.Restore vorherige Fenstergröße wiederherstellen

Import, Export und Drucken

DoCmd.OutputTo Tabelle oder Abfrage exportieren

DoCmd.TransferDatabase Tabelle oder Abfrage importieren, exportieren oder verknüpfen

DoCmd.TransferSpreadsheet Tabelle einlesen

DoCmd.TransferText Text einlesen

DoCmd.PrintOut drucken

DoCmd.PrintOut acSelection

Menüs und Symbolleisten (veraltet?)

DoCmd.AddMenu hinzufügen eines Menüs

DoCmd.DoMenuItem Menükommando ausführen

DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70

DoCmd.RunCommand Menübefehl ausführen

DoCmd.SetMenuItem Menüeintrag festlegen

DoCmd.ShowToolbar Symbolleiste darstellen

Form-Einträge

Datensätze können gefiltert werden.

Einige typische Zeilen
Me.x.Form.Filter = "c like 'abc'" : Me.x.Form.FilterOn = True : Me.x.SourceObject = "t"

Me.x.Form.Filter = "" : Me.x.Form.FilterOn = False : Me.x.SourceObject = "t"

Aktualisierung

Einige typische Zeilen
Me.Eingebettet31.Form.Requery

Me.Refresh

Schließen und Speichern

Einige typische Zeilen
Me.SetFocus : DoCmd.Close

Me.Visible = False : DoCmd.Close acForm, "x", acSaveYes

Diverses

CurrentDb.Execute x
Ähnlich zu DoCmd.RunSQL, soll aber einige Vorteile haben. Beispielsweise abfangen von Fehlern:
CurrentDb.Execute "SQL-COMMAND WITHOUT SEMICOLON", dbFailOnError
Set kv_table = CurrentDb.CreateQueryDef( "t", q )
Neue Abfrage anlegen.
Dim o As Object : Set o = CurrentProject.AllForms( "x" )
Kollektion aller Forms.
Forms![ x ].Visible = True : Forms![ x ].Repaint: m : Forms![ x ].Visible = False
Repaint verlangt sofortiges Malen der Form.
Let Me.Eingebettet20.Form![ x ]= "u"
Schreiben in Feld einer eingebetteten Form.
Let kv_t = Me.Eingebettet20![ x ]
Lesen aus Feld einer eingebetteten Form.
q = "SELECT * FROM t" : Me.Eingebettet31.Form.RecordSource = q : Me.Eingebettet31.Form.Requery
Abfrage als Datenquelle festlegen und Anzeige aktualisieren
rs.Fields( "f" ) = Me.f.value
Wert aus einem anderen Formfeld in ein Datenbankfeld kopieren.
Public d As DAO.Database : Set d = Access.Application.CurrentDb
Datenbankobjekt merken (normalerweise nicht nötig).

Formularereignisse

Formularereignisse finden sich auch im Eigenschaftendialog (F4) eines Formulars.

Seiteninformationen und Impressum   |   Mitteilungsformular  |   "ram@zedat.fu-berlin.de" (ohne die Anführungszeichen) ist die Netzpostadresse von Stefan Ram.   |   Eine Verbindung zur Stefan-Ram-Startseite befindet sich oben auf dieser Seite hinter dem Text "Stefan Ram".)  |   Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram. Schlüsselwörter zu dieser Seite/relevant keywords describing this page: Stefan Ram Berlin slrprd slrprd stefanramberlin spellched stefanram722619 stefan_ram:722619 Access-Formulare mit VBA Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd722619, slrprddef722619, PbclevtugFgrsnaEnz Erklärung, Beschreibung, Info, Information, Hinweis,

Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram.
https://www.purl.org/stefan_ram/pub/access_formulare_vba