Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Access
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.01.2013, 16:19   #1
Emmelman
Пользователь
 
Регистрация: 27.11.2012
Сообщений: 84
Стрелка Не работает метод Find в Recordset'е

Еще раз здравствуйте, уважаемые форумчане!
Опять прошу совета!
Дали установку реализовать удаление записей из базы данных, открыл свой старый проект и взял оттуда код,предварительно его проверив,что он там работает, вот он:
PHP код:
Private Sub Удалить_Click()
On Error GoTo Err_Удалить_Click

MyS 
Trim$(DLookup("ОКУД""t1""[Use]=True"))
Dim MyN As ADODB.Recordset
Set MyN 
= New ADODB.Recordset
Dim Msg 
As Integer
MyN
.Open "Select * From t3_" MyS "_" MyRCurrentProject.ConnectionadOpenKeysetadLockOptimistic
With MyN
  
.Find ("[Дата редакции]='" Me.[Дата редакции] & "'")
  
    If .
EOF True Then
        MsgBox 
"Не существует записей в таблице"vbOKOnly vbCritical"Удаление записи"
    
Else
        
Msg MsgBox("Вы действительно хотите удалить текущую запись?"vbYesNo vbCritical"Удаление записи")
        If 
Msg vbYes Then
            
.Delete
        End 
If
    
End If
End With
MyN
.Close
Set MyN 
Nothing
        
[Forms]![t3_info].Requery

Exit_Удалить_Click
:
    Exit 
Sub
Err_Удалить_Click
:
    
MsgBox Err.Description
    Resume Exit_Удалить_Click
End Sub 
Не мудрствуя лукаво, вставил этот код себе в проект,заменив несколько фраз

Private Sub Удалить_Click()
On Error GoTo Err_Удалить_Click
Dim MyE As ADODB.Recordset
Set MyE = New ADODB.Recordset
Dim Msg As Integer
MyE.Open "Select * From Table2", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
With MyE
.Find ("[OPERATIONDATE]='" & Me.[Table1 subform].[OPERATIONDATE] & "'")

If .EOF = True Then
MsgBox "Не существует записей в таблице", vbOKOnly + vbCritical, "Удаление записи"
Else
Msg = MsgBox("Вы действительно хотите удалить текущую запись?", vbYesNo + vbCritical, "Удаление записи")
If Msg = vbYes Then
.Delete
End If
End If
End With
MyE.Close
Set MyE = Nothing

Exit_Удалить_Click:
Exit Sub
Err_Удалить_Click:
MsgBox Err.Description
Resume Exit_Удалить_Click
End Sub

Вот и все изменения! Прога вылетает в том месте, которое я выделил жирным шрифтом, проверял по breakpoint' у. Вылетает ошибка такая - object doesn't support this property or method

В чем может быть причина?В старом проекте все работает...
Заранее спасибо!
Emmelman вне форума Ответить с цитированием
Старый 23.01.2013, 16:46   #2
shanemac51
Участник клуба
 
Аватар для shanemac51
 
Регистрация: 12.08.2010
Сообщений: 1,077
По умолчанию

нет ли здесь кавычек
Код:

Me.[Table1 subform].[OPERATIONDATE]

=============
или это дата
Имя-Галина== почта shanemac51@yandex.ru скайп shanemac51 c 8-15мск будни
Сфера интересов--word-excel-access-распознавание

Последний раз редактировалось shanemac51; 23.01.2013 в 16:53.
shanemac51 вне форума Ответить с цитированием
Старый 23.01.2013, 16:54   #3
Emmelman
Пользователь
 
Регистрация: 27.11.2012
Сообщений: 84
По умолчанию

В данном столбце хранится дата, но в формате числа - 20121201 типа вот этого
Emmelman вне форума Ответить с цитированием
Старый 23.01.2013, 21:02   #4
Андрэич
Форумчанин
 
Аватар для Андрэич
 
Регистрация: 20.05.2012
Сообщений: 311
По умолчанию

А так:
Код:
...& Forms![Главная форма].Controls![подчинённая форма].Form.Controls![Поле на подчинённой форме].Value & ...
Андрэич вне форума Ответить с цитированием
Старый 24.01.2013, 02:38   #5
Myhaylo
Форумчанин
 
Регистрация: 19.07.2012
Сообщений: 520
По умолчанию

& [Table1 subform].Form.[OPERATIONDATE] &
Окупант, руки прочь от Украины!!! Слава Героям!
Myhaylo вне форума Ответить с цитированием
Старый 24.01.2013, 07:19   #6
alvk
Форумчанин
 
Регистрация: 22.05.2012
Сообщений: 136
По умолчанию

правильно вот так:
Код:
.Find ("[OPERATIONDATE] = " & Me.[Table1 subform].form.[OPERATIONDATE] & "")

Последний раз редактировалось alvk; 24.01.2013 в 07:22.
alvk вне форума Ответить с цитированием
Старый 24.01.2013, 09:19   #7
Emmelman
Пользователь
 
Регистрация: 27.11.2012
Сообщений: 84
По умолчанию

Цитата:
Сообщение от alvk Посмотреть сообщение
правильно вот так:
Код:
.Find ("[OPERATIONDATE] = " & Me.[Table1 subform].form.[OPERATIONDATE] & "")
дааа!!!Спасибо огромное,выручили! Просто добавил .form. между и все заработало! Блин..тока странно,что код работает в старой проге,хотя...наверно это из-за форм,там нет подчиненной
Emmelman вне форума Ответить с цитированием
Старый 24.01.2013, 09:52   #8
alvk
Форумчанин
 
Регистрация: 22.05.2012
Сообщений: 136
По умолчанию

На будущее хочется вам посоветовать:
Подходите строже к именам форм и таблиц, пробелы не нужны, названия должны нести смысловую нагрузку.
alvk вне форума Ответить с цитированием
Старый 24.01.2013, 10:04   #9
Emmelman
Пользователь
 
Регистрация: 27.11.2012
Сообщений: 84
По умолчанию

Это точно,спасибо! Сейчас посмотрю, переименую, аккуратненько,чтобы ошибок не было.
Emmelman вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Метод Find Trimbl Microsoft Office Excel 4 10.01.2023 17:40
НЕ РАБОТАЕТ Find Eshil C++ Builder 4 20.11.2012 20:57
Find next & Find previous NeedLess Общие вопросы C/C++ 0 08.07.2012 13:42
Сравнение 2 столбцов (метод find) Костян Пират Microsoft Office Excel 7 17.11.2011 20:46
метод find kate158 Общие вопросы Delphi 4 15.12.2009 16:09