Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

ms-access:Wie führt man eine ordnungsgemäße erneute Abfrage durch?

Wenn Sie wissen, dass die Abfrage immer noch das ActiveDatasheet ist, fragen Sie das erneut ab:

  Screen.ActiveDatasheet.Requery

Wenn Sie das nicht wissen (Sie könnten Screen.ActiveDatasheet.Name überprüfen), können Sie es erneut öffnen (was möglicherweise erneut abgefragt wird oder nicht, wenn die Abfrage bereits geöffnet ist – ich würde erwarten, dass dies nicht der Fall ist, aber ich könnte mich irren ), und dann ist es das ActiveDatasheet, und Sie können es erneut abfragen.

Oder Sie könnten Folgendes tun:

  DoCmd.SelectObject acQuery, "NameOfYourQuery"
  Screen.ActiveDatasheet.Requery

Sicherlich wird eine oder mehrere dieser Methoden funktionieren.

Aber lassen Sie mich darauf hinweisen, dass es keine gute Idee ist, Tabellen und Abfragen als Objekte der Benutzeroberfläche zu verwenden. Sie sollten stattdessen Formulare erstellen, die es Benutzern ermöglichen, mit den darin angezeigten Daten zu interagieren, da Sie dadurch viel mehr Kontrolle über sie haben.

(Eine Sache, die viele Leute nicht wissen, ist, dass ein Datenblatt ein Formularobjekt ist, daher sind die Eigenschaften und Methoden von Screen.ActiveDatasheet die gleichen wie bei jedem Formular, was bedeutet, dass Sie Ereignissen auf dem Screen.ActiveDatasheet tatsächlich Werte zuweisen können Objekt und lassen sie feuern; aber ich würde dies nicht als den einfachsten Weg zum Erstellen einer Benutzeroberfläche empfehlen...)