Ich habe zwei verwandte Fragen. Erstens: Wie weise ich den Wert eines Abfrageergebnisses einer Textbox zu?Zuweisen von Abfrageergebnis zu Textfeld in MS Access
Hier ist der Code, den ich habe, zur Zeit auf dem Click-Ereignis einer Schaltfläche zugeordnet:
Private Sub SeatCount_Click()
Dim db As Database
Dim qdf As QueryDef
Dim sql As String
Dim rs As Recordset
sql = "SELECT Count([Switch Port Matrix].[End Device Type]) AS [CountOfEnd Device Type] FROM [Switch Port Matrix] WHERE ((([Switch Port Matrix].[End Device Type])=""Seat"" Or ([Switch Port Matrix].[End Device Type])=""6AB"") AND (([Switch Port Matrix].Enabled)=1)) GROUP BY [Switch Port Matrix].[Switch Name] HAVING ((([Switch Port Matrix].[Switch Name]) Like """ & Me![Switch Name] & """))"
Set db = CurrentDb()
With db
On Error Resume Next
.QueryDefs.Delete "SeatCount"
Set qdf = .CreateQueryDef("SeatCount", sql)
DoCmd.OpenQuery "SeatCount"
.QueryDefs.Delete "SeatCount"
End With
db.Close
qdf.Close
End Sub
Dies funktioniert, aber es öffnet sich die Abfrage und zeigt das Ergebnis in einem Datenblatt. Ich möchte das Ergebnis in einem Textfeld auf dem Formular anzeigen, anstatt auf eine Schaltfläche klicken und ein Datenblatt anzeigen zu müssen. Erstens, wie kann ich das Ergebnis als Zeichenfolge abrufen, anstatt die Abfrage zum Öffnen eines Datenblattes auszuführen? Was ich im Web gefunden habe scheint darauf hinzuweisen, dlookup zu verwenden, anstatt die Abfrage so auszuführen, wie ich es geschrieben habe, aber von dem, was ich gefunden habe, scheint dlookup geeignet zu sein, einfache Abfragen auszuführen, und ich habe nichts gefunden, was anzeigt Fügen Sie komplexere Anforderungen hinzu, z. B. count und groupby.
Zweitens, wie führe ich die Abfrage, wenn das Formular geöffnet ist? Ich nehme an, dass ich es auslösen möchte, um auf einem Ereignis zu laufen, aber es scheint kein passendes Ereignis unter den Eigenschaften des Textfelds verfügbar zu sein.
Ich bin ein Netzwerk-Ingenieur, kein Programmierer oder ein Datenbank-Analyst, aber ich habe genug Dinge probiert, dass all diese Art von Arbeit in meinem Schoß abgeladen wird. Wenn jemand einem kämpfenden Ingenieur helfen kann, würde ich das sicherlich zu schätzen wissen.