Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Сфера Microsoft » Microsoft Office (Word, Excel, Outlook и т.д.) » 2010 - [решено] Access. Выбор данных

Ответить
Настройки темы
2010 - [решено] Access. Выбор данных

Аватара для ab.random

Новый участник


Сообщения: 29
Благодарности: 1

Профиль | Отправить PM | Цитировать


Помогите, пожалуйста, выбрать данные из БД *.mdb. База очень большая, и изменять значения вручную просто бессмысленно.
Задача такая. В БД имеется большое количество таблиц, сделанных по одному шаблону. В частности, в каждой таблице имеется колонка с названием "ОУ". Требуется из всех таблиц вывести строки, у которых в столбце ОУ содержится число 21 (с любыми комбинациями остальных слов). В одной таблице может быть несколько строк, удовлетворяющих этому требованию. Затем, во всех выбранных строках надо увеличить значение столбца "стаж" на единицу. Так же желательно, чтобы в найденной строке отображалось название таблицы, из которой она взята.
Заранее спасибо.

Отправлено: 21:14, 30-08-2011

 

Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


ab.random, примерно так:
Код: Выделить весь код
Option Compare Database
Option Explicit

Sub ExecFromAllTables()
    Dim objTableDef As TableDef
    
    With CurrentDb
        For Each objTableDef In .TableDefs()
            If objTableDef.Properties.Item("Attributes") And dbSystemObject = dbSystemObject Then
            Else
                If FieldExist(objTableDef, "ОУ") And FieldExist(objTableDef, "стаж") Then
                    .Execute _
                        "UPDATE [" & objTableDef.Name & "] " & _
                        "SET [стаж] = [стаж] + 1 " & _
                        "WHERE [ОУ] LIKE '*21*'"
                    
                    Debug.Print objTableDef.Name, vbTab, "обновлено: " & .RecordsAffected & " записей"
                End If
            End If
        Next
    End With
End Sub

Function FieldExist(objTableDef As TableDef, strFieldName As String)
    Dim objField As Field
    
    FieldExist = False
    
    For Each objField In objTableDef.Fields
        If objField.Name = strFieldName Then
            FieldExist = True
            
            Exit For
        End If
    Next
End Function
Это сообщение посчитали полезным следующие участники:

Отправлено: 06:54, 31-08-2011 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для ab.random

Новый участник


Сообщения: 29
Благодарности: 1

Профиль | Отправить PM | Цитировать


Спасибо, конечно, но где это прописывать?
Я Access открыл второй или третий раз в жизни и рассчитывал на подсказку, как это сделать с помощью конструкторов и мастеров из стандартной панели инструментов, если это возможно

Отправлено: 10:21, 31-08-2011 | #3


Аватара для ferget

Разный


Сообщения: 1294
Благодарности: 359

Профиль | Отправить PM | Цитировать


попробуйте ALT+F11

Отправлено: 10:43, 31-08-2011 | #4


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


ab.random, у меня нет Microsoft Access 2010. В 2003-ем это может выглядеть так:

* открыть базу данных;
* перейти на вкладку «Модули»;
* нажать кнопку «Создать»;
* выделить (если есть) текст нового модуля и заменить его на код из #2;
* сменить, по потребности, имя модуля нужное и сохранить.

Вывод через «Debug.Print» заменить потребным выводом. Вызов процедуры также назначить, через что нужно.
Это сообщение посчитали полезным следующие участники:

Отправлено: 14:23, 31-08-2011 | #5


Аватара для ferget

Разный


Сообщения: 1294
Благодарности: 359

Профиль | Отправить PM | Цитировать


вкладка «Создание»
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:22, 31-08-2011 | #6


Аватара для ab.random

Новый участник


Сообщения: 29
Благодарности: 1

Профиль | Отправить PM | Цитировать


Всё, разобрался Всем откликнувшимся огромное спасибо!)

Отправлено: 23:41, 31-08-2011 | #7



Компьютерный форум OSzone.net » Сфера Microsoft » Microsoft Office (Word, Excel, Outlook и т.д.) » 2010 - [решено] Access. Выбор данных

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Драйвер - [решено] как добавить Microsoft access driver (mdb) в источники данных? rusman82 Microsoft Windows 7 2 10-09-2010 10:27
Прочие БД - [решено] MS Access. Отчёт, базирующийся на запросе с отбором данных для вывода - как сделать? Darkvar Программирование и базы данных 12 21-07-2010 01:07
2010 - Быстрое создание баз данных в Access 2010 при помощи макросов и шаблонов OSZone Microsoft Office (Word, Excel, Outlook и т.д.) 0 06-04-2010 00:30
MSFT SQL Server - импорт данных из Контур в ms access seman Программирование и базы данных 3 30-09-2009 09:38
MSFT SQL Server - [решено] Перенос данных из Access в SQL Server vadimiron Программирование и базы данных 4 09-12-2007 16:16




 
Переход