|
|
|
| Добрый день. Я только начинаю работать с базами даннных и столкнулся с такой проблемой при создании форм, мне нужно в обычное поле ввода вставить занчение из запроса. Например , пользователь добавляет новую записть в таблицу где есть только код клиента, но из списка выбирает его фамилию и хочет видеть ее. Как сделать используя программный код, подскажите начинающему +) | |
|
| |
|
|
|
| поле данные из которого вы хотите показать есть в источнике строк формы? | |
|
| |
|
|
|
| или имеется ввиду поле со списком(на форме), из которого выбираются фамилии и вставляются в поле на форме... | |
|
| |
|
|
|
| на форме есть поле со списком к нему подключен источник котрый отбирает список фамилий, код клиента и др данные но к себе вставляет в таблицу для заполнения именно код при этом на форме есть еще просто воъъформа где мне нужно что бы отображалась фамилия выбранного в предыдущем поле со списком клиента. | |
|
| |
|
17 Кб. |
|
| в поле со списком выбирается фамилия?
если вы хотите после выбора значения в полесосписком показать и другие столбцы из этого поля, то можно использовать свойство Column поля со списком
Можно использовать функцию Dlookup для выбора значения соответствующее коду.
можно добавить нужные поля в источник записей формы.
Источник записей формы - это та таблица или или запрос который указан в свойстве "источник записей" и данные из которого отображаются в полях формы
Все три варианта найдете в прилагаемом файле | |
|
| |
|
|
|
| Даа, DlookUp наверное самая медленная ф-ция VBA Даже на таком не сложном подборе и то тормозит... | |
|
| |
|
|
|
| ну да, это не самое удачное использование DlookUp | |
|
| |
|
|
|
| А DFirst() - быстрее работает? | |
|
| |
|
|
|
|
| Результаты тестирования функций, реализованных через 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. Провел тестирование. Желание переписать отпало.
| |
|
| |
|
|
|
| ОГРОМНОЕ СПАСИБО!!! Волшебный пинок получил - теперь все работает +)) | |
|
| |
|
|
|
| Добрый день, вот и проявилось мое дилетанство, потому как я не знаю что такое источник строк для формы.. =( | |
|
| |
|
|
|
| Да ничё особенного.. сначала не знаешь, а потом знаешь - сам понимаешь....
Источник строк, строка подключения, список значений.... почитайте литературку на досуге - глядишь откроете для себя что нитьновое - интересное(необычное).
А ещё свойства объектов базы интересно просматривать там ведь много чего имеется - это и программно можно считать и изменить - увлекательная вещь | |
|
| |
|
|
|
| Искренне всем спасибо =) | |
|
| |