Grundlegendes zur Vorlage "Probleme" in Access 2010 (maschinell übersetzt)

Office 2010

Wichtiger Hinweis Wichtig

Dieser Artikel wurde maschinell übersetzt. Bitte beachten Sie den Haftungsausschluss. Die englische Version des Artikels ist als Referenz hier verfügbar: here.

Zusammenfassung:  In diesem Artikel werden die in der Microsoft Access 2010-Webdatenbankvorlage "Probleme" verwendeten Entwurfsmuster beschrieben.

Fünf Web-Datenbank-Vorlagen sind mit Microsoft Access 2010 enthalten. Sie dienen, damit Benutzer mit Microsoft Access sofort in allgemeinen Szenarien produktiver arbeiten können. Sie können auch die Entwickler beim Erstellen von Webdatenbanken produktiver arbeiten können.

In diesem Artikel wird innerhalb der Probleme Web-Datenbank-Vorlage erläutern, wie die Vorlage funktioniert, und insbesondere das Design patterns, dass wiederverwendet werden kann, wenn Sie Ihre Webdatenbanken erstellen.

Instanziieren die Probleme Web-Datenbank-Vorlage

Bevor Sie beginnen, erstellen Sie eine neue Datenbank aus Probleme Web-Datenbank-Vorlage.

So erstellen Sie eine neue Datenbank aus der Probleme Web-Datenbank-Vorlage

  1. Starten Sie Access 2010.

  2. Klicken Sie auf der Registerkarte NeuMicrosoft Office Backstage-AnsichtBeispielvor- lagen.

  3. Klicken Sie unter Verfügbare VorlagenProbleme-Webdatenbank.

  4. Geben Sie im Dialogfeld Dateiname einen Dateinamen ein.

  5. Klicken Sie auf Erstellen.

Suchen den Code in der Access-Benutzeroberfläche

Wenn Sie ein erfahrener Access-Entwickler sind, haben Sie Visual Basic für Applikationen (VBA)-Code verwendet, um Ihre Business-Logik und Programm-Flow zu implementieren. Ein wichtiger Unterschied zwischen Webdatenbanken und die nur-Client-Access-Datenbanken ist, dass Webdatenbanken nicht mit VBA-Code unterstützen. In Webdatenbanken wird die benutzerdefinierter Logik implementiert, mithilfe von Makros.

In früheren Versionen von Access würde dies vorgenommen haben eine hoch entwickelte Anwendung schwierig zu entwickeln. Dies ist jedoch weniger eine Einschränkung, die Sie als erwartet, da Access 2010 Makrofunktionen erheblich verbessert werden.

Finden Sie die Makros nicht durch Durchsuchen des Navigationsbereichs. Wo Sie finden hängt ein bestimmtes Makro dessen Typ

Makros, die Formular- und Steuerelementereignisse zu erfassen sind in dem das Ereignis eingebettet, mit denen sie verbunden sind. Das heißt, werden diese als Teil des Steuerelements statt als separates Objekt gespeichert.

Angenommen, möchten Sie das Makro eingebettet in das On Load-Ereignis des Hauptformulars zu untersuchen. Verwenden Sie hierzu die folgende Prozedur.

Um das Makro zu untersuchen, die in die Last auf sogar des Hauptformulars eingebettet sind

  1. Öffnen Sie das Formular Main, in der Layoutansicht.

  2. Klicken Sie im Eigenschaftenblatt wählen Sie im Dropdown-Menü Formular .

  3. Klicken Sie auf die Registerkarte Ereignis .

    Im Load-Ereignis zeigt [Eingebettetes Makro], wie in Abbildung 1 dargestellt.

    Abbildung 1. On Load-Ereignis im Eigenschaftenblatt

    Eigenschaftenblatt
  4. Klicken Sie auf die Schaltfläche mit den Ellipse .

Das Makro im Makro-Generator wird geöffnet.

Daten-Makros, eine neue Art von Makro in Access 2010, eingeführt werden Tabellen und der Tabelle Ereignisse angehängt. Um die Makros Daten für eine bestimmte Tabelle zu sehen, müssen Sie die Tabelle öffnen.

Angenommen, möchten Sie Daten Makros gespeichert in der Tabelle Probleme zu untersuchen. Verwenden Sie hierzu die folgende Prozedur.

Um die Daten-Makros in der Tabelle Probleme zu untersuchen

  1. Öffnen Sie die Issues-Tabelle.

  2. Klicken Sie auf der Multifunktionsleiste auf die Registerkarte Tabelle .

NachfolgeereignisseDie Tabelle Ereignisse werden in den Gruppen Vorabereignisse angezeigt. Ereignisse, die Daten Makros enthalten, werden hervorgehoben, wie in Abbildung 2 dargestellt.

Abbildung 2. Registerkarte "Tabelle"

Tabellenregisterkarte auf dem Menüband

In diesem Beispiel wird ein Makro Daten in die Vor Änderung und Nach Aktualisierung Ereignisse eingebettet. Um das Makro Daten anzuzeigen, klicken Sie auf eine hervorgehobene Ereignis.

Eine benannte Daten-Makro wird in einer Tabelle, jedoch nicht auf ein bestimmtes Ereignis zugeordnet. Gehen Sie wie folgt vor, um die benannten Daten Makros für die RelatedIssues-Tabelle anzuzeigen.

Die benannten Daten Makros für die RelatedIssues-Tabelle anzeigen

  1. Öffnen Sie die Issues-Tabelle.

  2. Klicken Sie auf der Multifunktionsleiste auf die Registerkarte Tabelle .

  3. Klicken Sie auf Benanntes Makro, klicken Sie Benanntes Makro bearbeiten, und klicken Sie dann auf den Namen des Makros, die Sie untersuchen möchten.

Das Makro im Makro-Generator wird geöffnet.

Die in diesem Abschnitt vorgestellten Methoden bieten keine bequeme Möglichkeit, die Makros, die in Steuerelementen eingebettet wurden und die zugeordneten Tabellen Daten-Makros zu durchsuchen.

Makro-Generator bietet eine bequeme Methode, die Sie verwenden können, um welche Formulare, Steuerelemente, entdecken und Tabellen verfügen über eine eingebettete Makros.

Gehen Sie wie folgt vor, um Makro-Generator zu öffnen.

So öffnen Sie den Makro-Generator

  1. Klicken Sie auf der Registerkarte Erstellen in der Gruppe Makros und Code auf Makro.

  2. Doppelklicken Sie im Bereich Aktionskatalog auf die Kategorie In dieser Datenbank .

Doppelklicken Sie auf einen der eingebetteten Makros wird dieses Makro für die Bearbeitung nicht geöffnet werden. Stattdessen wird das ausgewählte Makro öffnen Sie das aktuelle Makro im Makro-Generator hinzugefügt. Wenn Sie zum Bearbeiten eines Makros intent, von dem das Ereignis öffnen sollte in dem das Makro eingebettet ist.

Ein wichtiger Aspekt der laufenden Probleme meldet sich, ein Problem zugewiesen ist und wer das Problem geöffnet. Zu diesem Zweck muss eine zuverlässige Anmeldemethode verwendet werden.

Wenn Anmeldefunktionalität für eine Web-Datenbank entwerfen, die auch in der RAS-Client verwendet werden kann, sollten Sie die folgenden drei Szenarien:

  1. Anmelden bei einer nicht publizierten Datenbank.

  2. Anmelden bei einer veröffentlichten Datenbank in einem Webbrowser.

  3. Anmelden bei einer veröffentlichten Datenbank in der RAS-Client.

Access 2010 führt eine neue Funktion namens CurrentWebUser, zum vereinfachen, somit können Sie alle drei Szenarien vorgesehen ist.

Die CurrentWebUser-Funktion kann zum Zurückgeben von Element-ID, Benutzername, Anmeldename, oder e-Mail-Adresse des aktuellen Benutzers in einer Access-Webanwendung verwendet werden. Wenn die Datenbank veröffentlicht wurde, kann diese Informationen basierend auf der Benutzeridentität im SharePoint Server 2010 gesammelt. Wenn die Datenbank nicht veröffentlicht wurde, gibt die CurrentWebUserNull.

Wenn Sie die Probleme Web-Datenbank öffnen, das Formular mit der Bezeichnung Main geladen wird und in Makros eingebetteten wird das On Load-Ereignis ausgeführt. Dieses Makro versucht, die Anmeldeinformationen des aktuellen Benutzers zu bestimmen.

Wenn die Anmeldeinformationen nicht automatisch ermittelt werden können, wird ein Formular, das der Benutzer aufgefordert, ihre Anmeldeinformationen auswählen angezeigt.

On Load-Makro wird einen If…The…Else Makro-Block verwendet, um sicherzustellen, dass die Anwendung in der RAS-Client oder in einem Webbrowser verwendet wird.

If   Not(IsNull(CurrentWebUser(0))   Then
     OpenForm (Login,,,Dialog)

Wenn die Datenbank im Access-Client verwendet wird, wird das Login-Formular im Dialogmodus in Abbildung 3 dargestellten angezeigt.

Abbildung 3. Anmeldeformular

Anmeldeformular im Dialogmodus

In das Anmeldeformular kann der Benutzer wählen Sie ihre Anmeldeinformationen, und klicken Sie auf Anmeldung. Wenn Sie ihre Anmeldeinformationen nicht aufgeführt sind, sollten sie Neuer Benutzer ihre Anmeldeinformationen zur Datenbank hinzufügen klicken. Klicken Sie auf Neuer Benutzer zeigt das User Details-Formular. Das User Details-Formular wird an der Users-Tabelle gebunden, so dass alle Änderungen automatisch an diesem Speicherort gespeichert werden.

Der Anmeldung -Schaltfläche im Dialogfeld Login führt das Makro in das On Click-Ereignis der Anmeldung eingebettet.

Ein If…Then…Else-Makro-Block wird verwendet, um festzustellen, ob ein Benutzer in der Liste lstEmailNames markiert war, bevor der Benutzer auf Anmeldung geklickt hat. Wenn ein Benutzer nicht aktiviert wurde, wird ein Meldungsfeld für eine Auswahl.

If   IsNull([lstEmailNames])   Then
   MessageBox   (Select a user.)

Wenn ein Benutzer ausgewählt wurde, meldet die Else-Klausel des Blocks Makro If…Then…Else den Benutzer in der Datenbank. Hierzu erstellt die SetTempVar-Funktion eine TempVar, die während der Sitzung verwendet wird, um den aktuellen Benutzer zu identifizieren.

Ein TempVar ist eine Variable, die global für die aktuelle Access-Sitzung ist. Es kann in einem Ausdruck, Makro, oder sogar VBA zugegriffen werden. Um den Wert eines TempVar in einem Makro oder den Ausdruck zuzugreifen, verwenden Sie die folgende Syntax.

=[TempVars]![VariableName]

Die SetTempVar-Funktion eine Variable namens tmpUserId erstellt und der Variablen die ID des ausgewählten Benutzers zugewiesen.

Else
   SetTempVar(tmpUserID, [lstEmailNames])
   CloseWindow
End If

Der Benutzer ist für die Anwendung jetzt angemeldet.

Wenn der Benutzer die Datenbank in einem Web-Browser verwenden wird oder die Datenbank in der RAS-Client verwendet wird, aber in einem Webbrowser geöffnet wurde, wird das Makro in der On Load-Ereignis des Formulars Main eingebettet Makroausführung fortgesetzt.

Die Else-Klausel des Blocks If…Then…Else Makro erstellt mehrere TempVar-Variablen, die die Verwendung der CurrentWebUser-Funktion den aktuellen Benutzer identifizieren.

Else
   SetTempVar (tmpUserName, CurrentWebUser(1))
   SetTempVar (tmpUserLogin, CurrentWebUser(2))
   SetTempVar (tmpUserEmail, CurrentWebUser(3))

Dann führt die RunDataMacro-Funktion die benannten Daten Makro VerifyUsers. Im vorhergehenden Codebeispiel erstellten Variablen werden in das VerifyUsers-Makro Daten als Parameter übergeben.

RunDataMacro (Users.VerifyUsers, [TempVars]![tmpUserEmail], [TempVars]![tmpUserName], [TempVars]![tmpUserEmail])

Das VerifyUsers Daten-Makro wird der Users-Tabelle zugeordnet. Es wird bestimmt, ob die angegebenen Anmeldeinformationen bereits in der Users-Tabelle gespeichert sind. Wenn die angegebenen Anmeldeinformationen mit die Users-Tabelle nicht enthalten ist, werden in der Tabelle hinzugefügt werden.

VerifyUsers-Daten-Makro wird als erste wird die SetLocalVar-Funktion verwenden, um eine Variable zu erstellen. Mithilfe der SetLocalVar-Funktion erstellt ein LocalVar, das eine Variable darstellt, die nur für die aktuelle Prozedur sichtbar ist.

Die Variable mit dem Namen varInsertUser, wird mit einem Wert von True initialisiert.

SetLocalVar  (varInsertUser, True)

Dann wird ein Datenblock LookupRecord verwendet, um festzustellen, ob die Anmeldeinformationen des Benutzers bereits in der Tabelle Benutzer vorhanden sind. Wenn der LookupRecord-Datenblock angegebene Datensatz gefunden wird, kann eine Reihe von Aktionen auf den Datensatz durchgeführt werden.

In diesem Fall wird die Variable varInsertUser auf False festgelegt, wenn die Anmeldeinformationen des Benutzers durch das LookupRecord-Datenblock gefunden werden.

Look Up a Record in   Users
   Where Condition   = [Email]=[prmUserEmail] Or [Login]=[prmUserLogin]
            Alias
   SetLocalVar (varInserUser, False)

Als Nächstes wird ein If…Then…Else-Block verwendet, um den Wert der Variablen varInsertUser zu überprüfen. Wenn varInsertUser weiterhin auf True festgelegt ist, erstellen ein CreateRecord-Datenblock wird einen neuen Datensatz in der Tabelle Benutzer.

Die SetField-Funktion wird verwendet, um den Wert der Felder in der Tabelle Benutzer die Anmeldeinformationen des Benutzers an das Makro VerifyUsers Daten übergeben festzulegen.

If   [varInsertUser]   Then
   Create a Record in   Users
                Alias
   SetField   ([Email], [prmUserEmail])
   SetField   ([FullName], [prmUserName])
   SetField   ([Login], [prmUserLogin])
End If

Nun, da die Anmeldeinformationen des Benutzers in der Tabelle Benutzer vorhanden sind, weiterhin die Makroausführung in der Else-Klausel das Makro in das On Load-Ereignis des Formulars Main eingebettet.

Die OpenForm-Funktion öffnet ein Formular mit dem Namen FetchLoginID.

OpenForm   (FetchLoginID, [Email]=[TempVars]![tmpUserEmail] Or [Login]=[TempVars]![tmpUserLogin],,Dialog)
   End If

Das in der On Load-Ereignis des Formulars FetchLoginId eingebettete Makro wird ausgeführt. Das FetchLoginID-Formular ist ausgeblendet, damit dieser Prozess für den Benutzer transparent ist.

HinweisHinweis

Um das Formular FetchLoginID zu untersuchen, drücken Sie und halten die UMSCHALTTASTE gedrückt, mit der rechten Maustaste des Formulars im Navigationsbereich und klicken Sie dann auf Layoutmodus.

Die SetTempVar-Funktion eine Variable namens tmpUserId erstellt und der Variablen, die der aktuelle Benutzer-ID zugewiesen.

SetTempVar(tmpUserID, [ID])
CloseWindow

Der Benutzer ist für die Anwendung jetzt angemeldet.

Wenn Sie sich angemeldet haben, wird das Main-Formular angezeigt. Das Main-Formular fungiert als Startseite für die Web-Problemdatenbank.

Main-Formular wird auf ein Steuerelement zentriert, die noch nicht in Access 2010, das Datensatznavigations-Steuerelement ist. Das Datensatznavigations-Steuerelement erleichtert die Erstellung einer Web-ähnliche Benutzeroberfläche für Ihre Anwendung.

Jede Registerkarte in einem Datensatznavigations-Steuerelement wird durch ein NavigationButton-Steuerelement dargestellt. Jedes NavigationButton ist mit einem Unterformular-Steuerelement verbunden, die hostet, das Formular oder Bericht angezeigt werden, wenn die Registerkarte ausgewählt ist.

Öffnen ein Problem

Die Registerkarte Offene Probleme ist, in dem Sie neue Probleme öffnen und bearbeiten bestehende Probleme. Beim Aktivieren der Registerkarte Offene Probleme ist das IssuesOpen-Formular angezeigt.

Das IssuesOpen-Formular enthält zwei Abschnitte. Im obere Abschnitt fungiert als der Multifunktionsleiste für die Registerkarte offener Probleme. Es enthält die Schaltfläche " Neues Problem " und das Textfeld Suchen . Im unteren Bereich wird ein Unterformular-Steuerelement, das das IssuesDS-Formular anzeigt.

Um ein neues Problem zu öffnen, klicken Sie auf Neues Problem . Das in der On Click-Ereignis der Schaltfläche Neues Problem eingebettete Makro wird sichergestellt, dass Sie der Datenbank angemeldet haben und dann das IssueNew-Formular im Dialogmodus angezeigt.

IssueNew-Formular können Sie die Informationen eingeben, der Sie erwarten würden, wenn ein Problem beschreiben. Wenn Sie das Problem beschrieben haben, klicken Sie auf die Schaltfläche " Speichern und neu " oder die Schaltfläche Speichern und schließen , um die Änderungen zu übernehmen.

Das Makro eingebettet in das Ereignis klicken Sie auf die Schaltfläche " Speichern und neu ", und Speichern und schließen -Schaltflächen ähneln. Beide Makros starten, indem sichergestellt wird, dass das Steuerelement txtSummary fasst, das Problem zusammen. Ein Meldungsfeld aufgefordert, das Problem zusammenzufassen.

If IsNull (txtSummary) Then
MessageBox (You must enter a summary.)
StopAllMacros
End If

Mit einer Ausnahme sind die Steuerelemente im Formular IssueNew an Felder in der Issues-Tabelle gebunden. Beispielsweise ist das Textfeld txtSummary an das Summary-Feld gebunden. Das cboPriority-Kombinationsfeld gebunden ist an das Feld Priority und So weiter. Der SaveRecord-Befehl wird verwendet, um die Änderungen an der Tabelle Probleme.

SaveRecord

Bevor die Änderungen übernommen werden, eingebettete Makros Daten im Before Change-Ereignis von der Issues-Tabelle ausgeführt wird. Das Before Change-Makro Daten verstärkt Geschäftsregeln für die Felder Status und Resolution.

Die erste Regel ist, wenn das Feld Status auf aufgelöst festgelegt ist, wird das Feld "Resolution" festgelegt werden muss. Wenn das Feld Resolution nicht festgelegt wurde, wird die RaiseError-Funktion beendet das Makro Daten und Zurückgeben eines Fehlers, das durch die Submacro mit dem Namen ErrorHandler in das On Click-Ereignis der Schaltfläche zurück angezeigt wird.

If [Status] = "3" Then
If IsNull([Resolution]) Then
RaiseError (1, You must select a resolution.)
End If

Die nächste Geschäftsregel gibt die Auflösung eingereicht muss festgelegt werden, wenn das Feld Status geschlossen ist.

Else If [Status] = "4" Then
If IsNull([Resolution]) Then
RaiseError (2, An issue must be resolved before it can be closed.)
End If

Schließlich wird das Feld Resolution deaktiviert, wenn gefüllt wurde hatte, aber die Status hat nicht gelöst oder geschlossen.

Else If Not (IsNull([Resolution])) Then
SetField (Resolution, Null)
End If

Das Before Change Daten Makro abgeschlossen ist, wird die Ausführung an das After Update-Makro Daten übergeben.

After Update-Daten-Makro erstellt einen Eintrag in der Tabelle "Comments", wenn das Feld "Resolution" oder das Feld "Status" aktualisiert wird. Zu diesem Zweck wird das Daten-Makro mit dem Namen AddComment eingebettet in der Tabelle "Comments" bezeichnet.

Das After Update-Makro Daten sucht zuerst nach Updates für das Feld "Resolution". Wenn das Feld "Resolution" aktualisiert wurde, wird das AddComment-Makro Daten bezeichnet.

If Updated ("Resolution") then
RunDataMacro (Comments.AddComment, [ID], [ChangedByUserID],"—Issue Resolved as " & [Resolution])
End If

Eine Reihe von ähnlichen Prüfungen auf das Feld Status angewendet werden.

Das AddComment Daten Makro akzeptiert drei Parameter. Das Daten-Makro erstellt einen neuen Datensatz in der Tabelle Kommentare, die die Parameter und das aktuelle Datum enthält.

Create Record in Comments
Alias
SetField (Comment,[prmComment])
SetField (IssueID, [prmRelatedID])
SetField (CommentDate, Now())
SetField (UserID, [prmUserID])

Zu diesem Zeitpunkt wieder Makroausführung die On Click-Ereignis, das im Formular IssueNew initiiert. Im Gegensatz zu anderen Steuerelementen auf dem Formular IssueNew wird das txtDescription-Steuerelement nicht an der Issues-Tabelle gebunden. Der Inhalt dieses Steuerelements werden in der Tabelle "Comments" geschrieben.

Rufen Sie hierzu das AddComment-Daten-Makro.

If Not IsNull([txtDescription])) Then
RunDataMacro (Comments.AddComment, [ID], [txtDescription,[TempVars]![tmpUserID])
SetProperty (txtDescription, Value, =Null)
End If

Jetzt haben Sie ein neues Problem erfolgreich zur Datenbank hinzugefügt.

Bearbeiten Sie das Problem

Wenn Sie ein Problem erstellt haben, können Sie auf zwei Arten bearbeiten. Sie führen Sie einige grundlegende Änderungen direkt im Unterformular IssuesDS. Eine bessere Leistung ist jedoch mit das IssueDetail-Formular zur Verfügung.

Um das IssueDetail-Formular zu öffnen, klicken Sie auf das Feld ID des Problems zu bearbeiten. Das IssueDetail-Formular ist in zwei Abschnitte unterteilt. Der obere Abschnitt enthält Steuerelemente, die an die Problemtabelle gebunden sind. Viele davon sind Felder, die Sie in IssueNew Form, z. B. Zusammenfassung, Status und zugewiesen an, mit mehreren neuen Feldern Fälligkeitsdatum und Anlagen festlegen.

Im unteren Abschnitt des Formulars enthält ein Registersteuerelement namens TabCommentsRelated. Das TabCommentsRelated-Steuerelement enthält zwei Seiten, Kommentare und Verwandte Probleme.

Auf der Registerkarte Kommentare können Sie Kommentare über das aktuelle Problem in der TxtAddComment-Steuerelement hinzufügen. Wenn Sie auf " Kommentar hinzufügen" klicken, wird das AddComment-Daten-Makro verwendet, um den Kommentar an der Comments-Tabelle einfügen.

Ein verwandtes Problem hinzufügen

Die Registerkarte Verwandte Probleme können Sie Probleme mit der aktuellen Problem verknüpfen. Auf diese Weise können Sie eine zugehörige Gruppe von Problemen auf einen Blick zu verfolgen.

Damit zusammenhängende Fragen werden in eine Zuordnungstabelle namens RelatedIssues gespeichert. Erstellen zwei Datensätze in der Tabelle betreffend ein Problem auf einen anderen benötigt werden. Beispielsweise müssen Sie Problem 125 99 Problem beziehen. Problem 125 Problem 99 betreffend ein Datensatz erstellt. Problem 125 Problem 99 betreffend ein zweiter Datensatz erstellt. Dadurch wird sichergestellt, dass Problem 99 als ein verwandtes Problem angezeigt wird, wenn Sie Problem 125 und umgekehrt zu bearbeiten.

Auf die Schaltfläche Verwandtes Problem hinzufügen , führt das Makro, das On Click-Ereignis zugeordnet. Das Makro löscht zuerst eine temporäre Variable mit dem Namen TmpRelatedIssueID, und anschließend das Dialogfeld IssueRelatedID angezeigt.

RemoveTempVar (tmpRelatedIssueID)
OpenForm (IssueRelatedID,,,Dialog)

Klicken Sie im Dialogfeld cboRelatedIssueID können Sie jedes Problem aus der Tabelle Probleme auswählen. Durch Klicken auf OK eine neue TempVar mit dem Namen TmpRelatedIssueID erstellt und dessen Wert festgelegt, um das Problem in der cboRelatedIssueID-Kombinationsfeld ausgewählt. Das Dialogfeld cboRelatedIssueID wird dann geschlossen.

SetTempVar (tmpRelatedIssueID, [cboRelatedIssueID])
CloseWindow

Ausführung beginnt wieder der On Click-Ereignis der Schaltfläche Verwandtes Problem hinzufügen . Das On Click-Makro tmpRelatedIssueID TempVar überprüft und ruft dann das AddRelatedIssue Daten-Makro. Die ID des aktuellen Datensatzes in IssueDetail Form als das Hauptproblem übergeben wird, und tmpRelatedIssueID TempVar wird übergeben, wie des Datensatzes das Hauptproblem beziehen.

If Not(IsNull([TempVars]![tmpRelatedIssueID])) Then
RunDataMacro (RelatedIssues.AddRelatedIssue, [ID], [TempVars]![tmpRelatedIssueID])

Ausführung übergibt an die AddRelatedIssues Daten-Makro.

Das Daten-Makro erstellt eine lokale Variable mit dem Namen tmpAlreadyRelated. Die Variable überprüft auf True, wenn die Parameter, die Daten an das Makro übergeben werden, das gleiche Problem darstellen.

SetLocalVar (tmpAlreadyRelated, [prmIssueID], [prmRelatedIssueID]) 

AddRelatedIssues-Daten-Makro verwendet einen Datenblock LookupRecord um zu überprüfen, ob die angegebene Beziehung in der RelatedIssues-Tabelle bereits vorhanden ist. Wenn die Beziehung bereits vorhanden ist, wird die lokale Variable tmpAlreadyRelated auf True festgelegt.

Look Up A Record In RelatedIssues
Where Condition =[IssueID]=[ prmIssueID] And [RelatedIssueID]=[ prmRelatedIssueID]
Alias
SetLocalVar (tmpAlreadyRelated, True)

Als Nächstes wird die TmpAlreadyRelated lokale Variable verwendet, um zu bestimmen, ob der RelatedIssues-Tabelle einen Datensatz hinzu. Wenn tmpAlreadyRelated nicht auf True festgelegt wurde, wird ein neuer Datensatz erstellt.

If Not ([tmpAlreadyRelated]) then
Create a Record In  RelatedIssues
Alias
SetField ([IssueID], [prmIssueID])
SetField ([RelatedIssueID], [prmRelatedIssueID])
End If

Ausführung beginnt wieder der On Click-Ereignis der Schaltfläche Verwandtes Problem hinzufügen . Das AddRelatedIssue-Daten-Makro wird erneut aufgerufen. Dieses Mal wechseln die Parameter Positionen, um sicherzustellen, dass beide Aspekte miteinander verknüpft sind.

RunDataMacro (RelatedIssues.AddRelatedIssue, [TempVars]![tmpRelatedIssueID],[ID])

Bei der Makroausführung aus dem AddRelatedIssue-Makro Daten zurückgibt, wird das On Click-Ereignis der Schaltfläche Verwandtes Problem hinzufügen durch erneutes Abfragen des Unterformulars IssuesRelated abgeschlossen.

Requery (sfrRelatedIssues)
End If

Denken Sie daran, dass die Dialogfeld-Formulare, die Bearbeitung erfordern eine Abbrechen -Schaltfläche nicht enthalten. IssueNew-Formular enthält die Schaltflächen Speichern und neu , und Speichern und schließen . Das IssueDetail-Formular enthält Schaltflächen Speichern und Speichern und schließen .

Klicken Sie auf die Schaltfläche "Schließen" in der oberen rechten Ecke des Formulars, um Ihre Änderungen zu verwerfen.

In früheren Versionen von Access, Sie können immer bereitgestellt haben die Benutzer, die explizite Möglichkeiten zum Speichern und Abbrechen, beim Deaktivieren der Schaltfläche Schließen des Formulars haben.

Also Warum zu einer anderen Interaktionsmodell ändern? Es gibt zwei Gründe, die Webvorlagen zu ein anderes Modell verwenden.

Zunächst sollen die Webvorlagen in einem Webbrowser verwendet werden. Praktikabilitätstests vorschlagen, dass Benutzer die Popup-Fenster in einer Weise Webformat Verhalten erwarten, in dem Schließen eines Popupfensters die Aktion wird am häufigsten verwenden, um den Aktion abzubrechen.

Zweitens wurde die meiste Logik, die bearbeitet und fügt die Datensätze aus den Formularen verschoben. Diese Logik befindet sich jetzt im Daten-Makros.

In der Standardeinstellung beim Klicken auf die Registerkarte Geschlossene Probleme auf der Main bilden, nur Probleme, die in den vergangenen 30 Tagen angezeigt werden geöffnet.

Wenn die Registerkarte geschlossen Probleme aktiv ist, wird das Formular IssuesClosed aktiviert. Das IssuesClosed-Formular enthält zwei Abschnitte. Die oberen Abschnitt Funktionen wie die Multifunktionsleiste für die Registerkarte Probleme geschlossen und mithilfe der Textfelder txtStartDate und txtEndDate, passen Sie die Datensätze im unteren Abschnitt des Formulars angezeigt. Verwenden Sie das Textfeld Search, um die geschlossene Probleme zu suchen.

Im unteren Abschnitt des Formulars ist ein Unterformular-Steuerelement, das das Formular IssuesClosedDS zeigt, das geschlossene Probleme anzeigt. Das IssuesClosedDS-Formular ist eine parametrisierte, die die IssuesClosed-Abfrage als Datenquelle verwendet.

Wenn das IssuesClosed-Formular aktiviert wird, eingebettet das Makro in seiner On Load-Ereignis ausgeführt wird.

Das On Load-Ereignis erstellt zwei TempVars. Eine speichert den Wert, der in das Textfeld "txtStartDate" enthalten ist, die andere speichert den Wert, der in das Textfeld txtEndDate enthalten ist.

SetTempVar (tmpStartDate, [txtStartDate])
SetTempVar (tmpEndDate, [txtEndDate])

Als Nächstes wird der BrowseTo-Aktion verwendet, um das IssuesClosedDS-Formular zu laden. Die Bedingung, die Argument gibt, die nur ausgestellt geöffnet wird, zwischen den Datumsangaben in der txtStartDate angegeben, und txtEndDate Textfelder geladen werden sollen.

BrowseTo
        Object Type  Form
              Object Name  IssuesClosedDS
        Path to Subform Control  Main.NavigationSubform>IssuesClosed.DS
                Where Condition = [OpenedDate]>[TempVars]![tmpStartDate]-1 And [OpenedDate]<[TempVars]![tmpEndDate]+1
                           Page
                      Data Mode Edit

Dies ist nicht vergleichbar mit einem Recordset filtern. Geschlossene Probleme, die außerhalb der Fristen in die Textfelder txtStartDate und txtEndDate liegen, werden nicht in das Formular geladen.

Wenn die Probleme-Datenbank mehrere Tausend geschlossener Probleme enthalten dann das Argument Bedingung verwenden, laden Sie eine kleine Datensatzgruppe bessere Leistung als Laden eine kann und dann eine ähnliche Anzahl von Filtern, wann aufgezeichnet die Ausführung im Web.

Um den Datumsbereich der Probleme angezeigt werden anzupassen, geben Sie einem neuen Datum entweder in das Textfeld txtStartDate und txtEndDate. Das Makro eingebettet in das After Update-Ereignis jedes Steuerelements verwendet die BrowseTo-Aktion auf die gleiche Weise wie das On Load-Ereignis des Formulars IssuesClosed.

Die Formulare IssuesOpen und IssuesClosed enthalten ein Suchfeld für Text, der zum Suchen nach Datensätzen in Formularen verwendet werden kann. Er bietet die Verwendung einer Webformat-Methode zum Filtern von Datensätzen in den zuvor erwähnten Formularen.

Welche Technologie ist erforderlich, um Suchen zu implementieren? Ist eine spezielle Indizierung erforderlich? Wird Bing hinter den Kulissen aufgerufen?

Keine zusätzliche Technologie ist erforderlich, um das Suchtextfeld Eingaben zu implementieren. IssuesDS, das Unterformular, das die offenen Probleme zeigt verwendet die IssuesOpen-Abfrage als Datensatzquelle. IssuesOpen-Abfrage verwendet die IssuesExtended-Abfrage, um seine Ergebnisse zu generieren.

Die IssuesExtended-Abfrage wird ein benutzerdefiniertes Feld mit dem Namen Searchable erstellt. Searchable-Feld verkettet Daten aus alle Felder, die Informationen enthalten, die möglicherweise zu einer einzigen Zeichenfolge gesucht werden soll. Diese Zeichenfolge ist das Element, das durchsucht wird, wenn Sie eine Abfrage in das Textfeld Suchen eingeben.

Der Ausdruck wird ähnlich wie im folgenden Codebeispiel wird angezeigt.

Searchable: [Issues].[ID] & " " & [Summary] & " " & [Status] & " " & [Priority] & " " & [Category] & " " & [Project] & " " & [Keywords] & " " & [Resolution] & " " & [ResolvedVersion] & " " & [Users].[FullName] & " " & [Users].[Email] & " " & [Users_1].[FullName] & " " & [Users_1].[Email]

Wenn Sie einen Begriff in Suchen eingeben und auf Suchenklicken, wird das Makro eingebettet in das On Click-Ereignis ausgeführt.

Das Makro überprüft zuerst den Inhalt des Textfelds Suchen für den Standardwert. Wenn der Benutzer mit dem Standardwert im Textfeld SuchenSuchen klickt, zeigt der SetFilter-Aktion alle Datensätze.

If  [txtSearch]="Search…"  Then
SetFilter  ([Searchable] Like "*", DS)

Wenn das Textfeld Suchen einen anderen Wert als den Standardwert enthält, wird die SetFilter-Aktion verwendet, zum Filtern der Datensätze im Unterformular angezeigt. Der Inhalt im Textfeld Suchen zum Feld durchsuchbar zu filtern, indem Sie mit dem LIKE-Operator.

Else 
SetTempVar  (tmpSearch, [txtSearch])
SetFilter  ([Searchable] Like "*" & [TempVars]![tmpSearch] & "*", DS)
End If

EINGABETASTE drücken, nachdem Sie einen Begriff in das Suchtextfeld eingeben, führt das Makro eingebettet in das After Update-Ereignis. Das After Update-Makro füllt das Feld Suchen , das den Standardwert, hat wenn es leer ist. Der Rest des Makros ist identisch mit dem Makro On Click of the Suchen Button.

In der Registerkarte " Berichtscenter " können Sie anzeigen, anpassen und Drucken von Berichten, die für Sie erstellt wurden.

Aktivieren auf der Registerkarte "Berichtscenter" lädt das ReportCenter-Formular. Dieses Formular besteht aus drei Abschnitten.

Der obere Abschnitt enthält die Schaltfläche In einer neuen Registerkarte öffnen , die verwendet wird, um den aktuellen Bericht in einem neuen Fenster für den Druck zu öffnen.

Der Abschnitt links unten im Formular ReportCenter enthält ein Unterformular-Steuerelement mit dem Namen sfrReportPage. Das sfrReportPage-Steuerelement ist, in dem das Formular das ultimative Berichte hostet wird angezeigt. In der Standardeinstellung wird das ReportCenterDefault-Formular im Steuerelement angezeigt.

Der Bottom-Right-Abschnitt des Formulars ReportCenter zeigt eine Schaltfläche an, die zum Laden von jeder Bericht verwendet werden kann. In diesem Abschnitt werden untersucht, was geschieht, wenn Sie Probleme nach Status klicken.

Probleme nach Status der Schaltfläche führt das Makro, das On Click-Ereignis zugeordnet. Vor dem Laden des Berichts, erstellt das Makro zwei TempVar-Variablen.

SetTempVar  (tmpReport, "IssuesByStatus")
SetTempVar  (tmpParameterized, "dates")

Anschließend verwendet das Makro die BrowseTo-Aktion das ParamterizedReport-Formular in das sfrReportPage-Steuerelement zu laden.

BrowseTo
       Object Type  Form
       Object Name  ParameterizedReport
 Path to Subform Control  Main.NavigationSubform>ReportCenter.sfrReportPage
    Where Condition
               Page
                     Data Mode  Edit

Das ParamterizedReport-Formular gleicht dem IssuesClosed-Formular. Es enthält zwei Textfelder, txtStartDate und TxtEndDate, die verwendet werden, definieren Sie die Parameter für die Probleme, die im Bericht angezeigt.

Wenn das ParamterizedReport-Formular geöffnet wird, eingebettet das Makro in seiner On Load-Ereignis ausgeführt wird.

Das On Load-Ereignis erstellt zwei TempVars. Eine speichert den Wert, der in das Textfeld "txtStartDate" enthalten ist; die andere speichert den Wert, der in das Textfeld txtEndDate enthalten ist.

SetTempVar (tmpStartDate, [txtStartDate])
SetTempVar (tmpEndDate, [txtEndDate])

Als Nächstes wird der BrowseTo-Aktion zum Laden des Berichts durch die tmpReport TempVar angegeben verwendet. Das Argument Where Condition gibt an, dass nur ausgestellt zwischen den Datumsangaben angegeben im Text txtStartDate und txtEndDate Felder sind geladen wird geöffnet.

BrowseTo
        Object Type  Report
              Object Name  =[TempVars]![tmpReport]
        Path to Subform Control  Main.NavigationSubform>ReportCenter.sfrReportPage>ParameterizedReport.sfrReport
                Where Condition = [OpenedDate]>[TempVars]![tmpStartDate]-1 And [OpenedDate]<[TempVars]![tmpEndDate]+1
                           Page
                      Data Mode Edit

Dies unterscheidet sich von der Filterung eines Recordsets. Die Datensätze, die außerhalb der Fristen in die Textfelder txtStartDate und txtEndDate liegen, werden nicht in den Bericht geladen.

Schließlich ist der IssuesByStatus-Bericht geladen. Die Verwendung der txtStartDate und txtEndDate Textfelder können Sie verfeinern Sie die Datensätze im Bericht angezeigt. Wenn Sie den Bericht drucken möchten, klicken Sie auf die Schaltfläche In einer neuen Registerkarte öffnen . Der Bericht wird in einer neuen Registerkarte geöffnet, die für den Druck geeignet ist.

Die Probleme Web-Datenbank-Vorlage enthaltene Access 2010 enthält mehrere Entwurfsmuster, mit denen Sie häufig verwendete Funktionen in Ihrem Web Access-Datenbanken zu implementieren. In diesem Artikel haben Sie gelernt, dass diese Entwurfsmuster implementiert wurden, mithilfe von Makros und Daten-Makros, die in Datenbanken im Web bereitgestellt werden, mit Zugriff auf Dienste und Client-Computern verwendet werden kann. In diesem Artikel wurden durch den Code hinter dem Entwurfsmuster. Dies zeigt, wie die Makros mit Makros Daten interagieren.

Weitere Informationen zu den in diesem Artikel erläuterten Themen finden Sie in den folgenden Ressourcen:

Hinweis Hinweis

Haftungsausschluss für maschinelle Übersetzungen: Dieser Artikel wurde mithilfe eines Computersystems und ohne jegliche Bearbeitung durch Personen übersetzt. Microsoft bietet solche maschinellen Übersetzungen als Hilfestellung für Benutzer ohne Englischkenntnisse an, damit Sie von den Informationen zu Produkten, Diensten und Technologien von Microsoft profitieren können. Da es sich bei diesem Artikel um eine maschinelle Übersetzung handelt, enthält er möglicherweise Fehler in Bezug auf (Fach-)Terminologie, Syntax und/oder Grammatik.

Anzeigen:
© 2016 Microsoft