|
|
|
| Я пытаюсь вывести в текст бокс последнее значние по ИД номеру, при помощи вот такого кода:
Private Sub Text0_AfterUpdate()
Dim MyRec As DAO.Recordset: Set MyRec = CurrentDb.OpenRecordset("SELECT Max([Table1].[ID]) AS f_max FROM [Table1] WHERE [Table1].[imja] = Me.Text0.Value")
Me.Text2.Value = f_max
End Sub
но к сожалению ничего не произходит... в чем ошибка - подкажите пожалуйста! | |
|
| |
|
|
|
| А, вот - уточняю: в Техт2 должна быть фамилия соответствующего имени и ИД номера.
Только как ето туда вписать?? | |
|
| |
|
|
|
| сложно судить по коду поскольку он логичен, вы открываете рекордсет, но ничего с ним не делаете, откуда возьмется значение переменной f_max ?
попробуйте так
Dim MyRec As DAO.Recordset
Set MyRec = CurrentDb.OpenRecordset("SELECT Max([Table1].[ID]) AS f_max FROM [Table1] WHERE [Table1].[imja] = " & Me.Text0.Value )
Me.Text2.Value = MyRec.fields("f_max").value
|
если поле imja тектовое то так:
Dim MyRec As DAO.Recordset
Set MyRec = CurrentDb.OpenRecordset("SELECT Max([Table1].[ID]) AS f_max FROM [Table1] WHERE [Table1].[imja] = '" & Me.Text0.Value & "'")
Me.Text2.Value = MyRec.fields("f_max").value
|
попробуйте использовать функцию Dlookup | |
|
| |
|
|
|
| Ну да - оно работает и выдает в тхтбох зна4ение ИД. А мне бы туда из записи под этим ИД Фамилию запихнуть...
Вот я так написала:
Dim MyRec As DAO.Recordset
Set MyRec = CurrentDb.OpenRecordset("SELECT Max([Table1].[ID]) AS f_max FROM [Table1] WHERE [Table1].[imja] = '" & Me.Text0.Value & "'")
Set MyRec = CurrentDb.OpenRecordset(("SELECT ([Table1].[familija]) as fam from [Table1] where [Table1].[ID] = f_max"))
Me.Text2.Value = MyRec.Fields("fam").Value
End Sub
А как правильно? | |
|
| |
|
|
|
| ili vot tak skoree:
Dim MyRec As DAO.Recordset
Set MyRec = CurrentDb.OpenRecordset(("SELECT ([Table1].[familija]) as fam from [Table1] where [Table1].[ID] = Max([Table1].[ID]"))
Me.Text2.Value = MyRec.Fields("fam").Value
End Sub | |
|
| |
|
|
|
|
| nea - govorit:
"cannot have aggregate function in WHERE clause ([Table1].[ID] = Max([Table1].[ID]))" | |
|
| |
|
|
|
|
s="SELECT TOP 1 [Фамилия] AS f_max FROM [Table1] WHERE [Table1].[imja] = '" & Me![Text0] & "'" ORDER BY [ID] Desc)
With CurrentDb.OpenRecordset(s)
If Not .BOF Then Me![Text2] = ![f_max]
End With
|
| |
|
| |
|
|
|
| Анатолий - где идет ORDER BY естй какаято синтакси4еская ошибка... отсутствует END OF STATEMENT.
что там может не хватать? | |
|
| |
|
|
|
|
s="SELECT TOP 1 [Фамилия] AS f_max FROM [Table1] WHERE [Table1].[imja] = '" & Me![Text0] & "' ORDER BY [ID] Desc"
|
| |
|
| |
|
|
|
| а что значит этот - TOP 1 ? ; ".BOF"...
P.S:
пока у меня без продвижений - в поле фамилии ни4его не показывается...
(s = "SELECT TOP 1 ([table1].[familija]) AS f_max FROM [Table1] WHERE [Table1].[imja] = '" & Me![Text0] & "' ORDER BY ([table1].[ID]) Desc"
With CurrentDb.OpenRecordset(s)
If Not .BOF Then Me![Text2] = ![f_max]
End With) | |
|
| |
|
|
|
| давайте еще раз подробнее
какие поля в таблице, что нужно найти по какому условию, а то вы то по ID отбираете, то по imja
непонятна задача | |
|
| |
|
|
|
| В том и дело что ищу сначала по имени, а потом по ИД.
Нпример, если в таблице :
Лилия Штернберг под ИД номером 1
Лилия Иванова под ИД номером 2
То вводя в техт0 имя Лилия, в Техт2 должна быть фамилия Иванова (последняя Лилия по ИД) | |
|
| |
|
12 Кб. |
|
| ТОгда код Анатолия должен работать
см. аттач | |
|
| |