Ich wurde beauftragt, eine Access-Anwendung in .NET zu konvertieren. Ich weiß nichts über Access. Mein Problem ist, dass ich in der Lage sein muss, die tatsächliche Abfrage zu sehen, die über VBA aus einem Formular aufgerufen wird.Wie SQL-Anweisung angezeigt wird, die von Access ausgeführt wird DoCmd.OpenForm
Der VBA-Code verwendet einen Befehl namens DoCmd.OpenForm, um ein Formular zu öffnen und Datensätze anzuzeigen. Der VBA-Code befindet sich in einem Ereignishandler für eine Schaltfläche. Wenn Sie darauf klicken, öffnet die Schaltfläche ein Formular mit DoCmd.OpenForm und den zugehörigen Parametern. Der vierte Parameter in der DoCmd.OpenForm ist WhereCondition nach MSDN, und der Entwickler verwendet dies, um eine WHERE-Klausel einzufügen (ohne das Wort WHERE pro MSDN). Die verwendete WHERE-Klausel ist ProjectNumber = Me![ProjectNumber]
.
Das Problem ist, dass ich den Rest der Abfrage nicht sehen kann, d. H. Was ist die gesamte SELECT-Anweisung und wie weiß Access, welche Felder zum Ausfüllen des vom Befehl DoCmd.OpenForm geöffneten Formulars ausgewählt werden? Gibt es das überhaupt, um das herauszufinden? Um die Verwirrung zu erhöhen, ist das mit DoCmd.OpenForm geöffnete Zielformular mit einer eigenen Abfrage verknüpft. Mit anderen Worten: Wenn das Formular im Entwurfsmodus geöffnet wird, wird unter Daten -> Datensatzquelle eine Abfrage aufgelistet. Ich kann die Syntax für diese Abfrage sehen, nur nicht die "teilweise", die aus dem VBA-Code mit dem Befehl DoCmd.OpenForm aufgerufen wird. Es sieht so aus, als würden zwei verschiedene Abfragen verwendet, um das Zielformular zu füllen.
Ich habe versucht ODBC-Tracing und es zeigte nichts. Da die Anwendung mit einem SQL Server-Backend kommuniziert, kann mein Datenbankadministrator möglicherweise die Ablaufverfolgung aktivieren, aber dies ist keine großartige Option, da die Anwendung sehr umfangreich ist und dieses Szenario in vielen Formen vorhanden ist und ich bin mir nicht sicher fange sogar alles. Jede Hilfe wird sehr geschätzt.
Öffnen Sie das Formular in Layout oder Design-Ansicht Die Eigenschaften für das Formular enthält eine Daten Registerkarte Suchen Sie in dieser Daten Registerkarte für die Datensatzquelle für das Formular. Das sollte Ihnen geben, was Sie suchen. – tlemaster
Beide gut Beantworten Sie unten, aber beachten Sie auch, dass es mehrere Möglichkeiten gibt, die SQL-Recordsource eines Formulars zu bearbeiten hake die OnOpen, OnLoad und OnCurrent Ereignisse. Überprüfen Sie, ob globale Variablen vor dem Aufrufen des Formulars festgelegt wurden oder ob das OpenForm OpenArgs-Argument verwendet wird. Dies ist ein Hinweis darauf, dass mehr Informationen an das Formular gesendet werden als nur das Öffnen. – SunKnight0