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

Форум: MS ACCESS

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

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

 
 

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

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

тема: Как напрямую обращаться к данным из таблиц или запросов A2002
 
 автор: plew   (04.09.2008 в 09:30)   личное сообщение
 
 

Добрый день. Я только начинаю работать с базами даннных и столкнулся с такой проблемой при создании форм, мне нужно в обычное поле ввода вставить занчение из запроса. Например , пользователь добавляет новую записть в таблицу где есть только код клиента, но из списка выбирает его фамилию и хочет видеть ее. Как сделать используя программный код, подскажите начинающему +)

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

поле данные из которого вы хотите показать есть в источнике строк формы?

  Ответить  
 
 автор: час   (04.09.2008 в 16:31)   личное сообщение
 
 

или имеется ввиду поле со списком(на форме), из которого выбираются фамилии и вставляются в поле на форме...

  Ответить  
 
 автор: plew   (05.09.2008 в 06:33)   личное сообщение
 
 

на форме есть поле со списком к нему подключен источник котрый отбирает список фамилий, код клиента и др данные но к себе вставляет в таблицу для заполнения именно код при этом на форме есть еще просто воъъформа где мне нужно что бы отображалась фамилия выбранного в предыдущем поле со списком клиента.

  Ответить  
 
 автор: osmor   (05.09.2008 в 09:15)   личное сообщение
17 Кб.
 
 

в поле со списком выбирается фамилия?
если вы хотите после выбора значения в полесосписком показать и другие столбцы из этого поля, то можно использовать свойство Column поля со списком
Можно использовать функцию Dlookup для выбора значения соответствующее коду.
можно добавить нужные поля в источник записей формы.
Источник записей формы - это та таблица или или запрос который указан в свойстве "источник записей" и данные из которого отображаются в полях формы
Все три варианта найдете в прилагаемом файле

  Ответить  
 
 автор: П.Полиграфович   (05.09.2008 в 10:39)   личное сообщение
 
 

Даа, DlookUp наверное самая медленная ф-ция VBA Даже на таком не сложном подборе и то тормозит...

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

ну да, это не самое удачное использование DlookUp

  Ответить  
 
 автор: час   (05.09.2008 в 12:08)   личное сообщение
 
 

А DFirst() - быстрее работает?

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

не думаю.

  Ответить  
 
 автор: Lukas   (05.09.2008 в 23:31)   личное сообщение
 
 

Результаты тестирования функций, реализованных через DlookUp и DAO.Recordset:


Public Function funIdTypeStone(IdStone As Long) As Long
On Error GoTo Err_function
    Dim Criteria As String
    Dim varValue As Variant
    
    Criteria = "IdStone=" & IdStone
    varValue = DLookup("IdTypeStone", "tblStone", Criteria)
    If IsNull(varValue) Then
        MsgBox "Не определен тип камня", vbExclamation, "Определение типа камня"
        funIdTypeStone = 0
    Else
        funIdTypeStone = varValue
    End If
    
Exit_function:
    Exit Function

Err_function:
    MsgBox Err.Description, vbExclamation, "Определение типа камня"
    Resume Exit_function
End Function

Public Function TestDlookUp()
Dim i As Integer
Dim L As Long
    Debug.Print Time()
    For i = 1 To 1000
        L = funIdTypeStone(1)
    Next i
    Debug.Print Time()
'    12:47:49
'    12:47:50
End Function

Public Function funIdTypeStoneDao(IdStone As Long) As Long
    Dim rst As DAO.Recordset
    Dim dbs As DAO.Database
    Dim strSQL As String
    
    strSQL = "Select IDTypeStone From tblStone WHERE IDStone=" & IdStone & ";"
    Set dbs = CurrentDb
    Set rst = dbs.OpenRecordset(strSQL, dbReadOnly)
    If Not rst.EOF Then funIdTypeStoneDao = rst(0)
    rst.Close
    Set rst = Nothing
    dbs.Close
    Set dbs = Nothing
End Function

Public Function TestDao()
Dim i As Integer
Dim L As Long
    Debug.Print Time()
    For i = 1 To 1000
        L = funIdTypeStoneDao(1)
    Next i
    Debug.Print Time()
'12:57:34
'12:57:41
End Function



У меня в расчете цены изделия используются функции с DlookUp (около 20), все хотел переписать через DAO. Провел тестирование. Желание переписать отпало.

  Ответить  
 
 автор: plew   (05.09.2008 в 12:57)   личное сообщение
 
 

ОГРОМНОЕ СПАСИБО!!! Волшебный пинок получил - теперь все работает +))

  Ответить  
 
 автор: plew   (05.09.2008 в 06:31)   личное сообщение
 
 

Добрый день, вот и проявилось мое дилетанство, потому как я не знаю что такое источник строк для формы.. =(

  Ответить  
 
 автор: час   (05.09.2008 в 09:57)   личное сообщение
 
 

Да ничё особенного.. сначала не знаешь, а потом знаешь - сам понимаешь....
Источник строк, строка подключения, список значений.... почитайте литературку на досуге - глядишь откроете для себя что нитьновое - интересное(необычное).
А ещё свойства объектов базы интересно просматривать там ведь много чего имеется - это и программно можно считать и изменить - увлекательная вещь

  Ответить  
 
 автор: plew   (05.09.2008 в 12:58)   личное сообщение
 
 

Искренне всем спасибо =)

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