У меня есть два связанных вопроса. Во-первых, как мне присвоить значение результата запроса текстовому полю?
Вот код, который я присвоил событию нажатия кнопки:
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
Это работает, но открывает запрос и отображает результат в таблице данных. Что я хотел бы сделать, это отобразить результат в текстовом поле на форме, а не нажимать кнопку и просматривать таблицу данных. Во-первых, как мне получить результат в виде строки, а не выполнить запрос, чтобы открыть таблицу данных? То, что я обнаружил в Интернете, похоже, указывает на использование dlookup, а не на выполнение запроса, как я его написал, но из того, что я нашел, dlookup кажется подходящим для выполнения простых запросов, и я не нашел ничего, что указывало бы на то, что добавьте более сложные требования, такие как count и groupby.
Во-вторых, как мне выполнить запрос, когда форма открыта? Я предполагаю, что хочу запустить его на событии, но в свойствах текстового поля, похоже, нет подходящего события.
Я сетевой инженер, а не программист или аналитик базы данных, но я баловался достаточным количеством вещей, которые вся эта работа бросает мне на колени. Если кто-то может помочь борющемуся инженеру, я, безусловно, буду благодарен.