Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Max Function (Access 2003)
 
 автор: LilijaSt   (11.08.2008 в 09:57)   личное сообщение
 
 

Я пытаюсь вывести в текст бокс последнее значние по ИД номеру, при помощи вот такого кода:
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
но к сожалению ничего не произходит... в чем ошибка - подкажите пожалуйста!

  Ответить  
 
 автор: LilijaSt   (11.08.2008 в 10:00)   личное сообщение
 
 

А, вот - уточняю: в Техт2 должна быть фамилия соответствующего имени и ИД номера.

Только как ето туда вписать??

  Ответить  
 
 автор: osmor   (11.08.2008 в 10:05)   личное сообщение
 
 

сложно судить по коду поскольку он логичен, вы открываете рекордсет, но ничего с ним не делаете, откуда возьмется значение переменной 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

  Ответить  
 
 автор: LilijaSt   (11.08.2008 в 10:27)   личное сообщение
 
 

Ну да - оно работает и выдает в тхтбох зна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

А как правильно?

  Ответить  
 
 автор: LilijaSt   (11.08.2008 в 10:33)   личное сообщение
 
 

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

  Ответить  
 
 автор: osmor   (11.08.2008 в 10:55)   личное сообщение
 
 

это работает?

  Ответить  
 
 автор: LilijaSt   (11.08.2008 в 11:03)   личное сообщение
 
 

nea - govorit:

"cannot have aggregate function in WHERE clause ([Table1].[ID] = Max([Table1].[ID]))"

  Ответить  
 
 автор: Анатолий (Киев)   (11.08.2008 в 11:10)   личное сообщение
 
 

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

  Ответить  
 
 автор: LilijaSt   (11.08.2008 в 11:24)   личное сообщение
 
 

Анатолий - где идет ORDER BY естй какаято синтакси4еская ошибка... отсутствует END OF STATEMENT.
что там может не хватать?

  Ответить  
 
 автор: osmor   (11.08.2008 в 11:28)   личное сообщение
 
 


s="SELECT TOP 1 [Фамилия] AS f_max FROM [Table1] WHERE [Table1].[imja] = '" & Me![Text0] & "' ORDER BY [ID] Desc"

  Ответить  
 
 автор: LilijaSt   (11.08.2008 в 11:38)   личное сообщение
 
 

а что значит этот - 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)

  Ответить  
 
 автор: osmor   (11.08.2008 в 12:00)   личное сообщение
 
 

давайте еще раз подробнее
какие поля в таблице, что нужно найти по какому условию, а то вы то по ID отбираете, то по imja
непонятна задача

  Ответить  
 
 автор: LilijaSt   (11.08.2008 в 12:24)   личное сообщение
 
 

В том и дело что ищу сначала по имени, а потом по ИД.

Нпример, если в таблице :

Лилия Штернберг под ИД номером 1
Лилия Иванова под ИД номером 2

То вводя в техт0 имя Лилия, в Техт2 должна быть фамилия Иванова (последняя Лилия по ИД)

  Ответить  
 
 автор: osmor   (11.08.2008 в 12:57)   личное сообщение
12 Кб.
 
 

ТОгда код Анатолия должен работать
см. аттач

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList