Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.70/27: Рейтинг темы: голосов - 27, средняя оценка - 4.70
0 / 0 / 0
Регистрация: 26.12.2010
Сообщений: 6

Как проверить существование записи перед добавлением новой?

10.01.2011, 04:15. Показов 5681. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задача: надо добавить запись в таблицу при условии, что поле Table1.Position в таблице не равно значению [Forms].[NewPosition].[Position] (из этой формы берутся данные для добавления).
Как это реализовать?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.01.2011, 04:15
Ответы с готовыми решениями:

Как перед добавлением записи проверить данные в другой таблице?
Имеется таблица "аудитории" с количеством мест. Имеется таблица "группы" с количеством человек. Нужно чтобы когда в расписании для группы...

SQLite проверка существование записи перед добавлением
Добрый день. Есть таблица с несколькими полями. Создается она SQL запросом в приложении: CREATE TABLE table1 (a integer, b text,...

Как проверить существование папки перед её созданием?
вообщем я создаю тест, помогите сделать проверку и создание папки, в начале код проверяет или пытается создать папку с названием...

13
0 / 0 / 0
Регистрация: 06.10.2010
Сообщений: 50
10.01.2011, 06:54
...запросом в таблицу?
0
SportsMen
10.01.2011, 10:34
Я сделал так: есть форма '1' на основании таблицы.
Visual Basic
1
2
3
4
5
6
7
8
9
10
Private Sub Позиция_DblClick(Cancel As Integer)
Dim A As Variant
    A = Me![Позиция]
    
    DoCmd.RunMacro 'Макрос1' 'Макрос1 - Макрокоманда:На запись; Тип объекта:Форма; Имя объекта:1; Запись:Предыдущая
    If Me![Позиция] = A Then
    DoCmd.RunMacro 'Макрос2' 'Макрос2 - Макрокоманда:На запись; Тип объекта:Форма; Имя объекта:1; Запись:Следующая
    DoCmd.RunMacro 'Макрос3' 'Макрос3 - Макрокоманда:Выполнить команду; Команда:DeleteRecord
    End If
End Sub
Только вот, не знаю как отключить предупреждение об удалении записи.
Наверное, можно обойтись и без макросов, но мне показалось, что так проще.
0 / 0 / 0
Регистрация: 05.08.2010
Сообщений: 99
10.01.2011, 11:24
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
Private Sub Позиция_DblClick(Cancel As Integer)
Dim A As Variant  
    A = Me![Позиция]    
 
    DoCmd.RunMacro 'Макрос1' 'Макрос1 - Макрокоманда:На запись; Тип объекта:Форма; Имя объекта:1; Запись:Предыдущая  
    If Me![Позиция] = A Then
       DoCmd.SetWarnings False  
       DoCmd.RunMacro 'Макрос2' 'Макрос2 - Макрокоманда:На запись; Тип объекта:Форма; Имя объекта:1; Запись:Следующая  
       DoCmd.RunMacro 'Макрос3' 'Макрос3 - Макрокоманда:Выполнить команду; Команда:DeleteRecord
       DoCmd.SetWarnings True  
    End If
End Sub
0
1 / 1 / 0
Регистрация: 05.10.2008
Сообщений: 101
10.01.2011, 11:45
Visual Basic
1
2
3
4
5
Код& = Nz(DLookup('Position', 'Table', 'Position = ' & Forms!Table!Pos), 0)
If Код = 0 Then
  ' Добавляем в таблицу
  ' ....
EndIf
0
0 / 0 / 0
Регистрация: 26.12.2010
Сообщений: 6
10.01.2011, 16:36  [ТС]
Это не совсем то, что я хотел. Возможно я неправильно задал вопрос.
Вопрос такой: как в VBA получить доступ к результату выполнения команды -

Visual Basic
1
DoCmd.RunQuery 'SELECT Positions.Position FROM Positions WHERE Positions.Position = [Forms].[NewPosition].[Position]'
Мне надо знать - вернул ли запрос хоть одну запись или нет - это всё что мне надо.
0
9 / 9 / 1
Регистрация: 07.06.2010
Сообщений: 322
10.01.2011, 16:50
Visual Basic
1
2
3
4
5
6
7
dim rs as dao.recorset
 
set rs = currentdb.openrecordset('SELECT Position FROM Positions WHERE Position = ' & [Forms].[NewPosition].[Position]
if rs.eof then
 msgbox 'Такой записи нет!'
end if
rs.close
0
0 / 0 / 0
Регистрация: 26.12.2010
Сообщений: 6
10.01.2011, 17:01  [ТС]
При выполнении строки
Set res = CurrentDb.OpenRecordset('SELECT ID FROM Positions WHERE Position = ' & [Forms].[AddPosition].[Position])
выдаётся ошибка 'Object doesn't support this property or method'.
0
9 / 9 / 1
Регистрация: 07.06.2010
Сообщений: 322
10.01.2011, 17:13
а есть ссылка на dao?
0
0 / 0 / 0
Регистрация: 26.12.2010
Сообщений: 6
10.01.2011, 17:19  [ТС]
Я использовал
Dim rs As ADODB.Recordset
0
9 / 9 / 1
Регистрация: 07.06.2010
Сообщений: 322
10.01.2011, 17:19
а еще:
Forms('AddPosition').Position
0
9 / 9 / 1
Регистрация: 07.06.2010
Сообщений: 322
10.01.2011, 17:20
ADO открывается по другому - см. help
0
Lenivec
10.01.2011, 17:55
а не проще индексы соответственно нуждам создать
1 / 1 / 0
Регистрация: 05.10.2008
Сообщений: 101
11.01.2011, 08:33
колво_строк& = DCount('Position', 'Positions', 'Position = ' & [Forms].[NewPosition].[Position])
if колво_строк > 0 then
...

Только вроде надо не [Forms].[NewPosition].[Position],
а Forms!NewPosition!Position... хотя может разницы нет
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.01.2011, 08:33
Помогаю со студенческими работами здесь

Как проверить существование записи?
Добрый вечер. Есть таблица: CREATE TABLE tbl (id INTEGER PRIMARY KEY AUTOINCREMENT, date_latest DATE, type_string TEXT) Есть...

Непонятки с добавлением новой записи в таблицу
Среда vb6.0 Добавляю новую запись в таблицу через Data Control (RecordsetType = 1), используя методы AddNew и Update. Новая запись...

Проверка на наличие записи перед добавлением
Перед добавлением записи (обращался за помощью по этому вопросу недавно) необходимо проверить, не существует ли вводимой записи в таблице,...

Как перед запуском новой формы проверить открыта ли форма?
Доброго времени суток. Как перед запуском формы проверить запущена ли она уже. Работаю с MDI контейнером. Вот код на запуск формы, что...

Проверка на наличие записи в таблице перед добавлением
Здравствуйте, уважаемые форумчане! Необходимо при нажатии на кнопку добавить запись в таблицу средствами VBA (желательно через...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru