|
|
|
| Всем кто сюда заглянет желаю хорошего настроения и доброго времени суток!
Есть такой кусок кода :
Private Sub НазваниеКомпании_AfterUpdate()
Dim rs As DAO.Recordset
Dim db As DAO.Database
DoCmd.DoMenuItem acFormBar, acRecordsMenu, 5, , acMenuVer70 ' обновление формы
Set db = CurrentDb()
Set rs = db.OpenRecordset("Клиенты")
Set rs = Me.RecordsetClone
rs.FindFirst "[id] = " & Me![НазваниеКомпании] ругается на id, что нет такого поля... ((, а оно точно есть в таблице "клиенты"
Me.Bookmark = Me.RecordsetClone.Bookmark
End Sub
|
что может быть не так ? | |
|
| |
|
|
|
| а в текущей форме, есть такое поле?
зачем в одну переменную?
Set rs = db.OpenRecordset("Клиенты")
Set rs = Me.RecordsetClone | |
|
| |
|
|
|
|
Всё не так!
Set rs = db.OpenRecordset("Клиенты")
Здесь вы открываете rs = на таблице "Клиенты"
Set rs = Me.RecordsetClone
И тут же заменяете данные записями из источника формы, хотя по фразе "а оно точно
есть в таблице клиенты" - всё-таки в "клиенты". Видимо эта строчка лишняя.
rs.FindFirst "[id] = " & Me![НазваниеКомпании] ругается на id, что нет такого поля...
Если предыдущую строчку отмените, то, видимо, поле [id] будет, но какой тип поля Me![НазваниеКомпании]? Если текстовый, то строка критерия - неправильная, особенно, если [id] - числовое.
Me.Bookmark = Me.RecordsetClone.Bookmark
Какой смысл в этой строчке? Вы ищете запись в другом наборе, не имеющем отношения к источнику формы.
Объясните смысл вашей задачи.
Me![НазваниеКомпании] - поле или поле со списком?
И еще:
1. Если таблица "Клиенты" - родная (не прилинкованная), то Set rs = db.OpenRecordset("Клиенты") откроет Recordset, не поддерживающий методы Find. Нужно явно указывать его тип.
2. После выполнения поиска всегда проверяйте св-во NoMatch.
3. Вместо DoCmd.DoMenuItem acFormBar, acRecordsMenu, 5, , acMenuVer70 можно с успехом применить Me.Refresh или Me.Dirty = False. | |
|
| |
|
|
|
| какой ужас я чувствую себя полным идиотом ...
Мне нужно сделать простую закладку на текущую запись в форме. Ну тоесть при вводе символов в поле со списком по первым символам происходит фильтрация записей и при полном соответствии происходит автозаполнение полей... переход на нужную запись как бы.
я это.... буду еще обдумывать что вы написали
пс. Me![НазваниеКомпании] - поле со списком ... А id - счетчик | |
|
| |
|
|
|
| Нет я все равно не понимаю почему запись не становится текущей... Опять та же ошибка в строчке с id ( ругается на id)
Private Sub НазваниеКомпании_AfterUpdate()
Dim rs As Object
Dim strSearchName As String
' On Error Resume Next
DoCmd.DoMenuItem acFormBar, acRecordsMenu, 5, , acMenuVer70 ' îáíîâëåíèå ôîðìû
Set rs = Me.RecordsetClone
strSearchName = Me!НазваниеКомпании
rs.FindFirst "[id] = " & strSearchName
If rs.NoMatch Then
MsgBox "Record not found"
Else
Me.Bookmark = rs.Bookmark
End If
rs.Close
End Sub
|
Скажите опять что все неправильно.... | |
|
| |
|
|
|
| может из-за этого
Dim strSearchName As String
rs.FindFirst "[id] = " & strSearchName
как я понял id - число | |
|
| |
|
|
|
| Me!НазваниеКомпании - текст или число?
[id] - текст или число?
Как ругается? | |
|
| |
|
|
|
| id это счетчик , НазваниеКомпании - текстовое поле! Ошибка : Id не распознается ядром бызы данных как допустимое имя поля или выражение | |
|
| |
|
|
|
| Вопрос, как поле id (число) может быть равно НазваниеКомпании (текст)
что собираетесь найти?
поле ID присутствует в источнике данных формы? | |
|
| |
|
|
|
| ну тоесть тогда нужно Написать
rs.FindFirst "[НазваниеКомпании] = " & Me.НазваниеКомпании ?
|
Поле ID присутствует в источнике данных формы | |
|
| |
|
|
|
| все зависит от того что и по каким данным вы хотите найти
Me.НазваниеКомпании - это что? это поле связанное с источником данных формы ил свободное поле для поиска? | |
|
| |
|
38 Кб. |
|
| это поле со списком на форме , т.е. поле для поиска и одновременно является полем для ввода новой компании
я прикрепил базу , может так проще будет | |
|
| |
|
|
|
| Так не делается, чтобы один элемент управления, привязанный к данным, был и для ввода данных и для поиска. Для поиска используйте не привязанный элемент управления. По поиску на этом сайте и форуме найдутся примеры. Воспользуйтесь поиском :-) | |
|
| |
|
|
|
| rs.FindFirst "[НазваниеКомпании] = " & Me.НазваниеКомпании
так работать не будет.....
если Ме.НазваниеКомпании текст
так будет
rs.FindFirst "[НазваниеКомпании] = '" & Me.НазваниеКомпании & "'"
и полностью согласен с Denis V. | |
|
| |
|
|
|
| у меня кстати так и было сделано до того момента как я выложил этот кусок кода , только при вводе в поле символов помимо перескока на текущую запись происходило дублирование записи ... поэтому этот способ не устривает | |
|
| |
|
|
|
| Что-то я Вас не понял.
Тогда покажите, что было. | |
|
| |
|
|
|
|
Private Sub Название компании_AfterUpdate()
Dim rs As Object
Dim strSearchName As String
' On Error Resume Next
DoCmd.DoMenuItem acFormBar, acRecordsMenu, 5, , acMenuVer70 '
Set rs = Me.RecordsetClone
strSearchName = Me!НазваниеКомпании
rs.FindFirst = "[НазваниеКомпании] = " " " & strSearchName & " " " "
If rs.NoMatch Then
MsgBox "Record not found"
Else
Me.Bookmark = rs.Bookmark
End If
rs.Close
End Sub
|
Допустим пишу в поле "слон", становится текущей записью, запись "Слон", но тот же "слон" создается как новая запись в таблице и из за этого получается куча слонов! Вот в чем проблема | |
|
| |
|
|
|
| Me!НазваниеКомпании - должно быть свободным (точнее поле должно называться по другому т.к. Me!НазваниеКомпании это поле с данными из таблицы) | |
|
| |
|
|
|
| Собственно тут масса примеров, когда через поле со списком для поиска добавляют инфу. И фильтрация и чего тут только нет. Используй готовые примеры. | |
|
| |
|
|
|
| я все эти готовые примеры тысячу раз видел! у меня не получается повторить уже готовое | |
|
| |
|
|
|
|
DoCmd.DoMenuItem acFormBar, acRecordsMenu, 5, , acMenuVer70
|
Это что значит? Сто лет таким не пользовался и забыл уже :-)
Случайно, не переход на новую запись?
Если да, тогда не понятно, почему Вам не понятно, откуда взялся новый слон. Без перехода на новую запись, сначала бы изменялось название в текущей записи! Понял, почему это добавили! Да, уж, смешно :-)
Или я не прав? | |
|
| |
|
23 Кб. |
|
| Вот извратился.......Вроде работает | |
|
| |
|
|
|
| Спасибо, вы долго мучались ? щас попытаюсь адаптировать к своему случаю | |
|
| |
|
|
|
| а что вы поняли или не поняли? Это обновление формы, просто добавил кнопку , а потом ее удалил а код остался. Чтобы меньше писать было :) | |
|
| |
|
|
|
| Всем большое спасибо за ответы, мне было очень приятно Ваше внимание к своей скромной темке, буду дальше разбирать в чем у мя проблема ! Грациес ! | |
|
| |